Merge pull request #26 from FHIR/library-liquid-template
Library liquid template
This commit is contained in:
commit
9a0158a326
17
input/cql/cql-options.json
Normal file
17
input/cql/cql-options.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"options":[
|
||||||
|
"EnableAnnotations",
|
||||||
|
"EnableLocators",
|
||||||
|
"DisableListDemotion",
|
||||||
|
"DisableListPromotion"
|
||||||
|
|
||||||
|
],
|
||||||
|
"formats":[
|
||||||
|
"XML",
|
||||||
|
"JXSON"
|
||||||
|
],
|
||||||
|
"validateUnits":true,
|
||||||
|
"verifyOnly":false,
|
||||||
|
"errorLevel":"Info",
|
||||||
|
"signatureLevel":"None"
|
||||||
|
}
|
||||||
@ -1,14 +1,24 @@
|
|||||||
{
|
{
|
||||||
"resourceType" : "Library",
|
"resourceType" : "Library",
|
||||||
|
"id": "example",
|
||||||
"url" : "http://somewhere.org/fhir/uv/myig/Library/example",
|
"url" : "http://somewhere.org/fhir/uv/myig/Library/example",
|
||||||
"version" : "1.0.0",
|
"version" : "1.0.0",
|
||||||
|
"name": "example",
|
||||||
|
"title": "Example CQL Library",
|
||||||
"status" : "draft",
|
"status" : "draft",
|
||||||
|
"experimental": true,
|
||||||
"type" : {
|
"type" : {
|
||||||
"coding" : [{
|
"coding" : [{
|
||||||
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
|
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
|
||||||
"code" : "logic-library"
|
"code" : "logic-library"
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
"subject": {
|
||||||
|
"coding": [{
|
||||||
|
"system": "hl7.org/fhir/resource-types",
|
||||||
|
"code": "Patient"
|
||||||
|
}]
|
||||||
|
},
|
||||||
"content" : [{
|
"content" : [{
|
||||||
"id" : "ig-loader-example.cql"
|
"id" : "ig-loader-example.cql"
|
||||||
}]
|
}]
|
||||||
|
|||||||
@ -126,6 +126,10 @@
|
|||||||
<code value="path-binary"/>
|
<code value="path-binary"/>
|
||||||
<value value="input\cql"/>
|
<value value="input\cql"/>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
<parameter>
|
||||||
|
<code value="path-liquid"/>
|
||||||
|
<value value="templates\liquid"/>
|
||||||
|
</parameter>
|
||||||
<!-- Uncomment one or more of these if you want to limit which syntaxes are supported or want to disable the display of mappings
|
<!-- Uncomment one or more of these if you want to limit which syntaxes are supported or want to disable the display of mappings
|
||||||
<parameter>
|
<parameter>
|
||||||
<code value="excludexml"/>
|
<code value="excludexml"/>
|
||||||
|
|||||||
308
templates/liquid/Library.liquid
Normal file
308
templates/liquid/Library.liquid
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
<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>Type: </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() %}
|
||||||
|
<br/>
|
||||||
|
{% endif %}
|
||||||
|
{% if cfilter.path.exists() %}
|
||||||
|
<span style="padding-left: 25px;">
|
||||||
|
<b>path: </b><span>{{cfilter.path}}</span>
|
||||||
|
</span>
|
||||||
|
{% if cfilter.valueSet.exists() %}
|
||||||
|
<br/>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% if cfilter.valueSet.exists() %}
|
||||||
|
<span style="padding-left: 25px;">
|
||||||
|
<b>value set: </b><span>{{cfilter.valueSet.value}}</span>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
{% for c in Library.content %}
|
||||||
|
{% if c.contentType = 'text/cql' %}
|
||||||
|
<tr>
|
||||||
|
<table>
|
||||||
|
<tr><th><b>Content: </b> {{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>
|
||||||
Loading…
Reference in New Issue
Block a user