use of org.hl7.fhir.r4b.model.Resource in project kindling by HL7.
the class PageProcessor method genExampleProfileLink.
private String genExampleProfileLink(Resource resource) throws FHIRException {
if (resource == null || !(resource instanceof StructureDefinition))
return "";
StructureDefinition sd = (StructureDefinition) resource;
if (!sd.hasBaseDefinition())
return "";
String pack = "";
if (sd.hasUserData("pack")) {
Profile p = (Profile) sd.getUserData("pack");
ImplementationGuideDefn ig = definitions.getIgs().get(p.getCategory());
if (Utilities.noString(ig.getHomePage()))
pack = " (" + ig.getName() + "))";
else
pack = " (<a href=\"" + ig.getHomePage() + "\">" + ig.getName() + "</a>)";
if (!p.getTitle().equals(sd.getName()))
pack = " in <a href=\"" + p.getId().toLowerCase() + ".html\">" + p.getTitle() + "</a> " + pack;
}
if (sd.hasUserData("path"))
return "This example conforms to the <a href=\"" + sd.getUserData("path") + "\">profile " + (sd.getName()) + "</a>" + pack + ".";
else
return "This example conforms to the <a href=\"" + sd.getId().toLowerCase() + ".html\">profile " + (sd.getName()) + "</a>" + pack + ".";
}
use of org.hl7.fhir.r4b.model.Resource in project kindling by HL7.
the class PageProcessor method getReferences.
private String getReferences(String name) throws Exception {
List<String> refs = new ArrayList<String>();
if (definitions.hasLogicalModel(name)) {
ElementDefn r = definitions.getLogicalModel(name).getResource().getRoot();
List<String> names = definitions.listAllPatterns(r.getName());
for (String rn : definitions.sortedResourceNames()) {
checkPatternReferences(names, refs, rn, definitions.getResourceByName(rn).getRoot(), definitions.getLogicalModel(name).getMappingUrl());
}
if (refs.size() == 1)
return "<h2>References</h2><p>This pattern is implemented by " + renderRef(refs.get(0), name) + ".</p>\r\n";
else if (refs.size() > 1)
return "<h2>References</h2><p>This pattern is implemented by " + asLinks(refs, name) + ".</p>\r\n";
else
return "<h2>References</h2><p>No resources follow this pattern.</p>";
} else {
for (String tn : definitions.sortedTypeNames()) {
checkReferences(name, refs, tn, definitions.getElementDefn(tn));
}
for (String rn : definitions.sortedResourceNames()) {
checkReferences(name, refs, rn, definitions.getResourceByName(rn).getRoot());
}
String r;
if (refs.size() == 1)
r = "<h2>References</h2><p>This resource is referenced by " + renderRef(refs.get(0), name) + ".</p>\r\n";
else if (refs.size() > 1)
r = "<h2>References</h2><p>This resource is referenced by " + asLinks(refs, name) + ".</p>\r\n";
else
r = "<h2>References</h2><p>No resources refer to this resource directly.</p>";
refs.clear();
for (ImplementationGuideDefn ig : definitions.getSortedIgs()) {
for (LogicalModel lm : ig.getLogicalModels()) {
checkPatternUsage(lm.getResource().getRoot().getName(), refs, definitions.getResourceByName(name).getRoot(), lm.getMappingUrl());
}
}
if (refs.size() == 1)
return r + "<p>This resource implements the " + renderRef(refs.get(0), name) + " pattern.</p>\r\n";
else if (refs.size() > 1)
return r + "<p>This resource implements the " + asLinks(refs, name) + " patterns.</p>\r\n";
else
return r + "<p>This resource does not implement any patterns.</p>";
}
}
use of org.hl7.fhir.r4b.model.Resource in project kindling by HL7.
the class PageProcessor method genOperationsSummary.
private String genOperationsSummary(List<Operation> oplist, ResourceDefn resource) throws Exception {
StringBuilder b = new StringBuilder();
b.append("<table class=\"list\">\r\n");
for (Operation op : oplist) {
b.append("<tr><td><a href=\"" + resource.getName().toLowerCase() + "-operation-" + op.getName() + ".html\">$" + Utilities.escapeXml(op.getName()) + "</a></td><td>" + Utilities.escapeXml(op.getTitle()) + "</td>");
if (resource.getStatus() == StandardsStatus.NORMATIVE) {
if (op.getStandardsStatus() == null)
b.append("<td><a class=\"" + resource.getStatus().toCode() + "-flag\" href=\"versions.html#std-process\">" + resource.getStatus().toDisplay() + "</a></td>");
else
b.append("<td><a class=\"" + op.getStandardsStatus().toCode() + "-flag\" href=\"versions.html#std-process\">" + op.getStandardsStatus().toDisplay() + "</a></td>");
}
b.append("</tr>\r\n");
}
b.append("</table>\r\n");
return b.toString();
}
use of org.hl7.fhir.r4b.model.Resource in project kindling by HL7.
the class PageProcessor method processPageIncludes.
public String processPageIncludes(String file, String src, String type, Map<String, String> others, String pagePath, Resource resource, List<String> tabs, String crumbTitle, Object object, ImplementationGuideDefn ig, ResourceDefn rd, WorkGroup wg) throws Exception {
String workingTitle = null;
int level = ig == null ? file.contains(File.separator) ? 1 : 0 : ig.isCore() ? 0 : 1;
boolean even = false;
String name = file.substring(0, file.lastIndexOf("."));
String searchAdditions = "";
while (src.contains("<%") || src.contains("[%")) {
int i1 = src.indexOf("<%");
int i2 = i1 == -1 ? -1 : src.substring(i1).indexOf("%>") + i1;
if (i1 == -1) {
i1 = src.indexOf("[%");
i2 = i1 == -1 ? -1 : src.substring(i1).indexOf("%]") + i1;
}
String s1 = src.substring(0, i1);
String s2 = src.substring(i1 + 2, i2).trim();
String s3 = src.substring(i2 + 2);
String[] com = s2.split(" ");
if (s2.startsWith("!")) {
src = s1 + s3;
} else if (com.length == 4 && com[0].equals("edt")) {
if (tabs != null)
tabs.add("tabs-" + com[1]);
src = s1 + orgDT(com[1], xmlForDt(com[1], com[2]), treeForDt(com[1]), umlForDt(com[1], com[3]), umlForDt(com[1], com[3] + "b"), profileRef(com[1]), tsForDt(com[1]), jsonForDt(com[1], com[2]), ttlForDt(com[1], com[2]), diffForDt(com[1], com[2])) + s3;
} else if (com.length == 3 && com[0].equals("dt")) {
if (tabs != null)
tabs.add("tabs-" + com[1]);
src = s1 + orgDT(com[1], xmlForDt(com[1], file), treeForDt(com[1]), umlForDt(com[1], com[2]), umlForDt(com[1], com[2] + "b"), profileRef(com[1]), tsForDt(com[1]), jsonForDt(com[1], file), ttlForDt(com[1], file), diffForDt(com[1], file)) + s3;
} else if (com.length == 3 && com[0].equals("adt")) {
if (tabs != null)
tabs.add("tabs-" + com[1]);
src = s1 + orgADT(com[1], treeForDt(com[1]), umlForDt(com[1], com[2]), umlForDt(com[1], com[2] + "b"), diffForDt(com[1], file)) + s3;
} else if (com.length == 2 && com[0].equals("dt.constraints"))
src = s1 + genConstraints(com[1], genlevel(level)) + s3;
else if (com.length == 2 && com[0].equals("dt.restrictions"))
src = s1 + genRestrictions(com[1]) + s3;
else if (com.length == 2 && com[0].equals("dictionary"))
src = s1 + dictForDt(com[1]) + s3;
else if (com[0].equals("othertabs"))
src = s1 + genOtherTabs(com[1], tabs) + s3;
else if (com[0].equals("dtheader"))
src = s1 + dtHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("atheader"))
src = s1 + atHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("mdtheader"))
src = s1 + mdtHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("edheader"))
src = s1 + edHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("elheader"))
src = s1 + elHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("belheader"))
src = s1 + belHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("extheader"))
src = s1 + extHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("mmheader"))
src = s1 + mmHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("cdheader"))
src = s1 + cdHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("diheader"))
src = s1 + diHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("ctheader"))
src = s1 + ctHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("ucheader"))
src = s1 + ucHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("rrheader"))
src = s1 + rrHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("drheader"))
src = s1 + drHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("adheader"))
src = s1 + adHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("pdheader"))
src = s1 + pdHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("tdheader"))
src = s1 + tdHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("narrheader"))
src = s1 + narrHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("statheader"))
src = s1 + statHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("ordistheader"))
src = s1 + ordistHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("profilesheader"))
src = s1 + profilesHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("refheader"))
src = s1 + refHeader(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("resourcesheader"))
src = s1 + resourcesHeader(com.length > 1 ? com[1] : null) + s3;
else // src = s1+resourcesHeader(name, com.length > 1 ? com[1] : null)+s3;
if (com[0].equals("txheader"))
src = s1 + txHeader(name, com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("sct-vs-list"))
src = s1 + getSnomedCTVsList() + s3;
else if (com[0].equals("sct-concept-list"))
src = s1 + getSnomedCTConceptList() + s3;
else if (com[0].equals("txheader0"))
src = s1 + (level > 0 ? "" : txHeader(name, com.length > 1 ? com[1] : null)) + s3;
else if (com[0].equals("fmtheader"))
src = s1 + fmtHeader(name, com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("cmpheader"))
src = s1 + cmpHeader(name, com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("dictheader"))
src = s1 + dictHeader(((Bundle) resource).getId().toLowerCase(), com.length > 1 ? com[1] : "") + s3;
else // src = s1+atomHeader(name, com.length > 1 ? com[1] : null)+s3;
if (com[0].equals("codelist"))
src = s1 + codelist((CodeSystem) resource, com.length > 1 ? com[1] : null, false, true, file) + s3;
else if (com[0].equals("codelist-nh"))
src = s1 + codelist((CodeSystem) resource, com.length > 1 ? com[1] : null, false, false, file) + s3;
else if (com[0].equals("linkcodelist"))
src = s1 + codelist((CodeSystem) resource, com.length > 1 ? com[1] : null, true, false, file) + s3;
else if (com[0].equals("toc"))
src = s1 + generateToc() + s3;
else if (com[0].equals("codetoc"))
src = s1 + codetoc(com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("resheader")) {
if (resource != null && resource instanceof StructureDefinition)
src = s1 + resHeader(((StructureDefinition) resource).getId().toLowerCase(), ((StructureDefinition) resource).getId(), com.length > 1 ? com[1] : null) + s3;
else if (rd != null) {
src = s1 + resHeader(rd.getName().toLowerCase(), rd.getName(), com.length > 1 ? com[1] : null) + s3;
} else
src = s1 + s3;
} else if (com[0].equals("aresheader"))
src = s1 + abstractResHeader("document", "Document", com.length > 1 ? com[1] : null) + s3;
else if (com[0].equals("onthispage"))
src = s1 + onThisPage(s2.substring(com[0].length() + 1)) + s3;
else if (com[0].equals("maponthispage"))
src = s1 + mapOnThisPage(null) + s3;
else if (com[0].equals("res-category")) {
even = false;
src = s1 + resCategory(s2.substring(com[0].length() + 1)) + s3;
} else if (com[0].equals("res-item")) {
even = !even;
src = s1 + resItem(com[1], even) + s3;
} else if (com[0].equals("resdesc")) {
src = s1 + resDesc(com[1]) + s3;
} else if (com[0].equals("rescat")) {
src = s1 + resCat(com.length == 1 ? null : s2.substring(7)) + s3;
} else if (com[0].equals("svg"))
src = s1 + svgs.get(com[1]) + s3;
else if (com[0].equals("diagram"))
src = s1 + new SvgGenerator(this, genlevel(level), null, false, file.contains("datatypes"), version).generate(folders.srcDir + com[1], com[2]) + s3;
else if (com[0].equals("file")) {
if (new File(folders.templateDir + com[1] + ".html").exists()) {
src = s1 + TextFile.fileToString(folders.templateDir + com[1] + ".html") + s3;
} else {
src = s1 + TextFile.fileToString(folders.srcDir + com[1] + ".html") + s3;
}
} else if (com[0].equals("v2xref"))
src = s1 + xreferencesForV2(name, com[1]) + s3;
else if (com[0].equals("vs-warning"))
src = s1 + vsWarning((ValueSet) resource) + s3;
else if (com[0].equals("res-status-special"))
src = s1 + vsSpecialStatus((DomainResource) resource) + s3;
else if (com[0].equals("conceptmaplistv2"))
src = s1 + conceptmaplist("http://terminology.hl7.org/ValueSet/v2-" + (name.contains("|") ? name.substring(0, name.indexOf("|")) : name), com[1]) + s3;
else if (com[0].equals("conceptmaplistv3"))
src = s1 + conceptmaplist("http://terminology.hl7.org/ValueSet/v3-" + (name.contains("|") ? name.substring(0, name.indexOf("|")) : name), com[1]) + s3;
else if (com[0].equals("conceptmaplistvs")) {
ValueSet vs = (ValueSet) resource;
String ref;
if (vs == null) {
ref = "http://hl7.org/fhir/ValueSet/" + Utilities.fileTitle(file);
} else {
ref = vs.getUrl();
}
src = s1 + conceptmaplist(ref, com[1]) + s3;
} else if (com[0].equals("settitle")) {
workingTitle = s2.substring(9).replace("{", "<%").replace("}", "%>");
src = s1 + s3;
} else if (com[0].equals("igregistries")) {
src = s1 + igRegistryList(com[1], com[2]) + s3;
} else if (com[0].equals("dtmappings")) {
src = s1 + genDataTypeMappings(com[1]) + s3;
} else if (com[0].equals("dtusage")) {
src = s1 + genDataTypeUsage(com[1]) + s3;
} else if (com[0].equals("v3xref")) {
src = s1 + xreferencesForV3(name) + s3;
} else if (com[0].equals("setlevel")) {
level = Integer.parseInt(com[1]);
src = s1 + s3;
} else if (com[0].equals("w5")) {
src = s1 + genW5("true".equals(com[1])) + s3;
} else if (com[0].equals("res-ref-list")) {
src = s1 + genResRefList(com[1]) + s3;
} else if (com[0].equals("sclist")) {
src = s1 + genScList(com[1]) + s3;
} else if (com[0].equals("xcm")) {
src = s1 + getXcm(com[1]) + s3;
} else if (com[0].equals("xcmchk")) {
src = s1 + getXcmChk(com[1]) + s3;
} else if (com[0].equals("sstatus")) {
if (com.length == 1) {
StandardsStatus ss = ToolingExtensions.getStandardsStatus((DomainResource) resource);
if (ss == null)
ss = StandardsStatus.INFORMATIVE;
if (ss == StandardsStatus.NORMATIVE && ToolingExtensions.hasExtension((DomainResource) resource, ToolingExtensions.EXT_NORMATIVE_VERSION))
src = s1 + "<a href=\"" + genlevel(level) + "versions.html#std-process\">" + ss.toDisplay() + "</a> (from v" + ToolingExtensions.readStringExtension((DomainResource) resource, ToolingExtensions.EXT_NORMATIVE_VERSION) + ")" + s3;
else
src = s1 + "<a href=\"" + genlevel(level) + "versions.html#std-process\">" + ss.toDisplay() + "</a>" + s3;
} else
src = s1 + getStandardsStatus(com[1]) + s3;
} else if (com[0].equals("wg")) {
src = s1 + getWgLink(file, wg == null && com.length > 1 ? wg(com[1]) : wg) + s3;
} else if (com[0].equals("wgt")) {
src = s1 + getWgTitle(wg == null && com.length > 1 ? wg(com[1]) : wg) + s3;
} else if (com[0].equals("ig.registry")) {
src = s1 + buildIgRegistry(ig, com[1]) + s3;
} else if (com[0].equals("search-link")) {
src = s1 + searchLink(s2) + s3;
} else if (com[0].equals("search-footer")) {
src = s1 + searchFooter(level) + s3;
} else if (com[0].equals("search-header")) {
src = s1 + searchHeader(level) + s3;
} else if (com[0].equals("profileheader")) {
src = s1 + profileHeader(((StructureDefinition) resource).getId().toLowerCase(), com[1], hasExamples((StructureDefinition) resource, ig)) + s3;
} else if (com[0].equals("resource-table")) {
src = s1 + genResourceTable(definitions.getResourceByName(com[1]), genlevel(level)) + s3;
} else if (com[0].equals("dtextras")) {
src = s1 + produceDataTypeExtras(com[1], false) + s3;
} else if (com[0].equals("dtextensions")) {
src = s1 + produceDataTypeExtras(com[1], true) + s3;
} else if (com[0].equals("tx")) {
src = s1 + produceDataTypeTx(com[1]) + s3;
} else if (com[0].equals("extension-diff")) {
StructureDefinition ed = workerContext.fetchResource(StructureDefinition.class, com[1]);
src = s1 + generateExtensionTable(ed, "extension-" + com[1], "false", genlevel(level)) + s3;
} else if (com[0].equals("profile-diff")) {
ConstraintStructure p = definitions.findProfile(com[1]);
src = s1 + generateProfileStructureTable(p, true, com[1] + ".html", com[1], genlevel(level)) + s3;
} else if (com[0].equals("example")) {
String[] parts = com[1].split("\\/");
Example e = findExample(parts[0], parts[1]);
src = s1 + genExample(e, com.length > 2 ? Integer.parseInt(com[2]) : 0, genlevel(level)) + s3;
} else if (com[0].equals("r3r4transform")) {
src = s1 + dtR3R4Transform(com[1]) + s3;
} else if (com[0].equals("fmm-style")) {
String fmm = resource == null ? "N/A" : ToolingExtensions.readStringExtension((DomainResource) resource, ToolingExtensions.EXT_FMM_LEVEL);
StandardsStatus ss = ToolingExtensions.getStandardsStatus((DomainResource) resource);
src = s1 + fmmBarColorStyle(ss, fmm) + s3;
} else if (com[0].equals("fmm")) {
String fmm = resource == null || !(resource instanceof CanonicalResource) ? getFmm(com[1], false) : ToolingExtensions.readStringExtension((DomainResource) resource, ToolingExtensions.EXT_FMM_LEVEL);
StandardsStatus ss = ToolingExtensions.getStandardsStatus((DomainResource) resource);
if (StandardsStatus.EXTERNAL == ss)
src = s1 + getFmmFromlevel(genlevel(level), "N/A") + s3;
else if (StandardsStatus.NORMATIVE == ss)
src = s1 + getFmmFromlevel(genlevel(level), "<a href=\"" + genlevel(level) + "versions.html#std-process\">N</a>") + s3;
else
src = s1 + getFmmFromlevel(genlevel(level), fmm) + s3;
} else if (com[0].equals("fmmna")) {
String fmm = "N/A";
src = s1 + getFmmFromlevel(genlevel(level), fmm) + s3;
} else if (com[0].equals("mostlynormative")) {
String p = null;
String wt = workingTitle;
if (com.length >= 3) {
if (!com[2].equals("%check"))
p = com[2];
else if (StandardsStatus.NORMATIVE == ToolingExtensions.getStandardsStatus((DomainResource) resource)) {
p = resource.getUserString("ballot.package");
wt = ((CanonicalResource) resource).fhirType() + " " + ((CanonicalResource) resource).present();
}
}
src = s1 + (p == null ? "" : getMostlyNormativeNote(genlevel(level), p, com[1], wt, file)) + s3;
} else if (com[0].equals("mixednormative")) {
String p = null;
String wt = workingTitle;
if (com.length >= 3) {
if (!com[2].equals("%check"))
p = com[2];
else if (StandardsStatus.NORMATIVE == ToolingExtensions.getStandardsStatus((DomainResource) resource)) {
p = resource.getUserString("ballot.package");
wt = ((CanonicalResource) resource).fhirType() + " " + ((CanonicalResource) resource).present();
}
}
src = s1 + (p == null ? "" : getMixedNormativeNote(genlevel(level), p, com[1], wt, file)) + s3;
} else if (com[0].equals("normative")) {
String p = object instanceof Object ? rd.getNormativePackage() : null;
String wt = object instanceof Object ? rd.getName() + " Operation " + ((Operation) object).getName() : workingTitle;
if (com.length >= 3) {
if (!com[2].equals("%check"))
p = com[2];
else if (StandardsStatus.NORMATIVE == ToolingExtensions.getStandardsStatus((DomainResource) resource)) {
p = resource.getUserString("ballot.package");
wt = ((CanonicalResource) resource).fhirType() + " " + ((CanonicalResource) resource).present();
}
}
src = s1 + (p == null && com.length != 2 ? "" : getNormativeNote(genlevel(level), p, com[1], wt, file)) + s3;
} else if (com[0].equals("normative-op")) {
String p = rd.getNormativePackage();
String wt = rd.getName() + " Operation " + ((Operation) object).getName();
StandardsStatus st = ((Operation) object).getStandardsStatus();
if (st == null)
st = ToolingExtensions.getStandardsStatus((DomainResource) resource);
src = s1 + (st == StandardsStatus.NORMATIVE ? getNormativeNote(genlevel(level), p, com[1], wt, file) : "") + s3;
} else if (com[0].equals("fmmshort")) {
String fmm = resource == null || !(resource instanceof CanonicalResource) ? getFmm(com[1], true) : ToolingExtensions.readStringExtension((DomainResource) resource, ToolingExtensions.EXT_FMM_LEVEL);
String npr = resource == null || !(resource instanceof CanonicalResource) ? getNormativePackageRef(com[1]) : "";
src = s1 + getFmmShortFromlevel(genlevel(level), fmm) + npr + s3;
} else if (com[0].equals("normative-pages")) {
src = s1 + getNormativeList(genlevel(level), com[1]) + s3;
} else if (s2.startsWith("search-additions\r\n")) {
searchAdditions = s2.substring(16).trim();
src = s1 + s3;
} else if (com[0].equals("complinks")) {
src = s1 + (rd == null ? "" : getCompLinks(rd, com.length > 1 ? com[1] : null)) + s3;
} else if (com[0].equals("diff")) {
String p = com[1];
String pd = p.contains("#") ? p.substring(0, p.indexOf("#")) : p;
String t = s2.substring(com[0].length() + com[1].length() + 2);
src = s1 + "<a href=\"" + p + "\">" + t + "</a> <a href=\"http://services.w3.org/htmldiff?doc1=http%3A%2F%2Fhl7.org%2Ffhir%2F2018May%2F" + pd + "&doc2=http%3A%2F%2Fbuild.fhir.org%2F" + pd + "\" no-external=\"true\" style=\"border: 1px solid lightgrey; white-space: nowrap; background-color: #EDFDFE; padding: 2px 2px 2px 2px\">ΔB</a>" + s3;
} else if (com[0].equals("diffx")) {
String p1 = com[1];
String pd = p1.contains("#") ? p1.substring(0, p1.indexOf("#")) : p1;
String p2 = com[2];
String t = s2.substring(com[0].length() + com[1].length() + 2);
src = s1 + "<a href=\"" + p1 + "\">" + t + "</a> <a href=\"http://services.w3.org/htmldiff?doc1=http%3A%2F%2Fhl7.org%2Ffhir%2F2018May%2F" + p2 + "&doc2=http%3A%2F%2Fbuild.fhir.org%2F" + pd + "\" no-external=\"true\" style=\"border: 1px solid lightgrey; white-space: nowrap; background-color: #EDFDFE; padding: 2px 2px 2px 2px\">ΔB</a>" + s3;
} else if (com[0].equals("StandardsStatus")) {
src = s1 + getStandardsStatusNote(genlevel(level), com[1], com[2], com.length == 4 ? com[3] : null) + s3;
} else if (com[0].equals("circular-references")) {
src = s1 + buildCircularReferenceList(com[1].equals("null") ? null : Boolean.valueOf(com[1])) + s3;
} else if (com[0].equals("shortparameterlist")) {
src = s1 + buildShortParameterList(com[1]) + s3;
} else if (com[0].equals("op-example-link")) {
src = s1 + buildOpReferenceList(com[1]) + s3;
} else if (com[0].equals("pattern-impls")) {
src = s1 + buildPatternList(com[1]) + s3;
} else if (com[0].equals("diff-analysis")) {
if ("*".equals(com[1])) {
updateDiffEngineDefinitions();
src = s1 + diffEngine.getDiffAsHtml(this) + s3;
} else {
StructureDefinition sd = workerContext.fetchTypeDefinition(com[1]);
if (sd == null)
throw new Exception("diff-analysis not found: " + com[1]);
src = s1 + diffEngine.getDiffAsHtml(this, sd) + s3;
}
} else if (com.length != 1)
throw new Exception("Instruction <%" + s2 + "%> not understood parsing page " + file);
else if (com[0].equals("pageheader"))
src = s1 + pageHeader(name.toUpperCase().substring(0, 1) + name.substring(1)) + s3;
else if (com[0].equals("newheader"))
src = s1 + TextFile.fileToString(folders.srcDir + "newheader.html") + s3;
else if (com[0].equals("newheader1"))
src = s1 + TextFile.fileToString(folders.srcDir + "newheader1.html") + s3;
else if (com[0].equals("footer"))
src = s1 + TextFile.fileToString(folders.srcDir + "footer.html") + s3;
else if (com[0].equals("newfooter"))
src = s1 + TextFile.fileToString(folders.srcDir + "newfooter.html") + s3;
else if (com[0].equals("footer1"))
src = s1 + TextFile.fileToString(folders.srcDir + "footer1.html") + s3;
else if (com[0].equals("footer2"))
src = s1 + TextFile.fileToString(folders.srcDir + "footer2.html") + s3;
else if (com[0].equals("footer3"))
src = s1 + TextFile.fileToString(folders.srcDir + "footer3.html") + s3;
else if (com[0].equals("title"))
src = s1 + (workingTitle == null ? Utilities.escapeXml(name.toUpperCase().substring(0, 1) + name.substring(1)) : workingTitle) + s3;
else if (com[0].equals("xtitle"))
src = s1 + Utilities.escapeXml(name.toUpperCase().substring(0, 1) + name.substring(1)) + s3;
else if (com[0].equals("name"))
src = s1 + name + s3;
else if (com[0].equals("name.tail"))
src = s1 + fileTail(name) + s3;
else if (com[0].equals("piperesources"))
src = s1 + pipeResources() + s3;
else if (com[0].equals("enteredInErrorTable"))
src = s1 + enteredInErrorTable() + s3;
else if (com[0].equals("canonicalname"))
src = s1 + makeCanonical(name) + s3;
else if (com[0].equals("prettyname"))
src = s1 + makePretty(name) + s3;
else if (com[0].equals("jsonldname"))
src = s1 + makeJsonld(name) + s3;
else if (com[0].equals("version"))
src = s1 + version + s3;
else if (com[0].equals("gendate"))
src = s1 + Config.DATE_FORMAT().format(new Date()) + s3;
else if (com[0].equals("maindiv"))
src = s1 + "<div class=\"content\">" + s3;
else if (com[0].equals("/maindiv"))
src = s1 + "</div>" + s3;
else if (com[0].equals("mappings-table"))
src = s1 + genMappingsTable() + s3;
else if (com[0].equals("id"))
src = s1 + (name.contains("|") ? name.substring(0, name.indexOf("|")) : name) + s3;
else if (com[0].equals("ver"))
src = s1 + (name.contains("|") ? name.substring(name.indexOf("|") + 1) : "??") + s3;
else if (com[0].equals("events"))
src = s1 + getEventsTable(pagePath) + s3;
else if (com[0].equals("resourcecodes"))
src = s1 + genResCodes() + s3;
else if (com[0].equals("datatypecodes"))
src = s1 + genDTCodes() + s3;
else if (com[0].equals("allparams"))
src = s1 + allParamlist() + s3;
else // src = s1 + genBindingsTable() + s3;
if (com[0].equals("codeslist"))
src = s1 + genCodeSystemsTable() + s3;
else if (com[0].equals("valuesetslist"))
src = s1 + genValueSetsTable(ig) + s3;
else if (com[0].equals("namespacelist"))
src = s1 + genNSList() + s3;
else if (com[0].equals("extensionslist"))
src = s1 + genExtensionsTable() + s3;
else if (com[0].equals("igvaluesetslist"))
src = s1 + genIGValueSetsTable() + s3;
else if (com[0].equals("conceptmapslist"))
src = s1 + genConceptMapsTable() + s3;
else // src = s1 + genBindingTable(false) + s3;
if (com[0].equals("resimplall"))
src = s1 + genResImplList() + s3;
else if (com[0].equals("txurl"))
src = s1 + "http://hl7.org/fhir/" + Utilities.fileTitle(file) + s3;
else if (com[0].equals("vstxurl"))
src = s1 + "http://hl7.org/fhir/ValueSet/" + Utilities.fileTitle(file) + s3;
else if (com[0].equals("csurl")) {
if (resource instanceof CodeSystem)
src = s1 + ((CodeSystem) resource).getUrl() + s3;
else {
CodeSystem cs = (CodeSystem) ((ValueSet) resource).getUserData("cs");
src = s1 + (cs == null ? "" : cs.getUrl()) + s3;
}
} else if (com[0].equals("vsurl")) {
if (resource == null)
src = s1 + s3;
else if (resource instanceof CodeSystem)
src = s1 + ((CodeSystem) resource).getUrl() + s3;
else
src = s1 + ((ValueSet) resource).getUrl() + s3;
} else if (com[0].equals("txdef"))
src = s1 + generateCodeDefinition(Utilities.fileTitle(file)) + s3;
else if (com[0].equals("vsdef"))
if (resource instanceof CodeSystem)
src = s1 + processMarkdown("vsdef", ((CodeSystem) resource).getDescription(), genlevel(level)) + s3;
else
src = s1 + processMarkdown("vsdef", ((ValueSet) resource).getDescription(), genlevel(level)) + s3;
else if (com[0].equals("txoid"))
src = s1 + generateOID((CodeSystem) resource) + s3;
else if (com[0].equals("vsoid"))
src = s1 + generateOID((ValueSet) resource) + s3;
else if (com[0].equals("txname"))
src = s1 + Utilities.fileTitle(file) + s3;
else if (com[0].equals("vsname"))
if (resource instanceof CodeSystem)
src = s1 + ((CodeSystem) resource).present() + s3;
else
src = s1 + ((ValueSet) resource).present() + s3;
else if (com[0].equals("vsnamed"))
if (resource instanceof CodeSystem)
src = s1 + ((CodeSystem) resource).getName() + s3;
else
src = s1 + ((ValueSet) resource).getName() + s3;
else if (com[0].equals("vstitle"))
if (resource instanceof CodeSystem)
src = s1 + checkTitle(((CodeSystem) resource).getTitle()) + s3;
else
src = s1 + checkTitle(((ValueSet) resource).getTitle()) + s3;
else if (com[0].equals("vsver"))
if (resource instanceof CodeSystem)
src = s1 + ((CodeSystem) resource).getVersion() + s3;
else
src = s1 + ((ValueSet) resource).getVersion() + s3;
else if (com[0].equals("vsref")) {
src = s1 + Utilities.fileTitle((String) resource.getUserData("filename")) + s3;
} else if (com[0].equals("vsdesc"))
src = s1 + (resource != null ? new XhtmlComposer(XhtmlComposer.HTML).compose(((ValueSet) resource).getText().getDiv()) : generateVSDesc(Utilities.fileTitle(file))) + s3;
else if (com[0].equals("txusage"))
src = s1 + generateValueSetUsage((ValueSet) resource, genlevel(level), true) + s3;
else if (com[0].equals("vsusage"))
src = s1 + generateValueSetUsage((ValueSet) resource, genlevel(level), true) + s3;
else if (com[0].equals("csusage"))
src = s1 + generateCSUsage((CodeSystem) resource, genlevel(level)) + s3;
else if (com[0].equals("vssummary"))
src = s1 + "todo" + s3;
else if (com[0].equals("compartmentlist"))
src = s1 + compartmentlist() + s3;
else if (com[0].equals("qa"))
src = s1 + qa.report(this, validationErrors) + s3;
else if (com[0].equals("comp-title"))
src = s1 + compTitle(name) + s3;
else if (com[0].equals("comp-name"))
src = s1 + compName(name) + s3;
else if (com[0].equals("comp-desc"))
src = s1 + compDesc(name) + s3;
else if (com[0].equals("comp-uri"))
src = s1 + compUri(name) + s3;
else if (com[0].equals("comp-identity"))
src = s1 + compIdentity(name) + s3;
else if (com[0].equals("comp-membership"))
src = s1 + compMembership(name) + s3;
else if (com[0].equals("comp-resources"))
src = s1 + compResourceMap(name) + s3;
else if (com[0].equals("breadcrumb"))
src = s1 + breadCrumbManager.make(name) + s3;
else if (com[0].equals("navlist"))
src = s1 + breadCrumbManager.navlist(name, genlevel(level)) + s3;
else if (com[0].equals("breadcrumblist")) {
if (object instanceof Operation)
src = s1 + ((ig == null || ig.isCore()) ? breadCrumbManager.makelist(rd.getName().toLowerCase(), type, genlevel(level), crumbTitle) : ig.makeList(name, type, genlevel(level), crumbTitle)) + s3;
else
src = s1 + ((ig == null || ig.isCore()) ? breadCrumbManager.makelist(name, type, genlevel(level), crumbTitle) : ig.makeList(name, type, genlevel(level), crumbTitle)) + s3;
} else if (com[0].equals("year"))
src = s1 + new SimpleDateFormat("yyyy").format(new Date()) + s3;
else if (com[0].equals("buildId"))
src = s1 + buildId + s3;
else if (com[0].equals("pub-type"))
src = s1 + publicationType + s3;
else if (com[0].equals("pub-notice"))
src = s1 + publicationNotice + s3;
else if (com[0].equals("vssource"))
if (resource instanceof CodeSystem)
src = s1 + csSource((CodeSystem) resource) + s3;
else
src = s1 + vsSource((ValueSet) resource) + s3;
else if (com[0].equals("vsxref"))
src = s1 + xreferencesForFhir(name) + s3;
else if (com[0].equals("vsexpansion"))
src = s1 + expandValueSet(Utilities.fileTitle(file), resource == null ? null : ((ValueSet) resource), genlevel(level)) + s3;
else if (com[0].equals("vscld"))
src = s1 + vsCLD(Utilities.fileTitle(file), resource == null ? null : ((ValueSet) resource), genlevel(level)) + s3;
else if (com[0].equals("cs-content"))
src = s1 + csContent(Utilities.fileTitle(file), ((CodeSystem) resource), genlevel(level)) + s3;
else if (com[0].equals("vsexpansionig"))
src = s1 + expandValueSetIG((ValueSet) resource, true) + s3;
else if (com[0].equals("level"))
src = s1 + genlevel(level) + s3;
else if (com[0].equals("archive"))
src = s1 + makeArchives() + s3;
else if (com[0].equals("pagepath"))
src = s1 + pagePath + s3;
else if (com[0].equals("rellink")) {
if (!pagePath.contains(".html"))
throw new Error("Invalid link: " + pagePath + " at " + workingTitle);
src = s1 + Utilities.URLEncode(pagePath) + s3;
} else if (com[0].equals("baseURL"))
src = s1 + Utilities.URLEncode(baseURL) + s3;
else if (com[0].equals("baseURLn"))
src = s1 + Utilities.appendForwardSlash(baseURL) + s3;
else if (com[0].equals("profilelist"))
src = s1 + genProfilelist() + s3;
else if (com[0].equals("igprofileslist"))
src = s1 + genIGProfilelist() + s3;
else if (com[0].equals("operationslist"))
src = s1 + genOperationList() + s3;
else if (com[0].equals("example.profile.link"))
src = s1 + genExampleProfileLink(resource) + s3;
else if (com[0].equals("id_regex"))
src = s1 + FormatUtilities.ID_REGEX + s3;
else if (com[0].equals("resourcecount"))
src = s1 + Integer.toString(definitions.getResources().size()) + s3;
else if (others != null && others.containsKey(com[0]))
src = s1 + others.get(com[0]) + s3;
else if (com[0].equals("status-codes"))
src = s1 + genStatusCodes() + s3;
else if (com[0].equals("dictionary.name")) {
String n = name.contains(File.separator) ? name.substring(name.lastIndexOf(File.separator) + 1) : name;
src = s1 + definitions.getDictionaries().get(n).getName() + s3;
// } else if (com[0].equals("dictionary.view"))
// src = s1 + ResourceUtilities.representDataElementCollection(this.workerContext, (Bundle) resource, true, "hspc-qnlab-de") + s3;
} else if (com[0].equals("search-param-pack") && resource instanceof SearchParameter)
src = s1 + ((SearchParameter) resource).getUserData("pack") + s3;
else if (com[0].equals("search-param-name") && resource instanceof SearchParameter)
src = s1 + ((SearchParameter) resource).getName() + s3;
else if (com[0].equals("search-param-url") && resource instanceof SearchParameter)
src = s1 + ((SearchParameter) resource).getUrl() + s3;
else if (com[0].equals("search-param-type") && resource instanceof SearchParameter)
src = s1 + ((SearchParameter) resource).getType().toCode() + s3;
else if (com[0].equals("search-param-definition") && resource instanceof SearchParameter)
src = s1 + ((SearchParameter) resource).getDescription() + s3;
else if (com[0].equals("search-param-paths") && resource instanceof SearchParameter)
src = s1 + (((SearchParameter) resource).hasXpath() ? ((SearchParameter) resource).getXpath() : "") + s3;
else if (com[0].equals("search-param-targets") && resource instanceof SearchParameter) {
CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder();
for (CodeType t : ((SearchParameter) resource).getTarget()) b.append(t.asStringValue());
src = s1 + b.toString() + s3;
} else if (com[0].startsWith("!"))
src = s1 + s3;
else if (com[0].equals("txsummary"))
if (resource instanceof CodeSystem)
src = s1 + txsummary((CodeSystem) resource, genlevel(level)) + s3;
else
src = s1 + txsummary((ValueSet) resource, genlevel(level)) + s3;
else if (com[0].equals("identifierlist"))
src = s1 + genIdentifierList() + s3;
else if (com[0].equals("allsearchparams"))
src = s1 + genAllSearchParams() + s3;
else if (com[0].equals("internalsystemlist"))
src = s1 + genCSList() + s3;
else if (com[0].equals("internalsystemlistx"))
src = s1 + genCSListX() + s3;
else if (com[0].equals("example-usage"))
src = s1 + s3;
else if (com[0].equals("ig.title"))
src = s1 + ig.getName() + s3;
else if (com[0].equals("ig.wglink"))
src = s1 + igLink(ig) + s3;
else if (com[0].equals("ig.wgt"))
src = s1 + ig.getCommittee() + s3;
else if (com[0].equals("ig.fmm"))
src = s1 + getFmmFromlevel(genlevel(level), ig.getFmm()) + s3;
else if (com[0].equals("ig.ballot"))
src = s1 + ig.getBallot() + s3;
else if (com[0].equals("operations")) {
Profile p = (Profile) object;
src = s1 + genOperations(p.getOperations(), p.getTitle(), p.getId(), false, null, "../", "") + s3;
} else if (com[0].equals("operations-summary"))
src = s1 + genOperationsSummary(((Profile) object).getOperations(), rd) + s3;
else if (com[0].equals("ig.opcount"))
src = s1 + genOpCount(((Profile) object).getOperations()) + s3;
else if (com[0].equals("ig-toc"))
src = s1 + genIgToc(ig) + s3;
else if (com[0].equals("fhir-path"))
src = s1 + "../" + s3;
else if (com[0].equals("vscommittee"))
src = s1 + vscommittee(resource) + s3;
else if (com[0].equals("modifier-list"))
src = s1 + genModifierList() + s3;
else if (com[0].equals("missing-element-list"))
src = s1 + genMeaningWhenMissingList() + s3;
else if (com[0].equals("wgreport"))
src = s1 + genWGReport() + s3;
else if (com[0].equals("r3maps-summary"))
src = s1 + genR3MapsSummary() + s3;
else if (com[0].equals("wg")) {
src = s1 + (wg == null || !definitions.getWorkgroups().containsKey(wg) ? "(No assigned work group) (" + wg + " (1))" : "<a _target=\"blank\" href=\"" + definitions.getWorkgroups().get(wg).getUrl() + "\">" + definitions.getWorkgroups().get(wg).getName() + "</a> Work Group") + s3;
} else if (com[0].equals("profile-context"))
src = s1 + getProfileContext((CanonicalResource) resource, genlevel(level)) + s3;
else if (com[0].equals("res-list-maturity"))
src = s1 + buildResListByMaturity() + s3;
else if (com[0].equals("res-list-security"))
src = s1 + buildResListBySecurity() + s3;
else if (com[0].equals("res-list-fmg"))
src = s1 + buildResListByFMG() + s3;
else if (com[0].equals("res-list-ballot"))
src = s1 + buildResListByBallot() + s3;
else if (com[0].equals("res-list-committee"))
src = s1 + buildResListByCommittee() + s3;
else if (com[0].equals("wglist"))
src = s1 + buildCommitteeList() + s3;
else if (com[0].equals("opName"))
src = s1 + ((Operation) object).getName() + s3;
else if (com[0].equals("rName"))
src = s1 + rd.getName() + s3;
else if (com[0].equals("operation-summary"))
src = s1 + ((Operation) object).getName() + " summary" + s3;
else if (com[0].equals("extension-type-list"))
src = s1 + genExtensionTypeList() + s3;
else if (com[0].equals("best-practice-list"))
src = s1 + genBestPracticeList() + s3;
else if (com[0].equals("wildcard-type-list"))
src = s1 + genWildcardTypeList() + s3;
else if (com[0].startsWith("GF#"))
src = s1 + "<a href=\"https://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_item_id=" + com[0].substring(3) + "\">" + com[0] + "</a>" + s3;
else if (com[0].startsWith("GFT#"))
src = s1 + "<a href=\"https://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_item_id=" + com[0].substring(3) + "\">Task</a>" + s3;
else if (com[0].equals("operation")) {
Operation op = (Operation) object;
src = s1 + genOperation(op, rd.getName(), rd.getName().toLowerCase(), false, rd.getStatus(), genlevel(level), rd.getNormativePackage()) + s3;
} else if (com[0].equals("past-narrative-link")) {
if (object == null || !(object instanceof Boolean))
src = s1 + s3;
else
src = s1 + "<p><a href=\"#DomainResource.text.div-end\">Jump past Narrative</a></p>" + s3;
} else if (others != null && others.containsKey(s2))
src = s1 + others.get(s2) + s3;
else if (com[0].equals("canonical-resources"))
src = s1 + listCanonicalResources() + s3;
else if (com[0].equals("metadata-resources"))
src = s1 + listCanonicalResources() + s3;
else if (com[0].equals("special-search-parameters")) {
src = s1 + listSpecialParameters() + s3;
} else if (com[0].equals("diff-links-all")) {
src = s1 + genDiffLinks() + s3;
} else if (com[0].equals("res-type-count")) {
src = s1 + definitions.getResources().size() + s3;
} else if (com[0].equals("patterns-analysis")) {
src = s1 + patternFinder.generateReport() + s3;
} else if (macros.containsKey(com[0])) {
src = s1 + macros.get(com[0]) + s3;
} else
throw new Exception("Instruction <%" + s2 + "%> not understood parsing page " + file);
}
return src;
}
use of org.hl7.fhir.r4b.model.Resource in project kindling by HL7.
the class PageProcessor method getSearch.
/*
private String prepWikiName(String name) {
return Utilities.noString(name) ? "Index" : Utilities.capitalize(Utilities.fileTitle(name));
}
*/
private String getSearch(ResourceDefn resource, String searchAdditions) {
if (resource.getSearchParams().size() == 0)
return "";
else {
StandardsStatus st = resource.getStatus();
StringBuilder b = new StringBuilder();
b.append("<h2>Search Parameters</h2>\r\n");
if (resource.getName().equals("Query"))
b.append("<p>Search parameters for this resource. The <a href=\"#all\">common parameters</a> also apply.</p>\r\n");
else
b.append("<p>Search parameters for this resource. The <a href=\"search.html#all\">common parameters</a> also apply. See <a href=\"search.html\">Searching</a> for more information about searching in REST, messaging, and services.</p>\r\n");
b.append("<table class=\"list\">\r\n");
b.append("<tr><td><b>Name</b></td><td><b>Type</b></td><td><b>Description</b></td><td><b>Expression</b></td><td><b>In Common</b></td></tr>\r\n");
List<String> names = new ArrayList<String>();
names.addAll(resource.getSearchParams().keySet());
Collections.sort(names);
for (String name : names) {
SearchParameterDefn p = resource.getSearchParams().get(name);
String pp = presentPaths(p.getPaths());
String sst = (p.getStandardsStatus() == null || p.getStandardsStatus() == st) ? "" : makeStandardsStatusRef(p.getStandardsStatus());
b.append("<tr><td><a name=\"sp-").append(p.getCode()).append("\"> </a>").append(p.getCode()).append(sst).append("</td><td><a href=\"search.html#").append(p.getType()).append("\">").append(p.getType()).append("</a></td><td>").append(Utilities.escapeXml(p.getDescription())).append("</td><td>").append(p.getType() == SearchType.composite ? getCompositeExpression(p) : Utilities.escapeXml(p.getExpression())).append(p.getType() == SearchType.reference ? p.getTargetTypesAsText() : "").append("</td><td>").append(presentOthers(p)).append("</td></tr>\r\n");
}
b.append(searchAdditions);
b.append("</table>\r\n");
return b.toString();
}
}
Aggregations