This commit is contained in:
Lloyd McKenzie 2020-11-07 15:38:21 -07:00
commit bc539efb38
7 changed files with 98 additions and 326 deletions

View File

@ -1,4 +1,4 @@
#/bin/bash #!/bin/bash
pubsource=https://github.com/HL7/fhir-ig-publisher/releases/latest/download/ pubsource=https://github.com/HL7/fhir-ig-publisher/releases/latest/download/
publisher_jar=publisher.jar publisher_jar=publisher.jar
dlurl=$pubsource$publisher_jar dlurl=$pubsource$publisher_jar

View File

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!--
test comment for display
-->
<Patient xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas/R5/fhir-single.xsd"> <Patient xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas/R5/fhir-single.xsd">
<id value="example"/> <id value="example"/>
<meta> <meta>

View File

@ -38,6 +38,11 @@
<license value="CC0-1.0"/> <license value="CC0-1.0"/>
<!-- This is whatever FHIR version(s) the IG artifacts are targeting (not the version of this file, which should always be 'current release') --> <!-- This is whatever FHIR version(s) the IG artifacts are targeting (not the version of this file, which should always be 'current release') -->
<fhirVersion value="4.0.1"/> <fhirVersion value="4.0.1"/>
<dependsOn>
<uri value="https://simplifier.net/packages/de.medizininformatikinitiative.kerndatensatz.fall/0.9.1/files/131317"/>
<packageId value="de.medizininformatikinitiative.kerndatensatz.fall"/>
<version value="0.9.1"/>
</dependsOn>
<definition> <definition>
<!-- You don't need to define any groupings. The IGPublisher will define them for you. You only need to do so if your IG is 'special' and it's <!-- You don't need to define any groupings. The IGPublisher will define them for you. You only need to do so if your IG is 'special' and it's
inappropriate to use the defaults. Feel free to provide feedback about the defaults... --> inappropriate to use the defaults. Feel free to provide feedback about the defaults... -->
@ -47,6 +52,18 @@
</reference> </reference>
<description value="Overriding description because we can"/> <description value="Overriding description because we can"/>
</resource> </resource>
<resource>
<reference>
<reference value="Library/example-sql"/>
</reference>
<description value="A test example"/>
</resource>
<resource>
<reference>
<reference value="Library/example-image"/>
</reference>
<description value="A test image example"/>
</resource>
<!--<resource> <!--<resource>
<reference> <reference>
<reference value="MyLogicalModel/AS"/> <reference value="MyLogicalModel/AS"/>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<Library xmlns="http://hl7.org/fhir">
<url value="http://somewhere.org/fhir/uv/myig/Library/example-sql"/>
<version value="1.0.0"/>
<name value="ExampleLibrary"/>
<title value="Example Library"/>
<status value="draft"/>
<experimental value="true"/>
<date value="2020-05-15T00:00:00.000+10:00"/>
<content>
<contentType value="text/x-sql"/>
<data value="U0VMRUNUIEN1c3RvbWVycy5DdXN0b21lck5hbWUsIE9yZGVycy5PcmRlcklEDQpGUk9NIEN1c3RvbWVycw0KTEVGVCBKT0lOIE9yZGVycw0KT04gQ3VzdG9tZXJzLkN1c3RvbWVySUQ9T3JkZXJzLkN1c3RvbWVySUQNCk9SREVSIEJZIEN1c3RvbWVycy5DdXN0b21lck5hbWU7DQo="/>
</content>
</Library>

View File

@ -13,6 +13,23 @@
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation"/> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<derivation value="constraint"/> <derivation value="constraint"/>
<differential> <differential>
<element id="Observation.basedOn">
<path value="Observation.basedOn"/>
<mustSupport value="true"/>
</element>
<element id="Observation.partOf">
<path value="Observation.partOf"/>
<type>
<code value="Reference"/>
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Procedure">
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support">
<valueBoolean value="true"/>
</extension>
</targetProfile>
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
</type>
<mustSupport value="true"/>
</element>
<element id="Observation.code"> <element id="Observation.code">
<path value="Observation.code"/> <path value="Observation.code"/>
<patternCodeableConcept> <patternCodeableConcept>
@ -22,6 +39,35 @@
</coding> </coding>
</patternCodeableConcept> </patternCodeableConcept>
</element> </element>
<element id="Observation.subject">
<path value="Observation.subject"/>
<type>
<code value="Reference"/>
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient">
<!-- this is an error - it is meaningless unless the element itself is must-support -->
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support">
<valueBoolean value="true"/>
</extension>
</targetProfile>
</type>
</element>
<element id="Observation.focus">
<path value="Observation.focus"/>
<mustSupport value="true"/>
</element>
<element id="Observation.value[x]">
<path value="Observation.value[x]"/>
<type>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support">
<valueBoolean value="true"/>
</extension>
<code value="Quantity"/>
</type>
<type>
<code value="CodeableConcept"/>
</type>
<mustSupport value="true"/>
</element>
<element id="Observation.component"> <element id="Observation.component">
<path value="Observation.component"/> <path value="Observation.component"/>
<slicing> <slicing>

View File

@ -1,325 +0,0 @@
<div>
<table class="grid dict">
{% if Library.id.exists() %}
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 25px;">{{Library.id}}</td>
</tr>
{% endif %}
{% if Library.url.exists() %}
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 25px;">{{Library.url}}</td>
</tr>
{% endif %}
{% if Library.version.exists() %}
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 25px;">{{Library.version}}</td>
</tr>
{% endif %}
{% for identifier in Library.identifier %}
<tr>
<th scope="row"><b>Identifier: </b></th>
<td style="padding-left: 25px;">
{% if identifier.type.exists() %}
<p style="margin-bottom: 5px;">
<b>type: </b> <span>{{identifier.type.value}}</span>
</p>
{% endif %}
{% if identifier.value.exists() %}
<p style="margin-bottom: 5px;">
<b>value: </b> <span>{{identifier.value}}</span>
</p>
{% endif %}
</td>
</tr>
{% endfor %}
{% if Library.name.exists() %}
<tr>
<th scope="row"><b>Name: </b></th>
<td style="padding-left: 25px;">{{Library.name}}</td>
</tr>
{% endif %}
{% if Library.title.exists() %}
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 25px;">{{Library.title}}</td>
</tr>
{% endif %}
{% if Library.subtitle.exists() %}
<tr>
<th scope="row"><b>Subtitle: </b></th>
<td style="padding-left: 25px;">{{Library.subtitle}}</td>
</tr>
{% endif %}
{% if Library.status.exists() %}
<tr>
<th scope="row"><b>Status: </b></th>
<td style="padding-left: 25px;">{{Library.status.value}}</td>
</tr>
{% endif %}
{% if Library.experimental.exists() %}
<tr>
<th scope="row"><b>Experimental: </b></th>
<td style="padding-left: 25px;">{{Library.experimental.value}}</td>
</tr>
{% endif %}
{% if Library.type.exists() %}
<tr>
<th scope="row"><b>Type: </b></th>
<td style="padding-left: 25px;">
{% if Library.type.coding.exists() %}
{% for coding in Library.type.coding %}
{% if coding.system.exists() %}
<p style="margin-bottom: 5px;">
<b>system: </b> <span>{{coding.system}}</span>
</p>
{% endif %}
{% if coding.code.exists() %}
<p style="margin-bottom: 5px;">
<b>code: </b> <span>{{coding.code}}</span>
</p>
{% endif %}
{% if coding.display.exists() %}
<p style="margin-bottom: 5px;">
<b>display: </b> <span>{{coding.display}}</span>
</p>
{% endif %}
{% endfor %}
{% endif %}
{% if Library.type.coding.exists().not and Library.type.text.exists() %}
{{Library.type.text}}
{% endif %}
</td>
</tr>
{% endif %}
{% if Library.subject.exists() %}
<tr>
<th scope="row"><b>Subject: </b></th>
{%if Library.subject is CodeableConcept %}
<td style="padding-left: 25px;">
{% if Library.subject.coding.exists() %}
{% for coding in Library.subject.coding %}
{% if coding.system.exists() %}
<p style="margin-bottom: 5px;">
<b>system: </b> <span>{{coding.system}}</span>
</p>
{% endif %}
{% if coding.code.exists() %}
<p style="margin-bottom: 5px;">
<b>code: </b> <span>{{coding.code}}</span>
</p>
{% endif %}
{% if coding.display.exists() %}
<p style="margin-bottom: 5px;">
<b>display: </b> <span>{{coding.display}}</span>
</p>
{% endif %}
{% endfor %}
{% endif %}
{% if Library.subject.coding.exists().not and Library.subject.text.exists() %}
{{Library.subject.text}}
{% endif %}
</td>
{% endif %}
{% if Library.subject is Reference %}
<td style="padding-left: 25px;">
{% if Library.subject.reference.exists() %}
<p style="margin-bottom: 5px;">
<b>reference: </b> <span>{{Library.subject.reference}}</span>
</p>
{% endif %}
{% if Library.subject.type.exists() %}
<p style="margin-bottom: 5px;">
<b>type: </b> <span>{{Library.subject.type}}</span>
</p>
{% endif %}
{% if Library.subject.display.exists() %}
<p style="margin-bottom: 5px;">
<b>code: </b> <span>{{Library.subject.display}}</span>
</p>
{% endif %}
</td>
{% endif %}
</tr>
{% endif %}
{% if Library.date.exists() %}
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 25px;">{{Library.date}}</td>
</tr>
{% endif %}
{% if Library.publisher.exists() %}
<tr>
<th scope="row"><b>Publisher: </b></th>
<td style="padding-left: 25px;">{{Library.publisher}}</td>
</tr>
{% endif %}
{% if Library.description.exists() %}
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 25px;">{{Library.description}}</td>
</tr>
{% endif %}
{% if Library.useContext.exists() %}
<tr>
<th scope="row"><b>Use Context: </b></th>
<td style="padding-left: 25px;">
<table class="grid-dict">
<tr><th><b>code</b></th><th><b>value</b></th></tr>
{% for useContext in Library.useContext %}
<tr>
<td>{{useContext.code.code}}</td>
<td>{{(useContext.value as CodeableConcept).coding.first().code}}</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
{% endif %}
{% if Library.jurisdiction.exists() %}
<tr>
<th scope="row"><b>Jurisdiction: </b></th>
<td style="padding-left: 25px;">{{Library.jurisdiction.first().coding.first().code}}</td>
</tr>
{% endif %}
{% if Library.purpose.exists() %}
<tr>
<th scope="row"><b>Purpose: </b></th>
<td style="padding-left: 25px;">{{Library.purpose}}</td>
</tr>
{% endif %}
{% if Library.usage.exists() %}
<tr>
<th scope="row"><b>Usage: </b></th>
<td style="padding-left: 25px;">{{Library.usage}}</td>
</tr>
{% endif %}
{% if Library.copyright.exists() %}
<tr>
<th scope="row"><b>Copyright: </b></th>
<td style="padding-left: 25px;">{{Library.copyright}}</td>
</tr>
{% endif %}
{% if Library.approvalDate.exists() %}
<tr>
<th scope="row"><b>Approval Date: </b></th>
<td style="padding-left: 25px;">{{Library.approvalDate}}</td>
</tr>
{% endif %}
{% if Library.lastReviewDate.exists() %}
<tr>
<th scope="row"><b>Last Review Date: </b></th>
<td style="padding-left: 25px;">{{Library.lastReviewDate}}</td>
</tr>
{% endif %}
{% if Library.effectivePeriod.exists() %}
<tr>
<th scope="row"><b>Effective Period: </b></th>
<td style="padding-left: 25px;">{{Library.effectivePeriod.start}}..{{Library.effectivePeriod.end}}</td>
</tr>
{% endif %}
{% if Library.relatedArtifact.exists() %}
<tr>
<th scope="row"><b>Related Artifacts: </b></th>
<td style="padding-left: 25px;">
<table class="grid-dict">
<tr><th><b>Type</b></th><th><b>Resource</b></th></tr>
{% for artifact in Library.relatedArtifact %}
<tr><td>{{artifact.type.value}}</td><td>{{artifact.resource}}</td></tr>
{% endfor %}
</table>
</td>
</tr>
{% endif %}
{% if Library.parameter.exists() %}
<tr>
<th scope="row"><b>Parameters: </b></th>
<td style="padding-left: 25px;">
<table class="grid-dict">
<tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>
{% for param in Library.parameter %}
<tr><th>{{param.name}}</th><th>{{param.type}}</th><th>{{param.min}}</th><th>{{param.max}}</th><th>{{param.use}}</th></tr>
{% endfor %}
</table>
</td>
</tr>
{% endif %}
{% if Library.dataRequirement.exists() %}
<tr>
<th scope="row"><b>Data Requirements:</b></th>
<td style="padding-left: 25px;">
<table class="grid-dict">
<tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>MS</b></th><th><b>Code Filter</b></th></tr>
{% for requirement in Library.dataRequirement %}
<tr>
<th>{{requirement.type.value}}</th>
<th>{% for profile in requirement.profile %}{{profile.value}}{% endfor %}</th>
<th>{% for support in requirement.mustSupport %}{{mustSupport}};{% endfor %}</th>
<th>
{% for cfilter in requirement.codeFilter %}
<p style="margin-bottom: 5px;">
<b>code filter: </b>
{% if cfilter.path.exists() or cfilter.valueSet.exists() or cfilter.code.exists() %}
<br/>
{% endif %}
{% if cfilter.path.exists() %}
<span style="padding-left: 25px;">
<b>path: </b><span>{{cfilter.path}}</span>
</span>
{% if cfilter.valueSet.exists() or cfilter.code.exists() %}
<br/>
{% endif %}
{% endif %}
{% if cfilter.valueSet.exists() %}
<span style="padding-left: 25px;">
<b>value set: </b><span>{{cfilter.valueSet.value}}</span>
</span>
{% endif %}
{% for coding in cfilter.code %}
{% if coding.system.exists() %}
<p style="margin-bottom: 5px;">
<b>system: </b> <span>{{coding.system}}</span>
</p>
{% endif %}
{% if coding.code.exists() %}
<p style="margin-bottom: 5px;">
<b>code: </b> <span>{{coding.code}}</span>
</p>
{% endif %}
{% if coding.display.exists() %}
<p style="margin-bottom: 5px;">
<b>display: </b> <span>{{coding.display}}</span>
</p>
{% endif %}
{% endfor %}
</p>
{% endfor %}
</th>
</tr>
{% endfor %}
</table>
</td>
</tr>
{% endif %}
{% for c in Library.content %}
{% if c.contentType = 'text/cql' %}
<tr>
<table>
<tr><th><a id="cql-content"><b>Content: </b></a> {{c.contentType}}</th></tr>
<tr><td><pre><code>{{c.data.decode('base64').escape('html')}}</code></pre></td></tr>
</table>
</tr>
{% endif %}
{% if c.contentType != 'text/cql' %}
<tr>
<table>
<tr><th><b>Content: </b> {{c.contentType}}</th></tr>
<tr><td><pre><code>{{'Encoded data (' + c.data.length().toString() + ' characters)'}}</code></pre></td></tr>
</table>
</tr>
{% endif %}
{% endfor %}
</table>
</div>