Search in sources :

Example 11 with ProfileGenerator

use of org.hl7.fhir.definitions.generators.specification.ProfileGenerator in project kindling by HL7.

the class OldSpreadsheetParser method processExtension.

private int processExtension(ElementDefn extensions, Sheet sheet, int row, Definitions definitions, String uri, Profile ap, List<ValidationMessage> issues, Map<String, Invariant> invariants, WorkGroup wg) throws Exception {
    // first, we build the extension definition
    StructureDefinition ex = new StructureDefinition();
    ex.setUserData(ToolResourceUtilities.NAME_RES_IG, ig == null ? "core" : ig.getCode());
    ex.setUserData("profile", ap);
    ex.setKind(StructureDefinitionKind.COMPLEXTYPE);
    ex.setType("Extension");
    ex.setBaseDefinition("http://hl7.org/fhir/StructureDefinition/Extension");
    ex.setDerivation(TypeDerivationRule.CONSTRAINT);
    ex.setAbstract(false);
    ex.setFhirVersion(version);
    ex.setVersion(version.toCode());
    if (wg != null)
        ToolingExtensions.setCodeExtension(ex, ToolingExtensions.EXT_WORKGROUP, wg.getCode());
    String fmm = sheet.getColumn(row, "FMM");
    if (Utilities.noString(fmm))
        // default fmm value for extensions
        fmm = "1";
    ToolingExtensions.addIntegerExtension(ex, ToolingExtensions.EXT_FMM_LEVEL, Integer.parseInt(fmm));
    if (ap.hasMetadata("fmm-level"))
        ToolingExtensions.addIntegerExtension(ex, ToolingExtensions.EXT_FMM_LEVEL, Integer.parseInt(ap.getFmmLevel()));
    if (ap.hasMetadata("workgroup"))
        ToolingExtensions.setCodeExtension(ex, ToolingExtensions.EXT_WORKGROUP, ap.getWg());
    ToolResourceUtilities.updateUsage(ex, ap.getCategory());
    String name = sheet.getColumn(row, "Code");
    String context = null;
    if (Utilities.noString(name))
        throw new Exception("No code found on Extension at " + getLocation(row));
    if (name.contains("."))
        throw new Exception("Extension Definition Error: Extension names cannot contain '.': " + name + "  at " + getLocation(row));
    ex.setUrl(uri + name);
    ex.setId(tail(ex.getUrl()));
    ex.setUserData("path", "extension-" + ex.getId().toLowerCase() + ".html");
    ap.getExtensions().add(ex);
    if (context == null) {
        ExtensionContextType ct = readContextType(sheet.getColumn(row, "Context Type"), row);
        if (sheet.hasColumn("Context Invariant"))
            for (String s : sheet.getColumn(row, "Context Invariant").split("~")) ex.addContextInvariant(s);
        String cc = checkContextMacro(sheet.getColumn(row, "Context"));
        if (!Utilities.noString(cc))
            for (String c : cc.split("\\;")) {
                StructureDefinitionContextComponent ec = ex.addContext();
                ec.setExpression(c.trim());
                ec.setType(ct);
                if (definitions != null) {
                    definitions.checkContextValid(ec, this.name, this.context);
                }
            }
    }
    ex.setTitle(sheet.getColumn(row, "Display"));
    ElementDefn exe = new ElementDefn();
    exe.setName(sheet.getColumn(row, "Code"));
    ElementDefn exu = new ElementDefn();
    exu.setName("url");
    exu.setXmlAttribute(true);
    exe.getElements().add(exu);
    exu.setFixed(new UriType(ex.getUrl()));
    exu.getTypes().add(new TypeRef().setName("uri"));
    if (invariants != null) {
        for (Invariant inv : invariants.values()) {
            if (inv.getContext().equals(name))
                exe.getInvariants().put(inv.getId(), inv);
        }
    }
    parseExtensionElement(sheet, row, definitions, exe, false);
    String sl = exe.getShortDefn();
    ex.setName(sheet.getColumn(row, "Name"));
    if (!ex.hasName())
        ex.setName(exe.getName());
    if (!ex.hasName())
        ex.setName(ex.getTitle());
    if (!ex.hasName() && !Utilities.noString(sl))
        ex.setName(sl);
    if (!ex.hasName())
        throw new Exception("Extension " + ex.getUrl() + " missing name at " + getLocation(row));
    ex.setDescription(preProcessMarkdown(exe.getDefinition(), "Extension Definition"));
    ex.setPublisher(ap.metadata("author.name"));
    if (ap.hasMetadata("author.reference"))
        ex.addContact().getTelecom().add(Factory.newContactPoint(ContactPointSystem.URL, ap.metadata("author.reference")));
    // <code> opt Zero+ Coding assist with indexing and finding</code>
    if (ap.hasMetadata("date"))
        ex.setDateElement(Factory.newDateTime(ap.metadata("date").substring(0, 10)));
    else
        ex.setDate(genDate.getTime());
    if (ap.hasMetadata("status"))
        ex.setStatus(PublicationStatus.fromCode(ap.metadata("status")));
    row++;
    if (ig == null || ig.isCore()) {
        if (!ex.getUrl().startsWith("http://hl7.org/fhir/StructureDefinition/") && !ex.getUrl().startsWith("http://fhir-registry.smarthealthit.org/StructureDefinition/"))
            throw new Exception("extension " + ex.getUrl() + " is not valid in the publication tooling");
    } else {
        if (!ex.getUrl().startsWith("http://hl7.org/fhir/StructureDefinition/" + ig.getCode() + "-"))
            throw new Exception("extension " + ex.getUrl() + " is not valid for the IG " + ig.getCode() + " in the publication tooling");
    }
    while (row < sheet.getRows().size() && sheet.getColumn(row, "Code").startsWith(name + ".")) {
        String n = sheet.getColumn(row, "Code");
        ElementDefn p = findContext(exe, n.substring(0, n.lastIndexOf(".")), "Extension Definition " + name);
        ElementDefn child = new ElementDefn();
        p.getElements().add(child);
        child.setName(n.substring(n.lastIndexOf(".") + 1));
        child.setProfileName(child.getName());
        parseExtensionElement(sheet, row, definitions, child, true);
        if (invariants != null) {
            for (Invariant inv : invariants.values()) {
                if (inv.getContext().equals(n))
                    child.getInvariants().put(inv.getId(), inv);
            }
        }
        row++;
    }
    ProfileGenerator gen = new ProfileGenerator(definitions, null, pkp, null, version, null, fpUsages, null, null, rc);
    ProfileUtilities utils = new ProfileUtilities(this.context, issues, pkp);
    gen.convertElements(exe, ex, null);
    ex.getDifferential().getElementFirstRep().getType().clear();
    utils.setIds(ex, false);
    StructureDefinition base = definitions != null ? definitions.getSnapShotForType("Extension") : this.context.fetchResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/Extension");
    List<String> errors = new ArrayList<String>();
    utils.sortDifferential(base, ex, "extension " + ex.getUrl(), errors, false);
    assert (errors.size() == 0);
    utils.generateSnapshot(base, ex, ex.getUrl(), "http://hl7.org/fhir", ex.getName());
    utils.setIds(ex, true);
    new ExtensionDefinitionValidator(context).validate(ex);
    this.context.cacheResource(ex);
    return row;
}
Also used : Invariant(org.hl7.fhir.definitions.model.Invariant) ProfileGenerator(org.hl7.fhir.definitions.generators.specification.ProfileGenerator) StructureDefinitionContextComponent(org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionContextComponent) TypeRef(org.hl7.fhir.definitions.model.TypeRef) ElementDefn(org.hl7.fhir.definitions.model.ElementDefn) ArrayList(java.util.ArrayList) FHIRException(org.hl7.fhir.exceptions.FHIRException) UriType(org.hl7.fhir.r5.model.UriType) StructureDefinition(org.hl7.fhir.r5.model.StructureDefinition) ExtensionContextType(org.hl7.fhir.r5.model.StructureDefinition.ExtensionContextType) ProfileUtilities(org.hl7.fhir.r5.conformance.ProfileUtilities) ExtensionDefinitionValidator(org.hl7.fhir.definitions.validation.ExtensionDefinitionValidator)

Example 12 with ProfileGenerator

use of org.hl7.fhir.definitions.generators.specification.ProfileGenerator in project kindling by HL7.

the class Publisher method generateConformanceStatement.

private void generateConformanceStatement(boolean full, String name, boolean register) throws Exception {
    pgen = new ProfileGenerator(page.getDefinitions(), page.getWorkerContext(), page, page.getGenDate(), page.getVersion(), dataElements, fpUsages, page.getFolders().rootDir, page.getUml(), page.getRc());
    CapabilityStatement cpbs = new CapabilityStatement();
    cpbs.setId(FormatUtilities.makeId(name));
    cpbs.setUrl("http://hl7.org/fhir/CapabilityStatement/" + name);
    cpbs.setVersion(page.getVersion().toCode());
    cpbs.setName("Base FHIR Capability Statement " + (full ? "(Full)" : "(Empty)"));
    cpbs.setStatus(PublicationStatus.DRAFT);
    cpbs.setExperimental(true);
    cpbs.setDate(page.getGenDate().getTime());
    cpbs.setPublisher("FHIR Project Team");
    cpbs.addContact().getTelecom().add(Factory.newContactPoint(ContactPointSystem.URL, "http://hl7.org/fhir"));
    cpbs.setKind(CapabilityStatementKind.CAPABILITY);
    cpbs.setSoftware(new CapabilityStatementSoftwareComponent());
    cpbs.getSoftware().setName("Insert your software name here...");
    cpbs.setFhirVersion(page.getVersion());
    cpbs.getFormat().add(Factory.newCode("xml"));
    cpbs.getFormat().add(Factory.newCode("json"));
    CapabilityStatementRestComponent rest = new CapabilityStatement.CapabilityStatementRestComponent();
    cpbs.getRest().add(rest);
    rest.setMode(RestfulCapabilityMode.SERVER);
    if (full) {
        rest.setDocumentation("All the functionality defined in FHIR");
        cpbs.setDescription("This is the base Capability Statement for FHIR. It represents a server that provides the full set of functionality defined by FHIR. It is provided to use as a template for system designers to build their own Capability Statements from");
    } else {
        rest.setDocumentation("An empty Capability Statement");
        cpbs.setDescription("This is the base Capability Statement for FHIR. It represents a server that provides the none of the functionality defined by FHIR. It is provided to use as a template for system designers to build their own Capability Statements from. A capability statement has to contain something, so this contains a read of a Capability Statement");
    }
    rest.setSecurity(new CapabilityStatementRestSecurityComponent());
    rest.getSecurity().setCors(true);
    rest.getSecurity().addService().setText("See http://docs.smarthealthit.org/").addCoding().setSystem("http://terminology.hl7.org/CodeSystem/restful-security-service").setCode("SMART-on-FHIR").setDisplay("SMART-on-FHIR");
    rest.getSecurity().setDescription("This is the Capability Statement to declare that the server supports SMART-on-FHIR. See the SMART-on-FHIR docs for the extension that would go with such a server");
    if (full) {
        for (String rn : page.getDefinitions().sortedResourceNames()) {
            ResourceDefn rd = page.getDefinitions().getResourceByName(rn);
            CapabilityStatementRestResourceComponent res = new CapabilityStatement.CapabilityStatementRestResourceComponent();
            rest.getResource().add(res);
            res.setType(rn);
            res.setProfile("http://hl7.org/fhir/StructureDefinition/" + rn);
            genConfInteraction(cpbs, res, TypeRestfulInteraction.READ, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.VREAD, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.UPDATE, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.DELETE, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.HISTORYINSTANCE, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.HISTORYTYPE, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.CREATE, "Implemented per the specification (or Insert other doco here)");
            genConfInteraction(cpbs, res, TypeRestfulInteraction.SEARCHTYPE, "Implemented per the specification (or Insert other doco here)");
            res.setConditionalCreate(true);
            res.setConditionalUpdate(true);
            res.setConditionalDelete(ConditionalDeleteStatus.MULTIPLE);
            res.addReferencePolicy(ReferenceHandlingPolicy.LITERAL);
            res.addReferencePolicy(ReferenceHandlingPolicy.LOGICAL);
            for (SearchParameterDefn i : rd.getSearchParams().values()) {
                res.getSearchParam().add(makeSearchParam(rn, i));
                if (i.getType().equals(SearchType.reference))
                    res.getSearchInclude().add(new StringType(rn + "." + i.getCode()));
            }
            for (String rni : page.getDefinitions().sortedResourceNames()) {
                ResourceDefn rdi = page.getDefinitions().getResourceByName(rni);
                for (SearchParameterDefn ii : rdi.getSearchParams().values()) {
                    if (ii.getType().equals(SearchType.reference) && ii.getTargets().contains(rn))
                        res.getSearchRevInclude().add(new StringType(rni + "." + ii.getCode()));
                }
            }
        }
        genConfInteraction(cpbs, rest, SystemRestfulInteraction.TRANSACTION, "Implemented per the specification (or Insert other doco here)");
        genConfInteraction(cpbs, rest, SystemRestfulInteraction.BATCH, "Implemented per the specification (or Insert other doco here)");
        genConfInteraction(cpbs, rest, SystemRestfulInteraction.HISTORYSYSTEM, "Implemented per the specification (or Insert other doco here)");
        genConfInteraction(cpbs, rest, SystemRestfulInteraction.SEARCHSYSTEM, "Implemented per the specification (or Insert other doco here)");
        for (ResourceDefn rd : page.getDefinitions().getBaseResources().values()) {
            for (SearchParameterDefn i : rd.getSearchParams().values()) rest.getSearchParam().add(makeSearchParam(rd.getName(), i));
            rest.getSearchParam().add(makeSearchParam("something", SearchParamType.STRING, "id", "some doco"));
            rest.getSearchParam().add(makeSearchParam("_list", SearchParamType.TOKEN, "Resource-list", "Retrieval of resources that are referenced by a List resource"));
            rest.getSearchParam().add(makeSearchParam("_has", SearchParamType.COMPOSITE, "Resource-has", "Provides support for reverse chaining"));
            rest.getSearchParam().add(makeSearchParam("_type", SearchParamType.TOKEN, "Resource-type", "Type of resource (when doing cross-resource search"));
            rest.getSearchParam().add(makeSearchParam("_sort", SearchParamType.TOKEN, "Resource-source", "How to sort the resources when returning"));
            rest.getSearchParam().add(makeSearchParam("_count", SearchParamType.NUMBER, "Resource-count", "How many resources to return"));
            rest.getSearchParam().add(makeSearchParam("_include", SearchParamType.TOKEN, "Resource-include", "Control over returning additional resources (see spec)"));
            rest.getSearchParam().add(makeSearchParam("_revinclude", SearchParamType.TOKEN, "Resource-revinclude", "Control over returning additional resources (see spec)"));
            rest.getSearchParam().add(makeSearchParam("_summary", SearchParamType.TOKEN, "Resource-summary", "What kind of information to return"));
            rest.getSearchParam().add(makeSearchParam("_elements", SearchParamType.STRING, "Resource-elements", "What kind of information to return"));
            rest.getSearchParam().add(makeSearchParam("_contained", SearchParamType.TOKEN, "Resource-contained", "Managing search into contained resources"));
            rest.getSearchParam().add(makeSearchParam("_containedType", SearchParamType.TOKEN, "Resource-containedType", "Managing search into contained resources"));
            for (Operation op : rd.getOperations()) rest.addOperation().setName(op.getName()).setDefinition("http://hl7.org/fhir/OperationDefinition/" + rd.getName().toLowerCase() + "-" + op.getName());
        }
        for (String rn : page.getDefinitions().sortedResourceNames()) {
            ResourceDefn r = page.getDefinitions().getResourceByName(rn);
            for (Operation op : r.getOperations()) rest.addOperation().setName(op.getName()).setDefinition("http://hl7.org/fhir/OperationDefinition/" + r.getName().toLowerCase() + "-" + op.getName());
        }
    } else {
    // don't add anything - the metadata operation is implicit
    // CapabilityStatementRestResourceComponent res = new CapabilityStatement.CapabilityStatementRestResourceComponent();
    // rest.getResource().add(res);
    // res.setType("CapabilityStatement");
    // genConfInteraction(cpbs, res, TypeRestfulInteraction.READ, "Read CapabilityStatement Resource");
    }
    if (register) {
        RenderingContext lrc = page.getRc().copy().setLocalPrefix("").setTooCostlyNoteEmpty(PageProcessor.TOO_MANY_CODES_TEXT_EMPTY).setTooCostlyNoteNotEmpty(PageProcessor.TOO_MANY_CODES_TEXT_NOT_EMPTY);
        RendererFactory.factory(cpbs, lrc).render(cpbs);
        FileOutputStream s = new FileOutputStream(page.getFolders().dstDir + "capabilitystatement-" + name + ".xml");
        new XmlParser().setOutputStyle(OutputStyle.PRETTY).compose(s, cpbs);
        s.close();
        s = new FileOutputStream(page.getFolders().dstDir + "capabilitystatement-" + name + ".canonical.xml");
        new XmlParser().setOutputStyle(OutputStyle.CANONICAL).compose(s, cpbs);
        s.close();
        cloneToXhtml("capabilitystatement-" + name + "", "Basic Capability Statement", true, "resource-instance:CapabilityStatement", "Capability Statement", null, wg("fhir"));
        s = new FileOutputStream(page.getFolders().dstDir + "capabilitystatement-" + name + ".json");
        new JsonParser().setOutputStyle(OutputStyle.PRETTY).compose(s, cpbs);
        s.close();
        s = new FileOutputStream(page.getFolders().dstDir + "capabilitystatement-" + name + ".canonical.json");
        new JsonParser().setOutputStyle(OutputStyle.CANONICAL).compose(s, cpbs);
        s.close();
        jsonToXhtml("capabilitystatement-" + name, "Base Capability Statement", resource2Json(cpbs), "resource-instance:CapabilityStatement", "Capability Statement", null, wg("fhir"));
        s = new FileOutputStream(page.getFolders().dstDir + "capabilitystatement-" + name + ".ttl");
        new RdfParser().setOutputStyle(OutputStyle.PRETTY).compose(s, cpbs);
        s.close();
        ttlToXhtml("capabilitystatement-" + name, "Base Capability Statement", resource2Ttl(cpbs), "resource-instance:CapabilityStatement", "Capability Statement", null, wg("fhir"));
        Utilities.copyFile(new CSFile(page.getFolders().dstDir + "capabilitystatement-" + name + ".xml"), new CSFile(page.getFolders().dstDir + "examples" + File.separator + "capabilitystatement-" + name + ".xml"));
    }
    if (buildFlags.get("all")) {
        RenderingContext lrc = page.getRc().copy().setLocalPrefix("");
        RendererFactory.factory(cpbs, lrc).render(cpbs);
        deletefromFeed(ResourceType.CapabilityStatement, name, page.getResourceBundle());
        addToResourceFeed(cpbs, page.getResourceBundle());
    }
}
Also used : RenderingContext(org.hl7.fhir.r5.renderers.utils.RenderingContext) XmlParser(org.hl7.fhir.r5.formats.XmlParser) ProfileGenerator(org.hl7.fhir.definitions.generators.specification.ProfileGenerator) StringType(org.hl7.fhir.r5.model.StringType) SearchParameterDefn(org.hl7.fhir.definitions.model.SearchParameterDefn) Operation(org.hl7.fhir.definitions.model.Operation) CSFile(org.hl7.fhir.utilities.CSFile) ResourceDefn(org.hl7.fhir.definitions.model.ResourceDefn) CapabilityStatementRestSecurityComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestSecurityComponent) FileOutputStream(java.io.FileOutputStream) CapabilityStatement(org.hl7.fhir.r5.model.CapabilityStatement) CapabilityStatementSoftwareComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementSoftwareComponent) CapabilityStatementRestComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestComponent) CapabilityStatementRestResourceComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceComponent) JsonParser(org.hl7.fhir.r5.formats.JsonParser) RdfParser(org.hl7.fhir.r5.formats.RdfParser)

Example 13 with ProfileGenerator

use of org.hl7.fhir.definitions.generators.specification.ProfileGenerator in project kindling by HL7.

the class Publisher method produceOperation.

private void produceOperation(ImplementationGuideDefn ig, String name, String id, ResourceDefn resource, Operation op, SectionTracker st) throws Exception {
    OperationDefinition opd = new ProfileGenerator(page.getDefinitions(), page.getWorkerContext(), page, page.getGenDate(), page.getVersion(), dataElements, fpUsages, page.getFolders().rootDir, page.getUml(), page.getRc()).generate(name, id, resource.getName(), op, resource);
    String dir = ig == null ? "" : ig.getCode() + File.separator;
    FileOutputStream s = new FileOutputStream(page.getFolders().dstDir + dir + "operation-" + name + ".xml");
    new XmlParser().setOutputStyle(OutputStyle.PRETTY).compose(s, opd);
    s.close();
    s = new FileOutputStream(page.getFolders().dstDir + dir + "operation-" + name + ".canonical.xml");
    new XmlParser().setOutputStyle(OutputStyle.CANONICAL).compose(s, opd);
    s.close();
    cloneToXhtml(dir + "operation-" + name + "", "Operation Definition", true, "resource-instance:OperationDefinition", "Operation definition", resource, resource.getWg());
    s = new FileOutputStream(page.getFolders().dstDir + dir + "operation-" + name + ".json");
    new JsonParser().setOutputStyle(OutputStyle.PRETTY).compose(s, opd);
    s.close();
    s = new FileOutputStream(page.getFolders().dstDir + dir + "operation-" + name + ".canonical.json");
    new JsonParser().setOutputStyle(OutputStyle.CANONICAL).compose(s, opd);
    s.close();
    jsonToXhtml(dir + "operation-" + name, "Operation Definition", resource2Json(opd), "resource-instance:OperationDefinition", "Operation definition", resource, resource.getWg());
    s = new FileOutputStream(page.getFolders().dstDir + dir + "operation-" + name + ".ttl");
    new RdfParser().setOutputStyle(OutputStyle.PRETTY).compose(s, opd);
    s.close();
    ttlToXhtml(dir + "operation-" + name, "Operation Definition", resource2Ttl(opd), "resource-instance:OperationDefinition", "Operation definition", resource, resource.getWg());
    Utilities.copyFile(new CSFile(page.getFolders().dstDir + dir + "operation-" + name + ".xml"), new CSFile(page.getFolders().dstDir + "examples" + File.separator + "operation-" + name + ".xml"));
    if (buildFlags.get("all")) {
        addToResourceFeed(opd, page.getResourceBundle(), name);
        page.getWorkerContext().cacheResource(opd);
    }
    // now we create a page for the operation
    String fnp = resource.getName().toLowerCase() + "-operation-" + op.getName().toLowerCase() + ".html";
    String src = TextFile.fileToString(page.getFolders().templateDir + "template-operation.html");
    src = page.processPageIncludes(fnp, src, "res-Operations", null, "operation-" + name + ".html", op.getResource(), null, "Operation Definition", op, ig, resource, resource.getWg());
    TextFile.stringToFile(insertSectionNumbers(src, st, fnp, 0, null), page.getFolders().dstDir + fnp);
    page.getHTMLChecker().registerFile(fnp, "Operation " + op.getName() + " for " + resource.getName(), HTMLLinkChecker.XHTML_TYPE, true);
    // now, we create an html page from the narrative
    String html = TextFile.fileToString(page.getFolders().templateDir + "template-example.html").replace("<%example%>", new XhtmlComposer(XhtmlComposer.HTML).compose(opd.getText().getDiv()));
    html = page.processPageIncludes(dir + "operation-" + name + ".html", html, "resource-instance:OperationDefinition", null, null, null, "Operation Definition", ig, resource, resource.getWg());
    TextFile.stringToFile(html, page.getFolders().dstDir + dir + "operation-" + name + ".html");
    page.getHTMLChecker().registerFile(dir + "operation-" + name + ".html", "Operation " + op.getName(), HTMLLinkChecker.XHTML_TYPE, true);
// head =
// "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\r\n<head>\r\n <title>"+Utilities.escapeXml(e.getDescription())+"</title>\r\n <link rel=\"Stylesheet\" href=\"fhir.css\" type=\"text/css\" media=\"screen\"/>\r\n"+
// "</head>\r\n<body>\r\n<p>&nbsp;</p>\r\n<p>"+Utilities.escapeXml(e.getDescription())+"</p>\r\n"+
// "<p><a href=\""+n+".xml.html\">XML</a> <a href=\""+n+".json.html\">JSON</a></p>\r\n";
// tail = "\r\n</body>\r\n</html>\r\n";
// TextFile.stringToFile(head+narrative+tail, page.getFolders().dstDir + n +
// ".html");
}
Also used : XmlParser(org.hl7.fhir.r5.formats.XmlParser) ProfileGenerator(org.hl7.fhir.definitions.generators.specification.ProfileGenerator) FileOutputStream(java.io.FileOutputStream) XhtmlComposer(org.hl7.fhir.utilities.xhtml.XhtmlComposer) CSFile(org.hl7.fhir.utilities.CSFile) OperationDefinition(org.hl7.fhir.r5.model.OperationDefinition) JsonParser(org.hl7.fhir.r5.formats.JsonParser) RdfParser(org.hl7.fhir.r5.formats.RdfParser)

Aggregations

ProfileGenerator (org.hl7.fhir.definitions.generators.specification.ProfileGenerator)12 StructureDefinition (org.hl7.fhir.r5.model.StructureDefinition)11 FHIRException (org.hl7.fhir.exceptions.FHIRException)9 FileNotFoundException (java.io.FileNotFoundException)8 IOException (java.io.IOException)8 UnsupportedEncodingException (java.io.UnsupportedEncodingException)7 TransformerException (javax.xml.transform.TransformerException)7 FileOutputStream (java.io.FileOutputStream)3 JsonParser (org.hl7.fhir.r5.formats.JsonParser)3 XmlParser (org.hl7.fhir.r5.formats.XmlParser)3 CSFile (org.hl7.fhir.utilities.CSFile)3 XhtmlNode (org.hl7.fhir.utilities.xhtml.XhtmlNode)3 DataTypeTableGenerator (org.hl7.fhir.definitions.generators.specification.DataTypeTableGenerator)2 ImplementationGuideDefn (org.hl7.fhir.definitions.model.ImplementationGuideDefn)2 ResourceDefn (org.hl7.fhir.definitions.model.ResourceDefn)2 ProfileUtilities (org.hl7.fhir.r5.conformance.ProfileUtilities)2 RdfParser (org.hl7.fhir.r5.formats.RdfParser)2 ArrayList (java.util.ArrayList)1 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)1 ResourceTableGenerator (org.hl7.fhir.definitions.generators.specification.ResourceTableGenerator)1