Healthy Route Implementation Guide
0.2.0 - ci-build
Healthy Route Implementation Guide, published by Savannah Informatics. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/savannahghi/healthy-route-ig/ and changes regularly. See the Directory of published versions
| Draft as of 2026-11-12 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="HRExtractVitals"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap HRExtractVitals</b></p><a name="HRExtractVitals"> </a><a name="hcHRExtractVitals"> </a><pre class="fml">
<span style="color: #cc00cc">/// <b>url</b> = </span><span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureMap/HRExtractVitals'</span>
<span style="color: #cc00cc">/// <b>version</b> = </span><span style="color: blue">'0.2.0'</span>
<span style="color: #cc00cc">/// <b>name</b> = </span><span style="color: blue">'HRExtractVitals'</span>
<span style="color: #cc00cc">/// <b>status</b> = </span><span style="color: blue">'draft'</span>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R5/questionnaireresponse.html" title="QuestionnaireResponse">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style="color: navy">" </span><b>alias </b>QR <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R5/bundle.html" title="Bundle">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style="color: navy">" </span><b>alias </b>Bundle <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R5/observation.html" title="Observation">http://hl7.org/fhir/StructureDefinition/Observation</a><span style="color: navy">" </span><b>alias </b>Observation <b>as </b><b>target</b>
<b>group </b>HRExtractVitals<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QR, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>bundle.type = <span style="color: blue">'transaction'</span> <i>"type"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">g</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-1'<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">obs</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Reading<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">g</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"reading"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">si</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-1.8480-6'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> si.answer first<b> as </b><span style="color: maroon">sa</span><b> then</b><span style="color: navy"> {
</span> sa.value<b> as </b><span style="color: maroon">sv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Systolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">sv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"systolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"systolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">di</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-1.8462-4'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> di.answer first<b> as </b><span style="color: maroon">da</span><b> then</b><span style="color: navy"> {
</span> da.value<b> as </b><span style="color: maroon">dv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Diastolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">dv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"diastolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"diastolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">ti</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-1.time'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> ti.answer first<b> as </b><span style="color: maroon">ta</span><b> then</b><span style="color: navy"> {
</span> ta.value<b> as </b><span style="color: maroon">tv</span><span style="color: navy"><b> -> </b></span>obs.effective = <span style="color: maroon">tv</span> <i>"effective"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"timeItem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.extension<b> as </b><span style="color: maroon">x</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>x.url = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-sequence'</span> <i>"url"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>x.value = <span style="color: blue">1</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"sequence"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reading1"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">g</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-2'<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">obs</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Reading<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">g</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"reading"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">si</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-2.8480-6'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> si.answer first<b> as </b><span style="color: maroon">sa</span><b> then</b><span style="color: navy"> {
</span> sa.value<b> as </b><span style="color: maroon">sv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Systolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">sv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"systolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"systolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">di</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-2.8462-4'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> di.answer first<b> as </b><span style="color: maroon">da</span><b> then</b><span style="color: navy"> {
</span> da.value<b> as </b><span style="color: maroon">dv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Diastolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">dv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"diastolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"diastolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">ti</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-2.time'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> ti.answer first<b> as </b><span style="color: maroon">ta</span><b> then</b><span style="color: navy"> {
</span> ta.value<b> as </b><span style="color: maroon">tv</span><span style="color: navy"><b> -> </b></span>obs.effective = <span style="color: maroon">tv</span> <i>"effective"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"timeItem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.extension<b> as </b><span style="color: maroon">x</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>x.url = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-sequence'</span> <i>"url"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>x.value = <span style="color: blue">2</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"sequence"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">pi</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-2.bp-position'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> pi.answer first<b> as </b><span style="color: maroon">pa</span><b> then</b><span style="color: navy"> {
</span> pa.value<b> as </b><span style="color: maroon">pv</span><span style="color: navy"><b> -> </b></span>obs.extension<b> as </b><span style="color: maroon">x</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>x.url = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-position'</span> <i>"url"</i><span style="color: navy">;</span>
pv<span style="color: navy"><b> -> </b></span> x.value = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">concept</span><span style="color: navy">, </span> concept.coding = <span style="color: maroon">pv</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"extension"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"position"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reading2"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">g</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3'<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">obs</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Reading<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">g</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"reading"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">si</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3.8480-6'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> si.answer first<b> as </b><span style="color: maroon">sa</span><b> then</b><span style="color: navy"> {
</span> sa.value<b> as </b><span style="color: maroon">sv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Systolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">sv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"systolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"systolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">di</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3.8462-4'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> di.answer first<b> as </b><span style="color: maroon">da</span><b> then</b><span style="color: navy"> {
</span> da.value<b> as </b><span style="color: maroon">dv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Diastolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">dv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"diastolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"diastolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">ti</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3.time'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> ti.answer first<b> as </b><span style="color: maroon">ta</span><b> then</b><span style="color: navy"> {
</span> ta.value<b> as </b><span style="color: maroon">tv</span><span style="color: navy"><b> -> </b></span>obs.effective = <span style="color: maroon">tv</span> <i>"effective"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"timeItem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.extension<b> as </b><span style="color: maroon">x</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>x.url = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-sequence'</span> <i>"url"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>x.value = <span style="color: blue">3</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"sequence"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reading3"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">it</span><b> where </b><span style="color: navy">(</span>linkId = 'retinal-capture-time'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> it.answer first<b> as </b><span style="color: maroon">a</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">obs</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Shared<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">it</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"base"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.meta<b> as </b><span style="color: maroon">m</span><span style="color: navy">, </span> m.profile = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-observation'</span> <i>"profile"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.category = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"categorySystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'procedure'</span> <i>"categoryCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Procedure'</span> <i>"categoryDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"categoryCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"category"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/CodeSystem/hr-measurement'</span> <i>"codeSystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'retinal-capture-time'</span> <i>"codeCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Time of retinal capture'</span> <i>"codeDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"code"</i><span style="color: navy">;</span>
a.value<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>obs.effective = <span style="color: maroon">v</span> <i>"effective"</i><span style="color: navy">;</span>
a.value<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>obs.value = <span style="color: maroon">v</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"obs"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"captureTime"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>evaluate<span style="color: navy">(</span>qr<span style="color: navy">, </span>id.replaceMatches('/_history/.*$', '').replaceMatches('^.*/', '')<span style="color: navy">)</span><b> as </b><span style="color: maroon">qid</span><b> then</b><span style="color: navy"> {
</span> qr.item<b> as </b><span style="color: maroon">g</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-mean'<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">obs</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Reading<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">g</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"reading"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Derived<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"derivedCategory"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">si</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-mean.8480-6'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> si.answer first<b> as </b><span style="color: maroon">sa</span><b> then</b><span style="color: navy"> {
</span> sa.value<b> as </b><span style="color: maroon">sv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Systolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">sv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"systolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"systolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">di</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-mean.8462-4'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> di.answer first<b> as </b><span style="color: maroon">da</span><b> then</b><span style="color: navy"> {
</span> da.value<b> as </b><span style="color: maroon">dv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Diastolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">dv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"diastolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"diastolicItem"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">r3</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> r3.item<b> as </b><span style="color: maroon">ti</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3.time'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> ti.answer first<b> as </b><span style="color: maroon">ta</span><b> then</b><span style="color: navy"> {
</span> ta.value<b> as </b><span style="color: maroon">tv</span><span style="color: navy"><b> -> </b></span>obs.effective = <span style="color: maroon">tv</span> <i>"effective"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"time"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reading3"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.method = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">m</span><span style="color: navy">, </span> m.text = <span style="color: blue">'Mean of readings 2 and 3'</span> <i>"method"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.derivedFrom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">r</span><span style="color: navy">, </span> r.reference = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-bp-reading-2'</span><span style="color: navy">)</span> <i>"reading2Ref"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.derivedFrom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">r</span><span style="color: navy">, </span> r.reference = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-bp-reading-3'</span><span style="color: navy">)</span> <i>"reading3Ref"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"mean"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">g</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-mean-all'<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">obs</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Reading<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">g</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"reading"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Derived<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"derivedCategory"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">si</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-mean-all.8480-6'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> si.answer first<b> as </b><span style="color: maroon">sa</span><b> then</b><span style="color: navy"> {
</span> sa.value<b> as </b><span style="color: maroon">sv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Systolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">sv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"systolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"systolicItem"</i><span style="color: navy">;</span>
g.item<b> as </b><span style="color: maroon">di</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-mean-all.8462-4'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> di.answer first<b> as </b><span style="color: maroon">da</span><b> then</b><span style="color: navy"> {
</span> da.value<b> as </b><span style="color: maroon">dv</span><span style="color: navy"><b> -> </b></span>obs<b> then </b>Diastolic<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">dv</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">)</span> <i>"diastolic"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"diastolicItem"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">r3</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> r3.item<b> as </b><span style="color: maroon">ti</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-reading-3.time'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> ti.answer first<b> as </b><span style="color: maroon">ta</span><b> then</b><span style="color: navy"> {
</span> ta.value<b> as </b><span style="color: maroon">tv</span><span style="color: navy"><b> -> </b></span>obs.effective = <span style="color: maroon">tv</span> <i>"effective"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"time"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reading3"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.method = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">m</span><span style="color: navy">, </span> m.text = <span style="color: blue">'Mean of readings 1, 2 and 3'</span> <i>"method"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.derivedFrom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">r</span><span style="color: navy">, </span> r.reference = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-bp-reading-1'</span><span style="color: navy">)</span> <i>"reading1Ref"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.derivedFrom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">r</span><span style="color: navy">, </span> r.reference = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-bp-reading-2'</span><span style="color: navy">)</span> <i>"reading2Ref"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.derivedFrom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">r</span><span style="color: navy">, </span> r.reference = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-bp-reading-3'</span><span style="color: navy">)</span> <i>"reading3Ref"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"meanAll"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"derived"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">The category a value worked out on this form carries beside its FHIR one.</span>
<b>group </b>Derived<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QR, <b>target</b> <span style="color: maroon">obs</span><span style="color: navy"> : </span>Observation<span style="color: navy">)</span><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs.category = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/CodeSystem/hr-observation-category'</span> <i>"derivedSystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'derived'</span> <i>"derivedCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Derived'</span> <i>"derivedDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"derivedCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"category"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">One reading on the core blood pressure profile: the panel code, the monitor</span>
<span style="color: navy">// </span><span style="color: green">as a component, and the shared identity. The group item's linkId names it.</span>
<b>group </b>Reading<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QR, <b>source</b> <span style="color: maroon">g</span>, <b>target</b> <span style="color: maroon">obs</span><span style="color: navy"> : </span>Observation, <b>target</b> <span style="color: maroon">e</span><span style="color: navy">)</span><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>obs<b> then </b>Shared<span style="color: navy">(</span><span style="color: maroon">qr</span><span style="color: navy">, </span><span style="color: maroon">g</span><span style="color: navy">, </span><span style="color: maroon">obs</span><span style="color: navy">, </span><span style="color: maroon">e</span><span style="color: navy">)</span> <i>"base"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span> obs.meta<b> as </b><span style="color: maroon">m</span><span style="color: navy">, </span> m.profile = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-blood-pressure'</span> <i>"profile"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.category = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"categorySystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'vital-signs'</span> <i>"categoryCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Vital Signs'</span> <i>"categoryDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"categoryCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"category"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'http://loinc.org'</span> <i>"codeSystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'85354-9'</span> <i>"codeCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Blood pressure panel with all children optional'</span> <i>"codeDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"code"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">d</span><b> where </b><span style="color: navy">(</span>linkId = 'bp-device'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> d.answer first<b> as </b><span style="color: maroon">da</span><b> then</b><span style="color: navy"> {
</span> da.value<b> as </b><span style="color: maroon">dv</span><span style="color: navy"><b> -> </b></span>obs.extension<b> as </b><span style="color: maroon">x</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>x.url = <span style="color: blue">'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-device'</span> <i>"url"</i><span style="color: navy">;</span>
dv<span style="color: navy"><b> -> </b></span> x.value = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">concept</span><span style="color: navy">, </span> concept.coding = <span style="color: maroon">dv</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"extension"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"device"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>Systolic<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QR, <b>source</b> <span style="color: maroon">sv</span>, <b>target</b> <span style="color: maroon">obs</span><span style="color: navy"> : </span>Observation<span style="color: navy">)</span><span style="color: navy"> {
</span> sv<span style="color: navy"><b> -> </b></span>obs.component<b> as </b><span style="color: maroon">comp</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>comp.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'http://loinc.org'</span> <i>"codeSystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'8480-6'</span> <i>"codeCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Systolic blood pressure'</span> <i>"codeDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"code"</i><span style="color: navy">;</span>
sv<span style="color: navy"><b> -> </b></span>comp.value = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Quantity'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">q</span><b> then</b><span style="color: navy"> {
</span> sv<span style="color: navy"><b> -> </b></span>q.value = <span style="color: maroon">sv</span> <i>"value"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>q.system = <span style="color: blue">'http://unitsofmeasure.org'</span> <i>"system"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>q.code = <span style="color: blue">'mm[Hg]'</span> <i>"unitCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>q.unit = <span style="color: blue">'mmHg'</span> <i>"unit"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"quantity"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"component"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>Diastolic<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QR, <b>source</b> <span style="color: maroon">dv</span>, <b>target</b> <span style="color: maroon">obs</span><span style="color: navy"> : </span>Observation<span style="color: navy">)</span><span style="color: navy"> {
</span> dv<span style="color: navy"><b> -> </b></span>obs.component<b> as </b><span style="color: maroon">comp</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>comp.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cv</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cv.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cd</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>cd.system = <span style="color: blue">'http://loinc.org'</span> <i>"codeSystem"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.code = <span style="color: blue">'8462-4'</span> <i>"codeCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>cd.display = <span style="color: blue">'Diastolic blood pressure'</span> <i>"codeDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"code"</i><span style="color: navy">;</span>
dv<span style="color: navy"><b> -> </b></span>comp.value = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Quantity'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">q</span><b> then</b><span style="color: navy"> {
</span> dv<span style="color: navy"><b> -> </b></span>q.value = <span style="color: maroon">dv</span> <i>"value"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>q.system = <span style="color: blue">'http://unitsofmeasure.org'</span> <i>"system"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>q.code = <span style="color: blue">'mm[Hg]'</span> <i>"unitCode"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>q.unit = <span style="color: blue">'mmHg'</span> <i>"unit"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"quantity"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"component"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">Identity, tags, tenant, subject, encounter and performer. The profile is set</span>
<span style="color: navy">// </span><span style="color: green">here for a measurement and overridden by Reading for a blood pressure.</span>
<b>group </b>Shared<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QR, <b>source</b> <span style="color: maroon">it</span>, <b>target</b> <span style="color: maroon">obs</span><span style="color: navy"> : </span>Observation, <b>target</b> <span style="color: maroon">e</span><span style="color: navy">)</span><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>evaluate<span style="color: navy">(</span>qr<span style="color: navy">, </span>id.replaceMatches('/_history/.*$', '').replaceMatches('^.*/', '')<span style="color: navy">)</span><b> as </b><span style="color: maroon">qid</span><b> then</b><span style="color: navy"> {
</span> it.linkId<b> as </b><span style="color: maroon">k</span><span style="color: navy"><b> -> </b></span> <b>append</b><span style="color: navy">(</span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-'</span><span style="color: navy">, </span><span style="color: maroon">k</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">idText</span><span style="color: navy">, </span> obs.id = <b>cast</b><span style="color: navy">(</span><span style="color: maroon">idText</span><span style="color: navy">, </span><span style="color: blue">'id'</span><span style="color: navy">)</span> <i>"id"</i><span style="color: navy">;</span>
it.linkId<b> as </b><span style="color: maroon">k</span><span style="color: navy"><b> -> </b></span>e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-'</span><span style="color: navy">, </span><span style="color: maroon">k</span><span style="color: navy">)</span> <i>"fullUrl"</i><span style="color: navy">;</span>
it.linkId<b> as </b><span style="color: maroon">k</span><span style="color: navy"><b> -> </b></span>e.request<b> as </b><span style="color: maroon">rq</span><b> then</b><span style="color: navy"> {
</span> qr<span style="color: navy"><b> -> </b></span>rq.method = <span style="color: blue">'PUT'</span> <i>"method"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>rq.url = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Observation/'</span><span style="color: navy">, </span><span style="color: maroon">qid</span><span style="color: navy">, </span><span style="color: blue">'-'</span><span style="color: navy">, </span><span style="color: maroon">k</span><span style="color: navy">)</span> <i>"url"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"request"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ids"</i><span style="color: navy">;</span>
qr.meta<b> as </b><span style="color: maroon">qm</span><b> then</b><span style="color: navy"> {
</span> qm.tag<b> as </b><span style="color: maroon">t</span><span style="color: navy"><b> -> </b></span> obs.meta<b> as </b><span style="color: maroon">m</span><span style="color: navy">, </span> m.tag = <span style="color: maroon">t</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"tags"</i><span style="color: navy">;</span>
qr.extension<b> as </b><span style="color: maroon">x</span><b> where </b><span style="color: navy">(</span>url = 'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-tenant'<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span>obs.extension = <span style="color: maroon">x</span> <i>"tenant"</i><span style="color: navy">;</span>
qr<span style="color: navy"><b> -> </b></span>obs.status = <span style="color: blue">'final'</span> <i>"status"</i><span style="color: navy">;</span>
qr.subject<b> as </b><span style="color: maroon">s</span><span style="color: navy"><b> -> </b></span>obs.subject = <span style="color: maroon">s</span><span style="color: navy">;</span>
qr.encounter<b> as </b><span style="color: maroon">en</span><span style="color: navy"><b> -> </b></span>obs.encounter = <span style="color: maroon">en</span><span style="color: navy">;</span>
qr.author<b> as </b><span style="color: maroon">au</span><span style="color: navy"><b> -> </b></span>obs.performer = <span style="color: maroon">au</span> <i>"performer"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureMap/HRExtractVitals"/>
<version value="0.2.0"/>
<name value="HRExtractVitals"/>
<status value="draft"/>
<date value="2026-11-12T10:14:36+00:00"/>
<publisher value="Savannah Informatics"/>
<contact>
<name value="Savannah Informatics"/>
<telecom>
<system value="url"/>
<value value="https://optimalhealth.org"/>
</telecom>
</contact>
<contact>
<name value="Savannah Informatics"/>
<telecom>
<system value="url"/>
<value value="https://optimalhealth.org"/>
</telecom>
</contact>
<structure>
<url
value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse"/>
<mode value="source"/>
<alias value="QR"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
<mode value="target"/>
<alias value="Bundle"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mode value="target"/>
<alias value="Observation"/>
</structure>
<group>
<name value="HRExtractVitals"/>
<input>
<name value="qr"/>
<type value="QR"/>
<mode value="source"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="type"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="bundle"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueString value="transaction"/>
</parameter>
</target>
</rule>
<rule>
<name value="reading1"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="g"/>
<condition value="linkId = 'bp-reading-1'"/>
</source>
<target>
<context value="bundle"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<element value="resource"/>
<variable value="obs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<rule>
<name value="reading"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Reading"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="g"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="systolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="si"/>
<condition value="linkId = 'bp-reading-1.8480-6'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="si"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="sa"/>
</source>
<rule>
<name value="systolic"/>
<source>
<context value="sa"/>
<element value="value"/>
<variable value="sv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Systolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="sv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="diastolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="di"/>
<condition value="linkId = 'bp-reading-1.8462-4'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="di"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="da"/>
</source>
<rule>
<name value="diastolic"/>
<source>
<context value="da"/>
<element value="value"/>
<variable value="dv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Diastolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="dv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="timeItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="ti"/>
<condition value="linkId = 'bp-reading-1.time'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="ti"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ta"/>
</source>
<rule>
<name value="effective"/>
<source>
<context value="ta"/>
<element value="value"/>
<variable value="tv"/>
</source>
<target>
<context value="obs"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="tv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="sequence"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="extension"/>
<variable value="x"/>
</target>
<rule>
<name value="url"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-sequence"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueInteger value="1"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="reading2"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="g"/>
<condition value="linkId = 'bp-reading-2'"/>
</source>
<target>
<context value="bundle"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<element value="resource"/>
<variable value="obs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<rule>
<name value="reading"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Reading"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="g"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="systolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="si"/>
<condition value="linkId = 'bp-reading-2.8480-6'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="si"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="sa"/>
</source>
<rule>
<name value="systolic"/>
<source>
<context value="sa"/>
<element value="value"/>
<variable value="sv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Systolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="sv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="diastolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="di"/>
<condition value="linkId = 'bp-reading-2.8462-4'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="di"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="da"/>
</source>
<rule>
<name value="diastolic"/>
<source>
<context value="da"/>
<element value="value"/>
<variable value="dv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Diastolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="dv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="timeItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="ti"/>
<condition value="linkId = 'bp-reading-2.time'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="ti"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ta"/>
</source>
<rule>
<name value="effective"/>
<source>
<context value="ta"/>
<element value="value"/>
<variable value="tv"/>
</source>
<target>
<context value="obs"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="tv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="sequence"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="extension"/>
<variable value="x"/>
</target>
<rule>
<name value="url"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-sequence"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueInteger value="2"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="position"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="pi"/>
<condition value="linkId = 'bp-reading-2.bp-position'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="pi"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="pa"/>
</source>
<rule>
<name value="extension"/>
<source>
<context value="pa"/>
<element value="value"/>
<variable value="pv"/>
</source>
<target>
<context value="obs"/>
<element value="extension"/>
<variable value="x"/>
</target>
<rule>
<name value="url"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-position"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="pv"/>
</source>
<target>
<context value="x"/>
<element value="value"/>
<variable value="concept"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<target>
<context value="concept"/>
<element value="coding"/>
<transform value="copy"/>
<parameter>
<valueId value="pv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="reading3"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="g"/>
<condition value="linkId = 'bp-reading-3'"/>
</source>
<target>
<context value="bundle"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<element value="resource"/>
<variable value="obs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<rule>
<name value="reading"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Reading"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="g"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="systolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="si"/>
<condition value="linkId = 'bp-reading-3.8480-6'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="si"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="sa"/>
</source>
<rule>
<name value="systolic"/>
<source>
<context value="sa"/>
<element value="value"/>
<variable value="sv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Systolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="sv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="diastolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="di"/>
<condition value="linkId = 'bp-reading-3.8462-4'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="di"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="da"/>
</source>
<rule>
<name value="diastolic"/>
<source>
<context value="da"/>
<element value="value"/>
<variable value="dv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Diastolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="dv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="timeItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="ti"/>
<condition value="linkId = 'bp-reading-3.time'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="ti"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ta"/>
</source>
<rule>
<name value="effective"/>
<source>
<context value="ta"/>
<element value="value"/>
<variable value="tv"/>
</source>
<target>
<context value="obs"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="tv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="sequence"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="extension"/>
<variable value="x"/>
</target>
<rule>
<name value="url"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-sequence"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueInteger value="3"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="captureTime"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="it"/>
<condition value="linkId = 'retinal-capture-time'"/>
</source>
<rule>
<name value="obs"/>
<source>
<context value="it"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="a"/>
</source>
<target>
<context value="bundle"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<element value="resource"/>
<variable value="obs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<rule>
<name value="base"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Shared"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="it"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="profile"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="meta"/>
<variable value="m"/>
</target>
<target>
<context value="m"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-observation"/>
</parameter>
</target>
</rule>
<rule>
<name value="category"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="category"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="categoryCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="categorySystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/observation-category"/>
</parameter>
</target>
</rule>
<rule>
<name value="categoryCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="procedure"/>
</parameter>
</target>
</rule>
<rule>
<name value="categoryDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Procedure"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="code"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="code"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="codeCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="codeSystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/CodeSystem/hr-measurement"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="retinal-capture-time"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Time of retinal capture"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="effective"/>
<source>
<context value="a"/>
<element value="value"/>
<variable value="v"/>
</source>
<target>
<context value="obs"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="v"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="a"/>
<element value="value"/>
<variable value="v"/>
</source>
<target>
<context value="obs"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="v"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="derived"/>
<source>
<context value="qr"/>
</source>
<target>
<variable value="qid"/>
<transform value="evaluate"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueString
value="id.replaceMatches('/_history/.*$', '').replaceMatches('^.*/', '')"/>
</parameter>
</target>
<rule>
<name value="mean"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="g"/>
<condition value="linkId = 'bp-mean'"/>
</source>
<target>
<context value="bundle"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<element value="resource"/>
<variable value="obs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<rule>
<name value="reading"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Reading"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="g"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="derivedCategory"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Derived"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="systolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="si"/>
<condition value="linkId = 'bp-mean.8480-6'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="si"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="sa"/>
</source>
<rule>
<name value="systolic"/>
<source>
<context value="sa"/>
<element value="value"/>
<variable value="sv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Systolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="sv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="diastolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="di"/>
<condition value="linkId = 'bp-mean.8462-4'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="di"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="da"/>
</source>
<rule>
<name value="diastolic"/>
<source>
<context value="da"/>
<element value="value"/>
<variable value="dv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Diastolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="dv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="reading3"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="r3"/>
<condition value="linkId = 'bp-reading-3'"/>
</source>
<rule>
<name value="time"/>
<source>
<context value="r3"/>
<element value="item"/>
<variable value="ti"/>
<condition value="linkId = 'bp-reading-3.time'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="ti"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ta"/>
</source>
<rule>
<name value="effective"/>
<source>
<context value="ta"/>
<element value="value"/>
<variable value="tv"/>
</source>
<target>
<context value="obs"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="tv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="method"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="method"/>
<variable value="m"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<target>
<context value="m"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Mean of readings 2 and 3"/>
</parameter>
</target>
</rule>
<rule>
<name value="reading2Ref"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="derivedFrom"/>
<variable value="r"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="r"/>
<element value="reference"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-bp-reading-2"/>
</parameter>
</target>
</rule>
<rule>
<name value="reading3Ref"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="derivedFrom"/>
<variable value="r"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="r"/>
<element value="reference"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-bp-reading-3"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="meanAll"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="g"/>
<condition value="linkId = 'bp-mean-all'"/>
</source>
<target>
<context value="bundle"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<element value="resource"/>
<variable value="obs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<rule>
<name value="reading"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Reading"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="g"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="derivedCategory"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Derived"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="systolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="si"/>
<condition value="linkId = 'bp-mean-all.8480-6'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="si"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="sa"/>
</source>
<rule>
<name value="systolic"/>
<source>
<context value="sa"/>
<element value="value"/>
<variable value="sv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Systolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="sv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="diastolicItem"/>
<source>
<context value="g"/>
<element value="item"/>
<variable value="di"/>
<condition value="linkId = 'bp-mean-all.8462-4'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="di"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="da"/>
</source>
<rule>
<name value="diastolic"/>
<source>
<context value="da"/>
<element value="value"/>
<variable value="dv"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Diastolic"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="dv"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="reading3"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="r3"/>
<condition value="linkId = 'bp-reading-3'"/>
</source>
<rule>
<name value="time"/>
<source>
<context value="r3"/>
<element value="item"/>
<variable value="ti"/>
<condition value="linkId = 'bp-reading-3.time'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="ti"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ta"/>
</source>
<rule>
<name value="effective"/>
<source>
<context value="ta"/>
<element value="value"/>
<variable value="tv"/>
</source>
<target>
<context value="obs"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="tv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="method"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="method"/>
<variable value="m"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<target>
<context value="m"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Mean of readings 1, 2 and 3"/>
</parameter>
</target>
</rule>
<rule>
<name value="reading1Ref"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="derivedFrom"/>
<variable value="r"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="r"/>
<element value="reference"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-bp-reading-1"/>
</parameter>
</target>
</rule>
<rule>
<name value="reading2Ref"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="derivedFrom"/>
<variable value="r"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="r"/>
<element value="reference"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-bp-reading-2"/>
</parameter>
</target>
</rule>
<rule>
<name value="reading3Ref"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="derivedFrom"/>
<variable value="r"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="r"/>
<element value="reference"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-bp-reading-3"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
<group>
<name value="Derived"/>
<documentation
value="The category a value worked out on this form carries beside its FHIR one."/>
<input>
<name value="qr"/>
<type value="QR"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<rule>
<name value="category"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="category"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="derivedCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="derivedSystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/CodeSystem/hr-observation-category"/>
</parameter>
</target>
</rule>
<rule>
<name value="derivedCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="derived"/>
</parameter>
</target>
</rule>
<rule>
<name value="derivedDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Derived"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
<group>
<name value="Reading"/>
<documentation
value="One reading on the core blood pressure profile: the panel code, the monitor
as a component, and the shared identity. The group item's linkId names it."/>
<input>
<name value="qr"/>
<type value="QR"/>
<mode value="source"/>
</input>
<input>
<name value="g"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<input>
<name value="e"/>
<mode value="target"/>
</input>
<rule>
<name value="base"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
</target>
<dependent>
<name value="Shared"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueId value="g"/>
</parameter>
<parameter>
<valueId value="obs"/>
</parameter>
<parameter>
<valueId value="e"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="profile"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="meta"/>
<variable value="m"/>
</target>
<target>
<context value="m"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-blood-pressure"/>
</parameter>
</target>
</rule>
<rule>
<name value="category"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="category"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="categoryCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="categorySystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/observation-category"/>
</parameter>
</target>
</rule>
<rule>
<name value="categoryCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="vital-signs"/>
</parameter>
</target>
</rule>
<rule>
<name value="categoryDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Vital Signs"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="code"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="code"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="codeCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="codeSystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://loinc.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="85354-9"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString
value="Blood pressure panel with all children optional"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="device"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="d"/>
<condition value="linkId = 'bp-device'"/>
</source>
<rule>
<name value="answer"/>
<source>
<context value="d"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="da"/>
</source>
<rule>
<name value="extension"/>
<source>
<context value="da"/>
<element value="value"/>
<variable value="dv"/>
</source>
<target>
<context value="obs"/>
<element value="extension"/>
<variable value="x"/>
</target>
<rule>
<name value="url"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="x"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-reading-device"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="dv"/>
</source>
<target>
<context value="x"/>
<element value="value"/>
<variable value="concept"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<target>
<context value="concept"/>
<element value="coding"/>
<transform value="copy"/>
<parameter>
<valueId value="dv"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</group>
<group>
<name value="Systolic"/>
<input>
<name value="qr"/>
<type value="QR"/>
<mode value="source"/>
</input>
<input>
<name value="sv"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<rule>
<name value="component"/>
<source>
<context value="sv"/>
</source>
<target>
<context value="obs"/>
<element value="component"/>
<variable value="comp"/>
</target>
<rule>
<name value="code"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="comp"/>
<element value="code"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="codeCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="codeSystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://loinc.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="8480-6"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Systolic blood pressure"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="quantity"/>
<source>
<context value="sv"/>
</source>
<target>
<context value="comp"/>
<element value="value"/>
<variable value="q"/>
<transform value="create"/>
<parameter>
<valueString value="Quantity"/>
</parameter>
</target>
<rule>
<name value="value"/>
<source>
<context value="sv"/>
</source>
<target>
<context value="q"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="sv"/>
</parameter>
</target>
</rule>
<rule>
<name value="system"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="q"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://unitsofmeasure.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="unitCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="q"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="mm[Hg]"/>
</parameter>
</target>
</rule>
<rule>
<name value="unit"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="q"/>
<element value="unit"/>
<transform value="copy"/>
<parameter>
<valueString value="mmHg"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
<group>
<name value="Diastolic"/>
<input>
<name value="qr"/>
<type value="QR"/>
<mode value="source"/>
</input>
<input>
<name value="dv"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<rule>
<name value="component"/>
<source>
<context value="dv"/>
</source>
<target>
<context value="obs"/>
<element value="component"/>
<variable value="comp"/>
</target>
<rule>
<name value="code"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="comp"/>
<element value="code"/>
<variable value="cv"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="codeCoding"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cv"/>
<element value="coding"/>
<variable value="cd"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="codeSystem"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://loinc.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="8462-4"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeDisplay"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="cd"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Diastolic blood pressure"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="quantity"/>
<source>
<context value="dv"/>
</source>
<target>
<context value="comp"/>
<element value="value"/>
<variable value="q"/>
<transform value="create"/>
<parameter>
<valueString value="Quantity"/>
</parameter>
</target>
<rule>
<name value="value"/>
<source>
<context value="dv"/>
</source>
<target>
<context value="q"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="dv"/>
</parameter>
</target>
</rule>
<rule>
<name value="system"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="q"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://unitsofmeasure.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="unitCode"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="q"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="mm[Hg]"/>
</parameter>
</target>
</rule>
<rule>
<name value="unit"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="q"/>
<element value="unit"/>
<transform value="copy"/>
<parameter>
<valueString value="mmHg"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
<group>
<name value="Shared"/>
<documentation
value="Identity, tags, tenant, subject, encounter and performer. The profile is set
here for a measurement and overridden by Reading for a blood pressure."/>
<input>
<name value="qr"/>
<type value="QR"/>
<mode value="source"/>
</input>
<input>
<name value="it"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<input>
<name value="e"/>
<mode value="target"/>
</input>
<rule>
<name value="ids"/>
<source>
<context value="qr"/>
</source>
<target>
<variable value="qid"/>
<transform value="evaluate"/>
<parameter>
<valueId value="qr"/>
</parameter>
<parameter>
<valueString
value="id.replaceMatches('/_history/.*$', '').replaceMatches('^.*/', '')"/>
</parameter>
</target>
<rule>
<name value="id"/>
<source>
<context value="it"/>
<element value="linkId"/>
<variable value="k"/>
</source>
<target>
<variable value="idText"/>
<transform value="append"/>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-"/>
</parameter>
<parameter>
<valueId value="k"/>
</parameter>
</target>
<target>
<context value="obs"/>
<element value="id"/>
<transform value="cast"/>
<parameter>
<valueId value="idText"/>
</parameter>
<parameter>
<valueString value="id"/>
</parameter>
</target>
</rule>
<rule>
<name value="fullUrl"/>
<source>
<context value="it"/>
<element value="linkId"/>
<variable value="k"/>
</source>
<target>
<context value="e"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-"/>
</parameter>
<parameter>
<valueId value="k"/>
</parameter>
</target>
</rule>
<rule>
<name value="request"/>
<source>
<context value="it"/>
<element value="linkId"/>
<variable value="k"/>
</source>
<target>
<context value="e"/>
<element value="request"/>
<variable value="rq"/>
</target>
<rule>
<name value="method"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="rq"/>
<element value="method"/>
<transform value="copy"/>
<parameter>
<valueString value="PUT"/>
</parameter>
</target>
</rule>
<rule>
<name value="url"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="rq"/>
<element value="url"/>
<transform value="append"/>
<parameter>
<valueString value="Observation/"/>
</parameter>
<parameter>
<valueId value="qid"/>
</parameter>
<parameter>
<valueString value="-"/>
</parameter>
<parameter>
<valueId value="k"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="tags"/>
<source>
<context value="qr"/>
<element value="meta"/>
<variable value="qm"/>
</source>
<rule>
<name value="tag"/>
<source>
<context value="qm"/>
<element value="tag"/>
<variable value="t"/>
</source>
<target>
<context value="obs"/>
<element value="meta"/>
<variable value="m"/>
</target>
<target>
<context value="m"/>
<element value="tag"/>
<transform value="copy"/>
<parameter>
<valueId value="t"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="tenant"/>
<source>
<context value="qr"/>
<element value="extension"/>
<variable value="x"/>
<condition
value="url = 'https://fhir.optimalhealth.org/ig/healthy-route/StructureDefinition/hr-tenant'"/>
</source>
<target>
<context value="obs"/>
<element value="extension"/>
<transform value="copy"/>
<parameter>
<valueId value="x"/>
</parameter>
</target>
</rule>
<rule>
<name value="status"/>
<source>
<context value="qr"/>
</source>
<target>
<context value="obs"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="final"/>
</parameter>
</target>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="qr"/>
<element value="subject"/>
<variable value="s"/>
</source>
<target>
<context value="obs"/>
<element value="subject"/>
<transform value="copy"/>
<parameter>
<valueId value="s"/>
</parameter>
</target>
</rule>
<rule>
<name value="encounter"/>
<source>
<context value="qr"/>
<element value="encounter"/>
<variable value="en"/>
</source>
<target>
<context value="obs"/>
<element value="encounter"/>
<transform value="copy"/>
<parameter>
<valueId value="en"/>
</parameter>
</target>
</rule>
<rule>
<name value="performer"/>
<source>
<context value="qr"/>
<element value="author"/>
<variable value="au"/>
</source>
<target>
<context value="obs"/>
<element value="performer"/>
<transform value="copy"/>
<parameter>
<valueId value="au"/>
</parameter>
</target>
</rule>
</group>
</StructureMap>