Add various test cases

This commit is contained in:
Grahame Grieve 2020-09-25 03:23:14 +10:00
parent dbbed53f65
commit 44596ce112
6 changed files with 97 additions and 325 deletions

View File

@ -1,4 +1,10 @@
<?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">
<id value="example"/>
<meta>

View File

@ -38,6 +38,11 @@
<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') -->
<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>
<!-- 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... -->
@ -47,6 +52,18 @@
</reference>
<description value="Overriding description because we can"/>
</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>
<reference>
<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"/>
<derivation value="constraint"/>
<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">
<path value="Observation.code"/>
<patternCodeableConcept>
@ -22,6 +39,35 @@
</coding>
</patternCodeableConcept>
</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">
<path value="Observation.component"/>
<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>