Skip to content

Commit

Permalink
Merge pull request #260 from MeasureAuthoringTool/MAT-7895_LiquidTemp…
Browse files Browse the repository at this point in the history
…lateUpgrade

MAT-7895: Upgrading Liquid Templates to version 0.4.6
  • Loading branch information
gregory-akins authored Nov 14, 2024
2 parents 2265895 + d179ce2 commit ee68ece
Show file tree
Hide file tree
Showing 30 changed files with 465 additions and 1,027 deletions.
1,035 changes: 8 additions & 1,027 deletions src/main/resources/templates/Measure.liquid

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions src/main/resources/templates/datarequirement.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{% for dataRequirement in include.dataRequirement.distinct() %}
<tr>
<th scope="row" class="row-header">{{include.header}}</th>
<td class="content-container">
<em>Type</em>: {{dataRequirement.type}}
<br />
{% if dataRequirement.profile.exists() %}
<em>Profile(s)</em>:
{% for profile in dataRequirement.profile %}
{{profile}}
<br />
{% endfor %}
{% endif %}
{% if dataRequirement.mustSupport.exists() %}
<em>Must Support Elements</em>: {{dataRequirement.mustSupport.join(', ')}}
<br />
{% endif %}
{% if dataRequirement.codeFilter.exists() %}
<em>Code Filter(s)</em>:
<br />
{% for codeFilter in dataRequirement.codeFilter %}
{% if codeFilter.path.exists() %}
<span class="tab-one"><em>Path</em>: {{codeFilter.path}}</span>
<br />
{% endif %}
{% if codeFilter.searchParam.exists() %}
<span class="tab-one"><em>Search Parameter</em>: {{codeFilter.searchParam}}</span>
<br />
{% endif %}
{% if codeFilter.valueSet.exists() %}
<span class="tab-one"><em>ValueSet</em>:</span> {{codeFilter.valueSet}}
<br />
{% endif %}
{% if codeFilter.code.exists() %}
<span class="tab-one"><em>Code</em>: {{codeFilter.code.join(', ')}}</span>
<br />
{% endif %}
{% endfor %}
{% endif %}
</td>
</tr>
{% endfor %}
3 changes: 3 additions & 0 deletions src/main/resources/templates/default-list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{% for item in include.content %}
{%include row-new.html header=include.header content=item %}
{% endfor %}
3 changes: 3 additions & 0 deletions src/main/resources/templates/default.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{% if include.content.exists() %}
{%include row-new.html header=include.header content=include.content %}
{% endif %}
14 changes: 14 additions & 0 deletions src/main/resources/templates/direct-reference-code.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{% for directReferenceCode in include.contained.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode' or url = 'http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode') %}
<tr>
<th scope="row" class="row-header">Direct Reference Code</th>
<td class="content-container">
{% if directReferenceCode.value.display.exists() %}
<em>Display</em>: {{directReferenceCode.value.display}}
<br />
{% endif %}
<em>Code</em>: {{directReferenceCode.value.code}}
<br />
<em>System</em>: <tt>{{directReferenceCode.value.system.toString()}}</tt>
</td>
</tr>
{% endfor %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{% for cqfmComment in include.resource.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment') %}
{% if cqfmComment.extension.where(url = 'text').exists() %}
{%include default.html header='Comment' content=cqfmComment.extension.where(url = 'text').value %}
{% endif %}
{% endfor %}
{% for cqfComment in include.resource.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/cqf-artifactComment') %}
{% if cqfComment.extension.where(url = 'text').exists() %}
{%include default.html header='Comment' content=cqfComment.extension.where(url = 'text').value %}
{% endif %}
{% endfor %}
{% for cqfKnowledgeCap in include.resource.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability') %}
{%include default.html header='Knowledge Capability' content=cqfKnowledgeCap.value %}
{% endfor %}
{% for cpgKnowledgeCap in include.resource.extension.where(url = 'http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability') %}
{%include default.html header='Knowledge Capability' content=cpgKnowledgeCap.value %}
{% endfor %}
{% for cpgKnowledgeRepLevel in include.resource.extension.where(url = 'http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeRepresentationLevel') %}
{%include default.html header='Knowledge Representation Level' content=cpgKnowledgeRepLevel.value %}
{% endfor %}
{% for cqfKnowledgeRepLevel in include.resource.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/cqf-knowledgeRepresentationLevel') %}
{%include default.html header='Knowledge Representation Level' content=cqfKnowledgeRepLevel.value %}
{% endfor %}
22 changes: 22 additions & 0 deletions src/main/resources/templates/knowledge-artifact-metadata.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{%include section-header.html header='Knowledge Artifact Metadata' %}
{%include default.html header='Name (machine-readable)' content=Resource.name %}
{%include default.html header='Title (human-readable)' content=Resource.title %}
{%include default.html header='Subtitle' content=Resource.subtitle %}
{%include default.html header='Status' content=Resource.status %}
{%include default.html header='Experimental' content=Resource.experimental %}
{%include default.html header='Description' content=Resource.description %}
{%include default.html header='Purpose' content=Resource.purpose %}
{%include default.html header='Clinical Usage' content=Resource.usage %}
{%include default.html header='Approval Date' content=Resource.approvalDate %}
{%include period.html header='Effective Period' period=Resource.effectivePeriod %}
{%include default-list.html header='Use Context' content=Resource.useContext %}
{%include default-list.html header='Topic' content=Resource.topic %}
{%include default-list.html header='Measure Developer' content=Resource.author %}
{%include default-list.html header='Measure Editor' content=Resource.editor %}
{%include default-list.html header='Measure Reviewer' content=Resource.reviewer %}
{%include default-list.html header='Measure Endorser' content=Resource.endorser %}
{%include default.html header='Measure Steward' content=Resource.publisher %}
{%include default-list.html header='Steward Contact Details' content=Resource.contact %}
{%include default.html header='Copyright' content=Resource.copyright %}
{%include related-artifact.html relatedArtifact=Resource.relatedArtifact %}
{%include knowledge-artifact-metadata-extensions.html resource=Resource %}
21 changes: 21 additions & 0 deletions src/main/resources/templates/logic-definition.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{% for extension in include.contained.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition' or url = 'http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition') %}
<tr>
<th scope="row" class="row-header" rowspan="2">
{% if extension.extension.where(url = 'name').exists() and extension.extension.where(url = 'libraryName') %}
{% assign logicDefUrl = extension.extension.where(url = 'libraryName').value.lower().replace(' ', '-') + '-' + extension.extension.where(url = 'name').value.lower().replace(' ', '-') %}
<a name="{{logicDefUrl}}"> </a>
{% endif %}
Logic Definition
</th>
{% for lNameExtension in extension.extension.where(url = 'libraryName') %}
<td class="content-container"><em>Library Name:</em> {{lNameExtension.value}}</td>
{% endfor %}
</tr>
<tr>
{% for statementExtension in extension.extension.where(url = 'statement') %}
<td>
<pre class="content-container highlight language-cql" style="border: none;"><code class="language-cql">{{statementExtension.value}}</code></pre>
</td>
{% endfor %}
</tr>
{% endfor %}
20 changes: 20 additions & 0 deletions src/main/resources/templates/measure-identifier.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{% for identifier in include.measure.identifier.where(type.coding.where(code = 'short-name').exists()) %}
{%include default.html header='Short Name Identifier' content=identifier.value %}
{% endfor %}
{% for identifier in include.measure.identifier.where(type.coding.where(code = 'version-independent').exists()) %}
{%include default.html header='Version Independent Identifier' content=identifier.value %}
{% endfor %}
{% for identifier in include.measure.identifier.where(type.coding.where(code = 'version-specific').exists()) %}
{%include default.html header='Version Specific Identifier' content=identifier.value %}
{% endfor %}
{% for identifier in include.measure.identifier.where(type.coding.where(code = 'publisher').exists()) %}
{% if identifier.assigner.display.exists() %}
{%assign pheader = 'Publisher (' + identifier.assigner.display.value + ') Identifier' %}
{%include default.html header=pheader content=identifier.value %}
{% else %}
{%include default.html header='Publisher Identifier' content=identifier.value %}
{% endif %}
{% endfor %}
{% for identifier in include.measure.identifier.where(type.coding.where(code != 'short-name' and code != 'version-independent' and code != 'version-specific' and code != 'publisher').exists()) %}
{%include default.html header='Identifier' content=identifier %}
{% endfor %}
24 changes: 24 additions & 0 deletions src/main/resources/templates/measure-logic.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% if include.measure.library.exists() %}
{%include section-header.html header='Measure Logic' %}
{%include default.html header='Primary Library' content=include.measure.library %}
{% endif %}

{% if include.measure.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements' or url = 'http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements').exists() %}
{% for contained in include.measure.contained.where(id.contains('effective-data-requirements')) %}
{%include related-artifact.html relatedArtifact=contained.relatedArtifact %}
{%include direct-reference-code.html contained=contained %}
{% for parameter in contained.parameter %}
{%include parameter.html header='Parameter' parameter=parameter %}
{% endfor %}
{% if contained.dataRequirement.exists() %}
<tr>
<th class="section-header" colspan="2" scope="row"><a name="effective-data-requirements"> </a>Measure Logic Data Requirements</th>
</tr>
{% endif %}
{%include datarequirement.html header='Data Requirement' dataRequirement=contained.dataRequirement %}
{% if contained.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition' or url = 'http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition').exists() %}
{%include section-header.html header='Measure Logic Definitions' %}
{% endif %}
{%include logic-definition.html header='Data Requirement' contained=contained %}
{% endfor %}
{% endif %}
11 changes: 11 additions & 0 deletions src/main/resources/templates/measure-metadata-extensions.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% for supplementalDataGuidance in include.measure.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-supplementalDataGuidance') %}
{% if supplementalDataGuidance.extension.where(url = 'guidance').exists() %}
{%include default.html header='Supplemental Data Guidance' content=supplementalDataGuidance.extension.where(url = 'guidance').value %}
{% endif %}
{% endfor %}
{% for populationBasis in include.measure.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis') %}
{%include default.html header='Population Basis' content=populationBasis.value %}
{% endfor %}
{% for scoringUnit in include.measure.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit') %}
{%include default.html header='Scoring Unit' content=scoringUnit.value %}
{% endfor %}
19 changes: 19 additions & 0 deletions src/main/resources/templates/measure-metadata.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{% if include.measure.identifier.exists() or include.measure.version.exists() or include.measure.scoring.exists() or
include.measure.compositeScoring.exists() or include.measure.type.exists() or include.measure.riskAdjustment.exists() or
include.measure.rateAggregation.exists() or include.measure.rationale.exists() or include.measure.clinicalRecommendationStatement.exists() or
include.measure.improvementNotation.exists() or include.measure.definition.exists() or include.measure.guidance.exists() %}
{%include section-header.html header='Measure Metadata' %}
{%include measure-identifier.html measure=include.measure %}
{%include default.html header='Version Number' content=include.measure.version %}
{%include default.html header='Measure Scoring' content=include.measure.scoring %}
{%include default.html header='Measure Composite Scoring' content=include.measure.compositeScoring %}
{%include default-list.html header='Measure Type' content=include.measure.type %}
{%include default.html header='Risk Adjustment' content=include.measure.riskAdjustment %}
{%include default.html header='Rate Aggregation' content=include.measure.rateAggregation %}
{%include default.html header='Rationale' content=include.measure.rationale %}
{%include default.html header='Clinical Recommendation Statement' content=include.measure.clinicalRecommendationStatement %}
{%include default.html header='Improvement Notation' content=include.measure.improvementNotation %}
{%include default.html header='Definition' content=include.measure.definition %}
{%include default.html header='Guidance' content=include.measure.guidance %}
{%include measure-metadata-extensions.html measure=include.measure %}
{% endif %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{% for populationBasis in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis') %}
{%include default.html header='Population Basis' content=populationBasis.value %}
{% endfor %}
{% for scoring in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring') %}
{%include default.html header='Scoring' content=scoring.value %}
{% endfor %}
{% for scoringUnit in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit') %}
{%include default.html header='Scoring Unit' content=scoringUnit.value %}
{% endfor %}
{% for scoringPrecision in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringPrecision') %}
{%include default.html header='Scoring Precision' content=scoringPrecision.value %}
{% endfor %}
{% for compositeScoring in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring') %}
{%include default.html header='Composite Scoring' content=compositeScoring.value %}
{% endfor %}
{% if include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists() %}
{%include related-artifact.html relatedArtifact=include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').value %}
{% endif %}
{% if include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type').exists() %}
{%include default-list.html header='Type' content=include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type').value %}
{% endif %}
{% for riskAdjustment in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment') %}
{%include default.html header='Risk Adjustment' content=riskAdjustment.value %}
{% endfor %}
{% for rateAggregation in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation') %}
{%include default.html header='Rate Aggregation' content=rateAggregation.value %}
{% endfor %}
{% for improvementNotation in include.group.extension.where(url = 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation') %}
{%include default.html header='Improvement Notation' content=improvementNotation.value %}
{% endfor %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{% for population in include.group.population %}
{% if population.code.exists() and population.code.coding.exists() %}
<tr>
{% if population.code.coding.first().display.exists() %}
{%include row-header.html header=population.code.coding.first().display %}
{% else %}
{% if population.code.coding.where(code = 'initial-population') or population.code.coding.where(code = 'numerator') or population.code.coding.where(code = 'numerator-exclusion') or population.code.coding.where(code = 'denominator') or population.code.coding.where(code = 'denominator-exclusion') or population.code.coding.where(code = 'denominator-exception') or population.code.coding.where(code = 'measure-population') or population.code.coding.where(code = 'measure-population-exclusion') or population.code.coding.where(code = 'measure-observation') %}
{% if population.code.coding.where(code = 'initial-population') %}
{%include row-header.html header='Initial Population' %}
{% endif %}
{% if population.code.coding.where(code = 'numerator') %}
{%include row-header.html header='Numerator' %}
{% endif %}
{% if population.code.coding.where(code = 'numerator-exclusion') %}
{%include row-header.html header='Numerator Exclusion' %}
{% endif %}
{% if population.code.coding.where(code = 'denominator') %}
{%include row-header.html header='Denominator' %}
{% endif %}
{% if population.code.coding.where(code = 'denominator-exclusion') %}
{%include row-header.html header='Denominator Exclusion' %}
{% endif %}
{% if population.code.coding.where(code = 'denominator-exception') %}
{%include row-header.html header='Denominator Exception' %}
{% endif %}
{% if population.code.coding.where(code = 'measure-population') %}
{%include row-header.html header='Measure Population' %}
{% endif %}
{% if population.code.coding.where(code = 'measure-population-exclusion') %}
{%include row-header.html header='Measure Population Exclusion' %}
{% endif %}
{% if population.code.coding.where(code = 'measure-observation') %}
{%include row-header.html header='Measure Observation' %}
{% endif %}
{% else %}
{%include row-header.html header='Unknown Population Type' %}
{% endif %}
{% endif %}
<td class="content-container">
{% if population.id.exists() %}
<em>ID</em>: {{population.id}}
<br />
{% endif %}
{% if population.description.exists() %}
<em>Description</em>:
<p class="tab-one" style="white-space: pre-line">{{population.description}}</p>
{% else %}
<em>Description</em>: No description provided
{% endif %}
{% if population.criteria.exists() %}
{% if population.criteria.language.startsWith('text/cql') and population.criteria.expression.exists() and include.library.exists() %}
{% assign logicDefAnchor = '#' + include.library.first().replaceMatches('.*/Library/', '').lower().replace(' ', '-') + '-' + population.criteria.expression.lower().replace(' ', '-') %}
<em>Logic Definition</em>: <a href="{{logicDefAnchor}}">{{population.criteria.expression}}</a>
{% endif %}
{% endif %}
</td>
</tr>
{% endif %}
{% endfor %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{% for stratifier in include.group.stratifier %}
<tr>
{%include row-header.html header='Stratifier' %}
<td class="content-container">
{% if stratifier.id.exists() %}
<em>ID</em>: {{stratifier.id}}
{% if stratifier.code.exists() or stratifier.description.exists() %}
<br />
{% endif %}
{% endif %}
{% if stratifier.code.exists() %}
{% if stratifier.code.coding.first().display.exists() %}
<em>Code</em>: {{stratifier.code.coding.first().display}}
{% else %}
<em>Code</em>: {{stratifier.code}}
{% endif %}
{% if stratifier.description.exists() %}
<br />
{% endif %}
{% endif %}
{% if stratifier.description.exists() %}
<em>Description</em>: {{stratifier.description}}
{% endif %}
</td>
</tr>
{% endfor %}
Loading

0 comments on commit ee68ece

Please sign in to comment.