Search in sources :

Example 6 with Narrative

use of org.hl7.fhir.dstu2.model.Narrative in project kindling by HL7.

the class PageProcessor method genDTCodes.

private String genDTCodes() {
    StringBuilder html = new StringBuilder();
    List<String> names = new ArrayList<String>();
    names.addAll(definitions.getTypes().keySet());
    names.addAll(definitions.getInfrastructure().keySet());
    Collections.sort(names);
    for (String n : names) {
        if (!definitions.dataTypeIsSharedInfo(n)) {
            ElementDefn c = definitions.getTypes().get(n);
            if (c == null)
                c = definitions.getInfrastructure().get(n);
            if (c.getName().equals("Extension"))
                html.append("  <tr><td><a href=\"extensibility.html\">" + c.getName() + "</a></td><td>" + Utilities.escapeXml(c.getDefinition()) + "</td></tr>");
            else if (c.getName().equals("Narrative"))
                html.append("  <tr><td><a href=\"narrative.html#" + c.getName() + "\">" + c.getName() + "</a></td><td>" + Utilities.escapeXml(c.getDefinition()) + "</td></tr>");
            else if (c.getName().equals("Reference"))
                html.append("  <tr><td><a href=\"references.html#" + c.getName() + "\">" + c.getName() + "</a></td><td>" + Utilities.escapeXml(c.getDefinition()) + "</td></tr>");
            else if (c.getName().equals("canonical"))
                html.append("  <tr><td><a href=\"references.html#" + c.getName() + "\">" + c.getName() + "</a></td><td>" + Utilities.escapeXml(c.getDefinition()) + "</td></tr>");
            else
                html.append("  <tr><td><a href=\"datatypes.html#" + c.getName() + "\">" + c.getName() + "</a></td><td>" + Utilities.escapeXml(c.getDefinition()) + "</td></tr>");
        }
    }
    return html.toString();
}
Also used : CommaSeparatedStringBuilder(org.hl7.fhir.utilities.CommaSeparatedStringBuilder) ArrayList(java.util.ArrayList) ElementDefn(org.hl7.fhir.definitions.model.ElementDefn)

Example 7 with Narrative

use of org.hl7.fhir.dstu2.model.Narrative 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 + "&amp;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\">&Delta;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 + "&amp;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\">&Delta;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&amp;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&amp;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;
}
Also used : DomainResource(org.hl7.fhir.r5.model.DomainResource) Operation(org.hl7.fhir.definitions.model.Operation) Profile(org.hl7.fhir.definitions.model.Profile) StructureDefinition(org.hl7.fhir.r5.model.StructureDefinition) Example(org.hl7.fhir.definitions.model.Example) OperationExample(org.hl7.fhir.definitions.model.Operation.OperationExample) XhtmlComposer(org.hl7.fhir.utilities.xhtml.XhtmlComposer) ConstraintStructure(org.hl7.fhir.definitions.model.ConstraintStructure) SearchParameter(org.hl7.fhir.r5.model.SearchParameter) ValueSet(org.hl7.fhir.r5.model.ValueSet) StandardsStatus(org.hl7.fhir.utilities.StandardsStatus) FHIRFormatError(org.hl7.fhir.exceptions.FHIRFormatError) TransformerFactoryConfigurationError(javax.xml.transform.TransformerFactoryConfigurationError) CommaSeparatedStringBuilder(org.hl7.fhir.utilities.CommaSeparatedStringBuilder) CodeSystem(org.hl7.fhir.r5.model.CodeSystem) ContactPoint(org.hl7.fhir.r5.model.ContactPoint) UcumException(org.fhir.ucum.UcumException) TransformerException(javax.xml.transform.TransformerException) TransformerConfigurationException(javax.xml.transform.TransformerConfigurationException) IOException(java.io.IOException) FHIRException(org.hl7.fhir.exceptions.FHIRException) URISyntaxException(java.net.URISyntaxException) PathEngineException(org.hl7.fhir.exceptions.PathEngineException) DefinitionException(org.hl7.fhir.exceptions.DefinitionException) FileNotFoundException(java.io.FileNotFoundException) NotImplementedException(org.apache.commons.lang3.NotImplementedException) Date(java.util.Date) SvgGenerator(org.hl7.fhir.definitions.generators.specification.SvgGenerator) CodeType(org.hl7.fhir.r5.model.CodeType) JsonObject(com.google.gson.JsonObject) IniFile(org.hl7.fhir.utilities.IniFile) File(java.io.File) CSFile(org.hl7.fhir.utilities.CSFile) TextFile(org.hl7.fhir.utilities.TextFile) CanonicalResource(org.hl7.fhir.r5.model.CanonicalResource) SimpleDateFormat(java.text.SimpleDateFormat)

Example 8 with Narrative

use of org.hl7.fhir.dstu2.model.Narrative in project kindling by HL7.

the class PageProcessor method narrHeader.

private String narrHeader(String mode) {
    StringBuilder b = new StringBuilder();
    b.append("<ul class=\"nav nav-tabs\">");
    b.append(makeHeaderTab("Narrative", "narrative.html", mode == null || "base".equals(mode)));
    b.append(makeHeaderTab("Examples", "narrative-example.html", mode == null || "examples".equals(mode)));
    b.append(makeHeaderTab("Detailed Descriptions", "narrative-definitions.html", mode == null || "definitions".equals(mode)));
    b.append("</ul>\r\n");
    return b.toString();
}
Also used : CommaSeparatedStringBuilder(org.hl7.fhir.utilities.CommaSeparatedStringBuilder)

Example 9 with Narrative

use of org.hl7.fhir.dstu2.model.Narrative in project kindling by HL7.

the class CDAGenerator method checkType.

private void checkType(TypeRefComponent t) {
    String id = t.getWorkingCode();
    if (Utilities.existsInList(id, "string", "Element", "code", "boolean", "Resource"))
        return;
    for (StructureDefinition sd : structures) {
        if (sd.getId().equals(fix(id)))
            return;
    }
    if (id.equals("http://hl7.org/fhir/cda/StructureDefinition/PN") || id.equals("http://hl7.org/fhir/cda/StructureDefinition/ON"))
        t.setCode("http://hl7.org/fhir/cda/StructureDefinition/EN");
    else if (id.equals("NARRATIVE"))
        t.setCode("xhtml");
    else
        System.out.println("Unknown data type " + id);
}
Also used : StructureDefinition(org.hl7.fhir.r5.model.StructureDefinition)

Example 10 with Narrative

use of org.hl7.fhir.dstu2.model.Narrative in project kindling by HL7.

the class ValueSetGenerator method genDataTypes.

private void genDataTypes(ValueSet vs) throws Exception {
    if (!vs.hasCompose())
        vs.setCompose(new ValueSetComposeComponent());
    vs.getCompose().addInclude().setSystem("http://hl7.org/fhir/data-types");
    vs.setUserData("filename", "valueset-" + vs.getId());
    if (!vs.hasExtension(ToolingExtensions.EXT_WORKGROUP)) {
        vs.addExtension().setUrl(ToolingExtensions.EXT_WORKGROUP).setValue(new CodeType("fhir"));
    } else {
        String ec = ToolingExtensions.readStringExtension(vs, ToolingExtensions.EXT_WORKGROUP);
        if (!ec.equals("fhir"))
            System.out.println("ValueSet " + vs.getUrl() + " WG mismatch 6: is " + ec + ", want to set to " + "fhir");
    }
    vs.setUserData("path", "valueset-" + vs.getId() + ".html");
    CodeSystem cs = new CodeSystem();
    CodeSystemConvertor.populate(cs, vs);
    cs.setUrl("http://hl7.org/fhir/data-types");
    cs.setVersion(version);
    cs.setCaseSensitive(true);
    cs.setContent(CodeSystemContentMode.COMPLETE);
    definitions.getCodeSystems().see(cs, packageInfo);
    List<String> codes = new ArrayList<String>();
    for (TypeRef t : definitions.getKnownTypes()) codes.add(t.getName());
    Collections.sort(codes);
    for (String s : codes) {
        if (!definitions.dataTypeIsSharedInfo(s)) {
            ConceptDefinitionComponent c = cs.addConcept();
            c.setCode(s);
            c.setDisplay(s);
            if (definitions.getPrimitives().containsKey(s))
                c.setDefinition(definitions.getPrimitives().get(s).getDefinition());
            else if (definitions.getConstraints().containsKey(s))
                // don't add these: c.setDefinition(definitions.getConstraints().get(s).getDefinition());
                ;
            else if (definitions.hasElementDefn(s))
                c.setDefinition(definitions.getElementDefn(s).getDefinition());
            else
                c.setDefinition("...to do...");
        }
    }
    ToolingExtensions.addCSComment(cs.addConcept().setCode("xhtml").setDisplay("XHTML").setDefinition("XHTML format, as defined by W3C, but restricted usage (mainly, no active content)"), "Special case: xhtml can only be used in the narrative Data Type");
    markSpecialStatus(vs, cs, true);
}
Also used : ConceptDefinitionComponent(org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent) TypeRef(org.hl7.fhir.definitions.model.TypeRef) ArrayList(java.util.ArrayList) CodeType(org.hl7.fhir.r5.model.CodeType) ValueSetComposeComponent(org.hl7.fhir.r5.model.ValueSet.ValueSetComposeComponent) CodeSystem(org.hl7.fhir.r5.model.CodeSystem)

Aggregations

XhtmlNode (org.hl7.fhir.utilities.xhtml.XhtmlNode)80 FHIRException (org.hl7.fhir.exceptions.FHIRException)40 IOException (java.io.IOException)34 NotImplementedException (org.apache.commons.lang3.NotImplementedException)30 UnsupportedEncodingException (java.io.UnsupportedEncodingException)27 DefinitionException (org.hl7.fhir.exceptions.DefinitionException)23 Test (org.junit.Test)22 MethodOutcome (ca.uhn.fhir.rest.api.MethodOutcome)19 ArrayList (java.util.ArrayList)19 XhtmlParser (org.hl7.fhir.utilities.xhtml.XhtmlParser)17 Narrative (org.hl7.fhir.r4.model.Narrative)15 Narrative (org.hl7.fhir.r5.model.Narrative)15 StructureDefinition (org.hl7.fhir.r5.model.StructureDefinition)14 XhtmlComposer (org.hl7.fhir.utilities.xhtml.XhtmlComposer)14 GET (javax.ws.rs.GET)12 Path (javax.ws.rs.Path)12 Produces (javax.ws.rs.Produces)12 IBaseOperationOutcome (org.hl7.fhir.instance.model.api.IBaseOperationOutcome)12 FileNotFoundException (java.io.FileNotFoundException)10 LinkedHashMap (java.util.LinkedHashMap)10