SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build
SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions
| Draft as of 2026-09-15 |
{
"resourceType" : "StructureMap",
"id" : "ExtractVitalSigns",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ExtractVitalSigns</b></p><a name=\"ExtractVitalSigns\"> </a><a name=\"hcExtractVitalSigns\"> </a><pre class=\"fml\">\r\n<span style=\"color: #cc00cc\">/// <b>url</b> = </span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/StructureMap/ExtractVitalSigns'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ExtractVitalSigns'</span>\r\n<span style=\"color: #cc00cc\">/// <b>status</b> = </span><span style=\"color: blue\">'draft'</span>\r\n\r\n<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>\r\n<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>\r\n<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>\r\n\r\n<b>group </b>ExtractVitalSigns<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\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>bundle.type = <span style=\"color: blue\">'transaction'</span> <i>"setBundleType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Height</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itH</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8302-2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itH.answer first<b> as </b><span style=\"color: maroon\">aH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aH<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eH</span><span style=\"color: navy\">, </span> eH.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\">oH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oH<span style=\"color: navy\">, </span> eH<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oH</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eH</span><span style=\"color: navy\">)</span> <i>"heightBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oH.category<b> as </b><span style=\"color: maroon\">catH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catH.coding<b> as </b><span style=\"color: maroon\">catHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catHCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catHCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catHCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryH"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oH.code<b> as </b><span style=\"color: maroon\">codeH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeH.coding<b> as </b><span style=\"color: maroon\">codeHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeHCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeHCoding.code = <span style=\"color: blue\">'8302-2'</span> <i>"codeHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeHCoding.display = <span style=\"color: blue\">'Body Height'</span> <i>"codeHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeH"</i><span style=\"color: navy\">;</span>\r\n aH.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oH.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\">vH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vH.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vH.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vH.code = <span style=\"color: blue\">'cm'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vH.unit = <span style=\"color: blue\">'centimeter'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valH"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Weight</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itW</span><b> where </b><span style=\"color: navy\">(</span>linkId = '29463-7'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itW.answer first<b> as </b><span style=\"color: maroon\">aW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aW<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eW</span><span style=\"color: navy\">, </span> eW.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\">oW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oW<span style=\"color: navy\">, </span> eW<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oW</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eW</span><span style=\"color: navy\">)</span> <i>"weightBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oW.category<b> as </b><span style=\"color: maroon\">catW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catW.coding<b> as </b><span style=\"color: maroon\">catWCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catWCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catWSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catWCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catWCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catWCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catWDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catWCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryW"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oW.code<b> as </b><span style=\"color: maroon\">codeW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeW.coding<b> as </b><span style=\"color: maroon\">codeWCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeWCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeWSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeWCoding.code = <span style=\"color: blue\">'29463-7'</span> <i>"codeWCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeWCoding.display = <span style=\"color: blue\">'Body Weight'</span> <i>"codeWDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeWCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeW"</i><span style=\"color: navy\">;</span>\r\n aW.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oW.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\">vW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vW.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vW.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vW.code = <span style=\"color: blue\">'kg'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vW.unit = <span style=\"color: blue\">'kilogram'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valW"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">BMI</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itBmi</span><b> where </b><span style=\"color: navy\">(</span>linkId = '39156-5'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itBmi.answer first<b> as </b><span style=\"color: maroon\">aBmi</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aBmi<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eBmi</span><span style=\"color: navy\">, </span> eBmi.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\">oBmi</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oBmi<span style=\"color: navy\">, </span> eBmi<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oBmi</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eBmi</span><span style=\"color: navy\">)</span> <i>"bmiBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oBmi.category<b> as </b><span style=\"color: maroon\">catBmi</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catBmi.coding<b> as </b><span style=\"color: maroon\">catBmiCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catBmiCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catBmiSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catBmiCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catBmiCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catBmiCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catBmiDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catBmiCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryBmi"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oBmi.code<b> as </b><span style=\"color: maroon\">codeBmi</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeBmi.coding<b> as </b><span style=\"color: maroon\">codeBmiCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeBmiCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeBmiSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeBmiCoding.code = <span style=\"color: blue\">'39156-5'</span> <i>"codeBmiCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeBmiCoding.display = <span style=\"color: blue\">'Body mass index (BMI) [Ratio]'</span> <i>"codeBmiDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBmiCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBmi"</i><span style=\"color: navy\">;</span>\r\n aBmi.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oBmi.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\">vBmi</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vBmi.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vBmi.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vBmi.code = <span style=\"color: blue\">'kg/m2'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vBmi.unit = <span style=\"color: blue\">'kilogram per square meter'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valBmi"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Interpretation 39156-5_status</span>\r\n itBmi.item<b> as </b><span style=\"color: maroon\">bmiStatusItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = '39156-5_status'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> bmiStatusItem.answer first<b> as </b><span style=\"color: maroon\">bmiStatusAns</span><span style=\"color: navy\"><b> -> </b></span>oBmi.interpretation<b> as </b><span style=\"color: maroon\">iBmi</span><b> then</b><span style=\"color: navy\"> {\r\n</span> bmiStatusAns.value<b> as </b><span style=\"color: maroon\">statusText</span><span style=\"color: navy\"><b> -> </b></span>iBmi.text = <span style=\"color: maroon\">statusText</span> <i>"interpBmi"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setInterpBmi"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"findBmiStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bmiObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bmiAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bmiRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Pulse</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itP</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8889-8'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itP.answer first<b> as </b><span style=\"color: maroon\">aP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aP<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eP</span><span style=\"color: navy\">, </span> eP.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\">oP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oP<span style=\"color: navy\">, </span> eP<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oP</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eP</span><span style=\"color: navy\">)</span> <i>"pulseBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oP.category<b> as </b><span style=\"color: maroon\">catP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catP.coding<b> as </b><span style=\"color: maroon\">catPCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catPCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catPSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catPCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catPCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catPCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catPDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catPCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryP"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oP.code<b> as </b><span style=\"color: maroon\">codeP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeP.coding<b> as </b><span style=\"color: maroon\">codePCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codePCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codePSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codePCoding.code = <span style=\"color: blue\">'8889-8'</span> <i>"codePCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codePCoding.display = <span style=\"color: blue\">'Heart rate by Pulse oximetry'</span> <i>"codePDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codePCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeP"</i><span style=\"color: navy\">;</span>\r\n aP.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oP.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\">vP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vP.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vP.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vP.code = <span style=\"color: blue\">'/min'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vP.unit = <span style=\"color: blue\">'per minute'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valP"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pulseObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pulseAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pulseRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Blood Pressure</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itBP</span><b> where </b><span style=\"color: navy\">(</span>linkId = '55284-4'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eBP</span><span style=\"color: navy\">, </span> eBP.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\">oBP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oBP<span style=\"color: navy\">, </span> eBP<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oBP</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eBP</span><span style=\"color: navy\">)</span> <i>"bpBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oBP.category<b> as </b><span style=\"color: maroon\">catBP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catBP.coding<b> as </b><span style=\"color: maroon\">catBPCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catBPCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catBPSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catBPCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catBPCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catBPCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catBPDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catBPCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryBP"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oBP.code<b> as </b><span style=\"color: maroon\">codeBP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeBP.coding<b> as </b><span style=\"color: maroon\">codeBPCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeBPCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeBPSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeBPCoding.code = <span style=\"color: blue\">'55284-4'</span> <i>"codeBPCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeBPCoding.display = <span style=\"color: blue\">'Blood pressure systolic and diastolic'</span> <i>"codeBPDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBPCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBP"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Systolic 8480-6</span>\r\n itBP.item<b> as </b><span style=\"color: maroon\">itSys</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8480-6'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itSys.answer first<b> as </b><span style=\"color: maroon\">aSys</span><span style=\"color: navy\"><b> -> </b></span>oBP.component<b> as </b><span style=\"color: maroon\">cSys</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aSys<span style=\"color: navy\"><b> -> </b></span>cSys.code<b> as </b><span style=\"color: maroon\">bpSysCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aSys<span style=\"color: navy\"><b> -> </b></span>bpSysCC.coding<b> as </b><span style=\"color: maroon\">bpSysCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aSys<span style=\"color: navy\"><b> -> </b></span>bpSysCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"bpSysCodingSystem"</i><span style=\"color: navy\">;</span>\r\n aSys<span style=\"color: navy\"><b> -> </b></span>bpSysCoding.code = <span style=\"color: blue\">'8480-6'</span> <i>"bpSysCodingCode"</i><span style=\"color: navy\">;</span>\r\n aSys<span style=\"color: navy\"><b> -> </b></span>bpSysCoding.display = <span style=\"color: blue\">'Systolic blood pressure'</span> <i>"bpSysCodingDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpSysCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpSysCode"</i><span style=\"color: navy\">;</span>\r\n aSys.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>cSys.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\">vSys</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vSys.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vSys.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vSys.code = <span style=\"color: blue\">'mm[Hg]'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vSys.unit = <span style=\"color: blue\">'millimeter of mercury'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpSysVal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpSysComponent"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpSysRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Diastolic 8462-4</span>\r\n itBP.item<b> as </b><span style=\"color: maroon\">itDia</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8462-4'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itDia.answer first<b> as </b><span style=\"color: maroon\">aDia</span><span style=\"color: navy\"><b> -> </b></span>oBP.component<b> as </b><span style=\"color: maroon\">cDia</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aDia<span style=\"color: navy\"><b> -> </b></span>cDia.code<b> as </b><span style=\"color: maroon\">bpDiaCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aDia<span style=\"color: navy\"><b> -> </b></span>bpDiaCC.coding<b> as </b><span style=\"color: maroon\">bpDiaCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aDia<span style=\"color: navy\"><b> -> </b></span>bpDiaCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"bpDiaCodingSystem"</i><span style=\"color: navy\">;</span>\r\n aDia<span style=\"color: navy\"><b> -> </b></span>bpDiaCoding.code = <span style=\"color: blue\">'8462-4'</span> <i>"bpDiaCodingCode"</i><span style=\"color: navy\">;</span>\r\n aDia<span style=\"color: navy\"><b> -> </b></span>bpDiaCoding.display = <span style=\"color: blue\">'Diastolic blood pressure'</span> <i>"bpDiaCodingDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpDiaCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpDiaCode"</i><span style=\"color: navy\">;</span>\r\n aDia.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>cDia.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\">vDia</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vDia.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vDia.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vDia.code = <span style=\"color: blue\">'mm[Hg]'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vDia.unit = <span style=\"color: blue\">'millimeter of mercury'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpDiaVal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpDiaComponent"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpDiaRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bpRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Temperature</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itT</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8310-5'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itT.answer first<b> as </b><span style=\"color: maroon\">aT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aT<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eT</span><span style=\"color: navy\">, </span> eT.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\">oT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oT<span style=\"color: navy\">, </span> eT<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oT</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eT</span><span style=\"color: navy\">)</span> <i>"tempBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oT.category<b> as </b><span style=\"color: maroon\">catT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catT.coding<b> as </b><span style=\"color: maroon\">catTCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catTCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catTSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catTCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catTCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catTCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catTDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catTCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryT"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oT.code<b> as </b><span style=\"color: maroon\">codeT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeT.coding<b> as </b><span style=\"color: maroon\">codeTCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeTCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeTSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeTCoding.code = <span style=\"color: blue\">'8310-5'</span> <i>"codeTCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeTCoding.display = <span style=\"color: blue\">'Body Temperature'</span> <i>"codeTDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeTCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeT"</i><span style=\"color: navy\">;</span>\r\n aT.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oT.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\">vT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vT.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vT.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vT.code = <span style=\"color: blue\">'Cel'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vT.unit = <span style=\"color: blue\">'degree Celsius'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valT"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Interpretation 8310-5_status</span>\r\n itT.item<b> as </b><span style=\"color: maroon\">tStatusItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8310-5_status'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> tStatusItem.answer first<b> as </b><span style=\"color: maroon\">tStatusAns</span><span style=\"color: navy\"><b> -> </b></span>oT.interpretation<b> as </b><span style=\"color: maroon\">iT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> tStatusAns.value<b> as </b><span style=\"color: maroon\">statusText</span><span style=\"color: navy\"><b> -> </b></span>iT.text = <span style=\"color: maroon\">statusText</span> <i>"interpT"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setInterpT"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"findTStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"tempObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"tempAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"tempRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">SpO2</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itO2</span><b> where </b><span style=\"color: navy\">(</span>linkId = '20564-1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itO2.answer first<b> as </b><span style=\"color: maroon\">aO2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aO2<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eO2</span><span style=\"color: navy\">, </span> eO2.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\">oO2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oO2<span style=\"color: navy\">, </span> eO2<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oO2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eO2</span><span style=\"color: navy\">)</span> <i>"spo2Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oO2.category<b> as </b><span style=\"color: maroon\">catO2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catO2.coding<b> as </b><span style=\"color: maroon\">catO2Coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catO2Coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catO2Sys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catO2Coding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catO2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catO2Coding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catO2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catO2CodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryO2"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oO2.code<b> as </b><span style=\"color: maroon\">codeO2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeO2.coding<b> as </b><span style=\"color: maroon\">codeO2Coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeO2Coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeO2Sys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeO2Coding.code = <span style=\"color: blue\">'20564-1'</span> <i>"codeO2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeO2Coding.display = <span style=\"color: blue\">'Oxygen saturation in Blood'</span> <i>"codeO2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeO2CodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeO2"</i><span style=\"color: navy\">;</span>\r\n aO2.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oO2.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\">vO2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vO2.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vO2.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vO2.code = <span style=\"color: blue\">'%'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vO2.unit = <span style=\"color: blue\">'%'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valO2"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Interpretation of SpO2 20564-1_status</span>\r\n itO2.item<b> as </b><span style=\"color: maroon\">o2StatusItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = '20564-1_status'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> o2StatusItem.answer first<b> as </b><span style=\"color: maroon\">o2StatusAns</span><span style=\"color: navy\"><b> -> </b></span>oO2.interpretation<b> as </b><span style=\"color: maroon\">iO2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> o2StatusAns.value<b> as </b><span style=\"color: maroon\">statusText</span><span style=\"color: navy\"><b> -> </b></span>iO2.text = <span style=\"color: maroon\">statusText</span> <i>"interpO2"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setInterpO2"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"findO2Status"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"spo2Obs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"spo2Ans"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"spo2Rule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Respiratory rate</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itRR</span><b> where </b><span style=\"color: navy\">(</span>linkId = '9279-1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itRR.answer first<b> as </b><span style=\"color: maroon\">aRR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aRR<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eRR</span><span style=\"color: navy\">, </span> eRR.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\">oRR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oRR<span style=\"color: navy\">, </span> eRR<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oRR</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eRR</span><span style=\"color: navy\">)</span> <i>"rrBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oRR.category<b> as </b><span style=\"color: maroon\">catRR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catRR.coding<b> as </b><span style=\"color: maroon\">catRRCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catRRCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catRRSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catRRCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catRRCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catRRCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catRRDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catRRCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryRR"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oRR.code<b> as </b><span style=\"color: maroon\">codeRR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeRR.coding<b> as </b><span style=\"color: maroon\">codeRRCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeRRCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeRRSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeRRCoding.code = <span style=\"color: blue\">'9279-1'</span> <i>"codeRRCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeRRCoding.display = <span style=\"color: blue\">'Respiratory rate'</span> <i>"codeRRDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeRRCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeRR"</i><span style=\"color: navy\">;</span>\r\n aRR.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oRR.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\">vRR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vRR.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vRR.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vRR.code = <span style=\"color: blue\">'/min'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vRR.unit = <span style=\"color: blue\">'per minute'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valRR"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rrObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rrAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rrRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">MUAC</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itMuac</span><b> where </b><span style=\"color: navy\">(</span>linkId = '9847-5'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itMuac.answer first<b> as </b><span style=\"color: maroon\">aMuac</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aMuac<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eMuac</span><span style=\"color: navy\">, </span> eMuac.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\">oMuac</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oMuac<span style=\"color: navy\">, </span> eMuac<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oMuac</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eMuac</span><span style=\"color: navy\">)</span> <i>"muacBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oMuac.category<b> as </b><span style=\"color: maroon\">catMuac</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catMuac.coding<b> as </b><span style=\"color: maroon\">catMuacCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catMuacCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catMuacSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catMuacCoding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"catMuacCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catMuacCoding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"catMuacDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catMuacCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryMuac"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oMuac.code<b> as </b><span style=\"color: maroon\">codeMuac</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeMuac.coding<b> as </b><span style=\"color: maroon\">codeMuacCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeMuacCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeMuacSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeMuacCoding.code = <span style=\"color: blue\">'9847-5'</span> <i>"codeMuacCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeMuacCoding.display = <span style=\"color: blue\">'Circumference'</span> <i>"codeMuacDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeMuacCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeMuac"</i><span style=\"color: navy\">;</span>\r\n aMuac.value<b> as </b><span style=\"color: maroon\">hv</span><span style=\"color: navy\"><b> -> </b></span>oMuac.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\">vMuac</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hv<span style=\"color: navy\"><b> -> </b></span>vMuac.value = <span style=\"color: maroon\">hv</span> <i>"setVal"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vMuac.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"setSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vMuac.code = <span style=\"color: blue\">'mm'</span> <i>"setCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vMuac.unit = <span style=\"color: blue\">'millimeter'</span> <i>"setUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"valMuac"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Chief Complaint</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itCC</span><b> where </b><span style=\"color: navy\">(</span>linkId = '10154-3'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itCC.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"chiefComplaintBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catCC.coding<b> as </b><span style=\"color: maroon\">catCCCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catCCCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catCCSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catCCCoding.code = <span style=\"color: blue\">'social-history'</span> <i>"catCCCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catCCCoding.display = <span style=\"color: blue\">'Social History'</span> <i>"catCCDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catCCCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"chiefComplaintCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codeCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeCC.coding<b> as </b><span style=\"color: maroon\">codeCCCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeCCCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeCCSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeCCCoding.code = <span style=\"color: blue\">'10154-3'</span> <i>"codeCCCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeCCCoding.display = <span style=\"color: blue\">'Chief complaint Narrative - Reported'</span> <i>"codeCCDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeCCCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"chiefComplaintCode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"chiefComplaintValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"chiefComplaintObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"chiefComplaintAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"chiefComplaintRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">History of Presenting Illness</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">hpiCC</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8684-3'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hpiCC.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"historyOfPIBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catHPI</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catHPI.coding<b> as </b><span style=\"color: maroon\">catHPICoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catHPICoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catHPISys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catHPICoding.code = <span style=\"color: blue\">'social-history'</span> <i>"catHPICode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catHPICoding.display = <span style=\"color: blue\">'Social History'</span> <i>"catHPIDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catHPICodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPICategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codeHPI</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeHPI.coding<b> as </b><span style=\"color: maroon\">codeHPICoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeHPICoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeHPISys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeHPICoding.code = <span style=\"color: blue\">'8684-3'</span> <i>"codeHPICode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeHPICoding.display = <span style=\"color: blue\">'History of Present illness'</span> <i>"codeHPIDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeHPICodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPICode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"historyOfPIValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPIObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPIAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPIRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">History of Past Illness / Past Medical History</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">hPastCC</span><b> where </b><span style=\"color: navy\">(</span>linkId = '11349-8'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hPastCC.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"historyOfPastIBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catPastI</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catPastI.coding<b> as </b><span style=\"color: maroon\">catPastICoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catPastICoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catPastISys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catPastICoding.code = <span style=\"color: blue\">'social-history'</span> <i>"catPastICode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catPastICoding.display = <span style=\"color: blue\">'Social History'</span> <i>"catPastIDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catPastICodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPastICategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codePastI</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codePastI.coding<b> as </b><span style=\"color: maroon\">codePastICoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codePastICoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codePastISys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codePastICoding.code = <span style=\"color: blue\">'11349-8'</span> <i>"codePastICode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codePastICoding.display = <span style=\"color: blue\">'History of Past illness'</span> <i>"codePastIDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codePastICodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPastICode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"historyOfPastIValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPastIObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPastIAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"historyOfPastIRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Family History</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">hFH</span><b> where </b><span style=\"color: navy\">(</span>linkId = '8670-2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hFH.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"familyFHIBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catFH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catFH.coding<b> as </b><span style=\"color: maroon\">catFHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catFHCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catFHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catFHCoding.code = <span style=\"color: blue\">'social-history'</span> <i>"catFHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catFHCoding.display = <span style=\"color: blue\">'Social History'</span> <i>"catFHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catFHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"familyHICategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codeFH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeFH.coding<b> as </b><span style=\"color: maroon\">codeFHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeFHCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeFHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeFHCoding.code = <span style=\"color: blue\">'8670-2'</span> <i>"codeFHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeFHCoding.display = <span style=\"color: blue\">'History of family member diseases'</span> <i>"codeFHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeFHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"familyHICode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"familyHIValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"familyHIObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"familyHIAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"familyHIRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Social History</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">hSH</span><b> where </b><span style=\"color: navy\">(</span>linkId = '29762-2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> hSH.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"socialHistoryIBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catSH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catSH.coding<b> as </b><span style=\"color: maroon\">catSHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catSHCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catSHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catSHCoding.code = <span style=\"color: blue\">'social-history'</span> <i>"catSHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catSHCoding.display = <span style=\"color: blue\">'Social History'</span> <i>"catSHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catSHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"socialHistoryCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codeSH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeSH.coding<b> as </b><span style=\"color: maroon\">codeSHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeSHCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeSHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeSHCoding.code = <span style=\"color: blue\">'29762-2'</span> <i>"codeSHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeSHCoding.display = <span style=\"color: blue\">'Social history note'</span> <i>"codeSHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeSHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"socialHistoryCode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"socialHistoryIValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"socialHistoryIObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"socialHistoryIAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"socialHistoryIRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Medication History</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">medicationH</span><b> where </b><span style=\"color: navy\">(</span>linkId = '10160-0'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> medicationH.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"medicationHIBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catMedH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catMedH.coding<b> as </b><span style=\"color: maroon\">catMedHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catMedHCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catMedHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catMedHCoding.code = <span style=\"color: blue\">'therapy'</span> <i>"catMedHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catMedHCoding.display = <span style=\"color: blue\">'Therapy'</span> <i>"catMedHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catMedHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"medicationHCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codeMedH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeMedH.coding<b> as </b><span style=\"color: maroon\">codeMedHCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeMedHCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeMedHSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeMedHCoding.code = <span style=\"color: blue\">'10160-0'</span> <i>"codeMedHCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeMedHCoding.display = <span style=\"color: blue\">'History of Medication use Narrative'</span> <i>"codeMedHDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeMedHCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"medicationHistoryCode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"medicationHistoryIValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"medicationHistoryIObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"medicationHistoryIAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"medicationHistoryIRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Risk Factors</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">riskF</span><b> where </b><span style=\"color: navy\">(</span>linkId = '46467-7'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> riskF.answer first<b> as </b><span style=\"color: maroon\">aCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCC<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">, </span> eCC.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\">oCC</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCC<span style=\"color: navy\">, </span> eCC<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCC</span><span style=\"color: navy\">)</span> <i>"riskFactorsBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.category<b> as </b><span style=\"color: maroon\">catRF</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catRF.coding<b> as </b><span style=\"color: maroon\">catRFCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catRFCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"catRFSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catRFCoding.code = <span style=\"color: blue\">'social-history'</span> <i>"catRFCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catRFCoding.display = <span style=\"color: blue\">'Social History'</span> <i>"catRFDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catRFCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"riskFactorsCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCC.code<b> as </b><span style=\"color: maroon\">codeRF</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeRF.coding<b> as </b><span style=\"color: maroon\">codeRFCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeRFCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeRFSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeRFCoding.code = <span style=\"color: blue\">'46467-7'</span> <i>"codeRFCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeRFCoding.display = <span style=\"color: blue\">'Risk factors'</span> <i>"codeRFDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeRFCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"riskFactorsCode"</i><span style=\"color: navy\">;</span>\r\n aCC.value<b> as </b><span style=\"color: maroon\">textVal</span><span style=\"color: navy\"><b> -> </b></span>oCC.value = <span style=\"color: maroon\">textVal</span> <i>"riskFactorsValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"riskFactorsObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"riskFactorsAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"riskFactorsRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">───────────────────────────────────────────────────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Admissions observation templates.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">These forms carry the design's own field ids as linkIds rather than the LOINC</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">codes the rules above match on, so the linkId and the Observation.code are</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">stated separately. Everything they produce is category `exam` - a reading</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">taken at the bedside as part of assessing the patient, not a lab result and</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">not a vital sign.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">───────────────────────────────────────────────────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Pain score - pain at rest</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itPar</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'painAtRest'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itPar.answer first<b> as </b><span style=\"color: maroon\">aPar</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aPar<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">ePar</span><span style=\"color: navy\">, </span> ePar.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\">oPar</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oPar<span style=\"color: navy\">, </span> ePar<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oPar</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ePar</span><span style=\"color: navy\">)</span> <i>"painAtRestBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oPar<b> then </b>SetExamCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oPar</span><span style=\"color: navy\">)</span> <i>"painAtRestCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oPar.code<b> as </b><span style=\"color: maroon\">codePar</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codePar.coding<b> as </b><span style=\"color: maroon\">codeParCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeParCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeParSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeParCoding.code = <span style=\"color: blue\">'99302-2'</span> <i>"codeParCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeParCoding.display = <span style=\"color: blue\">'Verbal complaints while at rest'</span> <i>"codeParDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeParCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codePar"</i><span style=\"color: navy\">;</span>\r\n aPar.value<b> as </b><span style=\"color: maroon\">pv</span><span style=\"color: navy\"><b> -> </b></span>oPar.value = <span style=\"color: maroon\">pv</span> <i>"valPar"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oPar<b> then </b>SetPainBodySite<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oPar</span><span style=\"color: navy\">)</span> <i>"painAtRestSite"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"painAtRestObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"painAtRestAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"painAtRestRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Pain score - pain on movement</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itPom</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'painOnMovement'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itPom.answer first<b> as </b><span style=\"color: maroon\">aPom</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aPom<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">ePom</span><span style=\"color: navy\">, </span> ePom.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\">oPom</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oPom<span style=\"color: navy\">, </span> ePom<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oPom</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ePom</span><span style=\"color: navy\">)</span> <i>"painOnMovementBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oPom<b> then </b>SetExamCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oPom</span><span style=\"color: navy\">)</span> <i>"painOnMovementCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oPom.code<b> as </b><span style=\"color: maroon\">codePom</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codePom.coding<b> as </b><span style=\"color: maroon\">codePomCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codePomCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codePomSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codePomCoding.code = <span style=\"color: blue\">'99294-1'</span> <i>"codePomCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codePomCoding.display = <span style=\"color: blue\">'Verbal complaints during movement'</span> <i>"codePomDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codePomCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codePom"</i><span style=\"color: navy\">;</span>\r\n aPom.value<b> as </b><span style=\"color: maroon\">pv</span><span style=\"color: navy\"><b> -> </b></span>oPom.value = <span style=\"color: maroon\">pv</span> <i>"valPom"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oPom<b> then </b>SetPainBodySite<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oPom</span><span style=\"color: navy\">)</span> <i>"painOnMovementSite"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"painOnMovementObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"painOnMovementAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"painOnMovementRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Blood glucose - capillary glucose</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itCg</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'capillaryGlucose'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itCg.answer first<b> as </b><span style=\"color: maroon\">aCg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aCg<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eCg</span><span style=\"color: navy\">, </span> eCg.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\">oCg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oCg<span style=\"color: navy\">, </span> eCg<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCg</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eCg</span><span style=\"color: navy\">)</span> <i>"capillaryGlucoseBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCg<b> then </b>SetExamCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oCg</span><span style=\"color: navy\">)</span> <i>"capillaryGlucoseCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oCg.code<b> as </b><span style=\"color: maroon\">codeCg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeCg.coding<b> as </b><span style=\"color: maroon\">codeCgCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeCgCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeCgSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeCgCoding.code = <span style=\"color: blue\">'14743-9'</span> <i>"codeCgCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeCgCoding.display = <span style=\"color: blue\">'Glucose [Moles/volume] in Capillary blood by Glucometer'</span> <i>"codeCgDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeCgCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeCg"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">The answer is already a Quantity - the item is type `quantity` with</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">questionnaire-unitOption pinning mmol/L - so copy it through whole. The</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">vitals rules above rebuild a Quantity because their answers are bare</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">decimals; rebuilding here would mean restating the unit, and restating a</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">unit the client actually sent turns a wrong unit into a wrong reading.</span>\r\n aCg.value<b> as </b><span style=\"color: maroon\">gv</span><span style=\"color: navy\"><b> -> </b></span>oCg.value = <span style=\"color: maroon\">gv</span> <i>"valCg"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"capillaryGlucoseObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"capillaryGlucoseAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"capillaryGlucoseRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Blood glucose - insulin given against the reading.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">4287-9 is "Insulin regular [Mass] of Dose": PROPERTY Mass, SCALE_TYP Qn. The</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">form captures free text ("4 units Actrapid"), and insulin is dosed in</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">international units rather than by mass, so the answer lands in valueString</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">rather than the Quantity the code implies. It records what the nurse wrote,</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">which is the point; a mass in mg is not what anyone is charting.</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">itIns</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'insulinGiven'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itIns.answer first<b> as </b><span style=\"color: maroon\">aIns</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aIns<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eIns</span><span style=\"color: navy\">, </span> eIns.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\">oIns</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> oIns<span style=\"color: navy\">, </span> eIns<b> then </b>BuildBaseObs<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oIns</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eIns</span><span style=\"color: navy\">)</span> <i>"insulinGivenBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oIns<b> then </b>SetExamCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oIns</span><span style=\"color: navy\">)</span> <i>"insulinGivenCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>oIns.code<b> as </b><span style=\"color: maroon\">codeIns</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeIns.coding<b> as </b><span style=\"color: maroon\">codeInsCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>codeInsCoding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"codeInsSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeInsCoding.code = <span style=\"color: blue\">'4287-9'</span> <i>"codeInsCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>codeInsCoding.display = <span style=\"color: blue\">'Insulin regular [Mass] of Dose'</span> <i>"codeInsDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeInsCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeIns"</i><span style=\"color: navy\">;</span>\r\n aIns.value<b> as </b><span style=\"color: maroon\">iv</span><span style=\"color: navy\"><b> -> </b></span>oIns.value = <span style=\"color: maroon\">iv</span> <i>"valIns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"insulinGivenObs"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"insulinGivenAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"insulinGivenRule"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">Category `exam`, shared by every observation the admissions templates produce.</span>\r\n<b>group </b>SetExamCategory<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\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">catCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>catCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"examSys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catCoding.code = <span style=\"color: blue\">'exam'</span> <i>"examCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>catCoding.display = <span style=\"color: blue\">'Exam'</span> <i>"examDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"examCodingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"examCategory"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">The pain form asks for one site covering both scores, so it lands on each of</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">the two Observations. It is free text today, hence bodySite.text rather than a</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">coding; swap to bodySite.coding once the picker's option list is coded.</span>\r\n<b>group </b>SetPainBodySite<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\"> {\r\n</span> qr.item<b> as </b><span style=\"color: maroon\">siteItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'site'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> siteItem.answer first<b> as </b><span style=\"color: maroon\">siteAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span> siteAns.value<b> as </b><span style=\"color: maroon\">siteVal</span><span style=\"color: navy\"><b> -> </b></span>obs.bodySite<b> as </b><span style=\"color: maroon\">bs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> siteVal<span style=\"color: navy\"><b> -> </b></span>bs.text = <span style=\"color: maroon\">siteVal</span> <i>"bodySiteText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bodySite"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"siteAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"siteRule"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>BuildBaseObs<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, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</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>\r\n 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>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>obs.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">`effective`, not `effectiveDateTime`: the R5 transform engine writes choice</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">elements by their base name and rejects the typed form with "Attempt to write</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">to invalid property 'effectiveDateTime' on type Observation". The value is a</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">dateTime, so the engine picks effectiveDateTime itself.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">The admissions templates ask for the time the reading was taken, which is the</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">clinically meaningful one - a nurse writing up at the end of a round would</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">otherwise stamp every reading with the moment they saved the form. Fall back</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">to `authored` for the forms that do not ask.</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">tItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'timeTaken'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> tItem.answer first<b> as </b><span style=\"color: maroon\">tAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span> tAns.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>"effectiveFromTimeTaken"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"timeTakenAns"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"timeTakenRule"</i><span style=\"color: navy\">;</span>\r\n qr<b> where </b><span style=\"color: navy\">(</span>item.where(linkId = 'timeTaken').answer.value.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>obs.effective = <span style=\"color: maroon\">t</span> <i>"effectiveFromAuthored"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"authoredFallback"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Performer from QuestionnaireResponse.source</span>\r\n qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>obs.performer = <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\">perf</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src.reference<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\"><b> -> </b></span>perf.reference = <span style=\"color: maroon\">ref</span> <i>"perfRef"</i><span style=\"color: navy\">;</span>\r\n src.display<b> as </b><span style=\"color: maroon\">disp</span><span style=\"color: navy\"><b> -> </b></span>perf.display = <span style=\"color: maroon\">disp</span> <i>"perfDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"performer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Observation id and fullUrl</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetObservationFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"setObsIdAndFullUrl"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Bundle.entry.request (transaction POST Observation)</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">request</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>"reqMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>request.url = <span style=\"color: blue\">'Observation'</span> <i>"reqUrl"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"entryRequest"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Link Observation -> QuestionnaireResponse.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">No append: under this engine `qr.id` already resolves to the type-qualified</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">relative reference ("QuestionnaireResponse/xyz"), so prefixing it again</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">produced "QuestionnaireResponse/QuestionnaireResponse/xyz" - a reference that</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">resolves to nothing.</span>\r\n 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\">newRef</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr.id<b> as </b><span style=\"color: maroon\">qid</span><span style=\"color: navy\"><b> -> </b></span>newRef.reference = <span style=\"color: maroon\">qid</span> <i>"setQRRef"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"linkQR"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetObservationFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> obs.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Observation/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>"assignFullUrl"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractVitalSigns",
"version" : "0.1.0",
"name" : "ExtractVitalSigns",
"status" : "draft",
"date" : "2026-09-15T11:40:24+00:00",
"publisher" : "Kathurima Kimathi",
"contact" : [
{
"name" : "Kathurima Kimathi",
"telecom" : [
{
"system" : "url",
"value" : "https://www.linkedin.com/in/kathurima-kimathi/"
},
{
"system" : "email",
"value" : "kathurimakimathi415@gmail.com"
}
]
},
{
"name" : "Oscar John",
"telecom" : [
{
"system" : "email",
"value" : "oscarjohnotieno@gmail.com",
"use" : "work"
}
]
},
{
"name" : "Kennedy Omondi",
"telecom" : [
{
"system" : "email",
"value" : "kennankole@gmail.com",
"use" : "work"
}
]
}
],
"structure" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
"mode" : "source",
"alias" : "QR"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "target",
"alias" : "Bundle"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Observation",
"mode" : "target",
"alias" : "Observation"
}
],
"group" : [
{
"name" : "ExtractVitalSigns",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "bundle",
"type" : "Bundle",
"mode" : "target"
}
],
"rule" : [
{
"name" : "setBundleType",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "bundle",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueString" : "transaction"
}
]
}
]
},
{
"name" : "heightRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itH",
"condition" : "linkId = '8302-2'"
}
],
"rule" : [
{
"name" : "heightAns",
"source" : [
{
"context" : "itH",
"element" : "answer",
"listMode" : "first",
"variable" : "aH"
}
],
"rule" : [
{
"name" : "heightObs",
"source" : [
{
"context" : "aH"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eH"
},
{
"context" : "eH",
"element" : "resource",
"variable" : "oH",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "heightBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oH"
},
{
"context" : "eH"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oH"
},
{
"valueId" : "eH"
}
]
}
]
},
{
"name" : "categoryH",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oH",
"element" : "category",
"variable" : "catH"
}
],
"rule" : [
{
"name" : "catHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catH",
"element" : "coding",
"variable" : "catHCoding"
}
],
"rule" : [
{
"name" : "catHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeH",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oH",
"element" : "code",
"variable" : "codeH"
}
],
"rule" : [
{
"name" : "codeHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeH",
"element" : "coding",
"variable" : "codeHCoding"
}
],
"rule" : [
{
"name" : "codeHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8302-2"
}
]
}
]
},
{
"name" : "codeHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body Height"
}
]
}
]
}
]
}
]
},
{
"name" : "valH",
"source" : [
{
"context" : "aH",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oH",
"element" : "value",
"variable" : "vH",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vH",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vH",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vH",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "cm"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vH",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "centimeter"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "Height"
},
{
"name" : "weightRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itW",
"condition" : "linkId = '29463-7'"
}
],
"rule" : [
{
"name" : "weightAns",
"source" : [
{
"context" : "itW",
"element" : "answer",
"listMode" : "first",
"variable" : "aW"
}
],
"rule" : [
{
"name" : "weightObs",
"source" : [
{
"context" : "aW"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eW"
},
{
"context" : "eW",
"element" : "resource",
"variable" : "oW",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "weightBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oW"
},
{
"context" : "eW"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oW"
},
{
"valueId" : "eW"
}
]
}
]
},
{
"name" : "categoryW",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oW",
"element" : "category",
"variable" : "catW"
}
],
"rule" : [
{
"name" : "catWCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catW",
"element" : "coding",
"variable" : "catWCoding"
}
],
"rule" : [
{
"name" : "catWSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catWCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catWCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catWCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catWDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catWCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeW",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oW",
"element" : "code",
"variable" : "codeW"
}
],
"rule" : [
{
"name" : "codeWCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeW",
"element" : "coding",
"variable" : "codeWCoding"
}
],
"rule" : [
{
"name" : "codeWSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeWCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeWCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeWCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "29463-7"
}
]
}
]
},
{
"name" : "codeWDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeWCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body Weight"
}
]
}
]
}
]
}
]
},
{
"name" : "valW",
"source" : [
{
"context" : "aW",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oW",
"element" : "value",
"variable" : "vW",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vW",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vW",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vW",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "kg"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vW",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "kilogram"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "Weight"
},
{
"name" : "bmiRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itBmi",
"condition" : "linkId = '39156-5'"
}
],
"rule" : [
{
"name" : "bmiAns",
"source" : [
{
"context" : "itBmi",
"element" : "answer",
"listMode" : "first",
"variable" : "aBmi"
}
],
"rule" : [
{
"name" : "bmiObs",
"source" : [
{
"context" : "aBmi"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eBmi"
},
{
"context" : "eBmi",
"element" : "resource",
"variable" : "oBmi",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "bmiBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oBmi"
},
{
"context" : "eBmi"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oBmi"
},
{
"valueId" : "eBmi"
}
]
}
]
},
{
"name" : "categoryBmi",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oBmi",
"element" : "category",
"variable" : "catBmi"
}
],
"rule" : [
{
"name" : "catBmiCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBmi",
"element" : "coding",
"variable" : "catBmiCoding"
}
],
"rule" : [
{
"name" : "catBmiSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBmiCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catBmiCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBmiCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catBmiDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBmiCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeBmi",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oBmi",
"element" : "code",
"variable" : "codeBmi"
}
],
"rule" : [
{
"name" : "codeBmiCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBmi",
"element" : "coding",
"variable" : "codeBmiCoding"
}
],
"rule" : [
{
"name" : "codeBmiSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBmiCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeBmiCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBmiCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "39156-5"
}
]
}
]
},
{
"name" : "codeBmiDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBmiCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body mass index (BMI) [Ratio]"
}
]
}
]
}
]
}
]
},
{
"name" : "valBmi",
"source" : [
{
"context" : "aBmi",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oBmi",
"element" : "value",
"variable" : "vBmi",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vBmi",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vBmi",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vBmi",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "kg/m2"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vBmi",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "kilogram per square meter"
}
]
}
]
}
]
},
{
"name" : "findBmiStatus",
"source" : [
{
"context" : "itBmi",
"element" : "item",
"variable" : "bmiStatusItem",
"condition" : "linkId = '39156-5_status'"
}
],
"rule" : [
{
"name" : "setInterpBmi",
"source" : [
{
"context" : "bmiStatusItem",
"element" : "answer",
"listMode" : "first",
"variable" : "bmiStatusAns"
}
],
"target" : [
{
"context" : "oBmi",
"element" : "interpretation",
"variable" : "iBmi"
}
],
"rule" : [
{
"name" : "interpBmi",
"source" : [
{
"context" : "bmiStatusAns",
"element" : "value",
"variable" : "statusText"
}
],
"target" : [
{
"context" : "iBmi",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "statusText"
}
]
}
]
}
]
}
],
"documentation" : "Interpretation 39156-5_status"
}
]
}
]
}
],
"documentation" : "BMI"
},
{
"name" : "pulseRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itP",
"condition" : "linkId = '8889-8'"
}
],
"rule" : [
{
"name" : "pulseAns",
"source" : [
{
"context" : "itP",
"element" : "answer",
"listMode" : "first",
"variable" : "aP"
}
],
"rule" : [
{
"name" : "pulseObs",
"source" : [
{
"context" : "aP"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eP"
},
{
"context" : "eP",
"element" : "resource",
"variable" : "oP",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "pulseBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oP"
},
{
"context" : "eP"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oP"
},
{
"valueId" : "eP"
}
]
}
]
},
{
"name" : "categoryP",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oP",
"element" : "category",
"variable" : "catP"
}
],
"rule" : [
{
"name" : "catPCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catP",
"element" : "coding",
"variable" : "catPCoding"
}
],
"rule" : [
{
"name" : "catPSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catPCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catPDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeP",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oP",
"element" : "code",
"variable" : "codeP"
}
],
"rule" : [
{
"name" : "codePCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeP",
"element" : "coding",
"variable" : "codePCoding"
}
],
"rule" : [
{
"name" : "codePSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codePCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8889-8"
}
]
}
]
},
{
"name" : "codePDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Heart rate by Pulse oximetry"
}
]
}
]
}
]
}
]
},
{
"name" : "valP",
"source" : [
{
"context" : "aP",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oP",
"element" : "value",
"variable" : "vP",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vP",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vP",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vP",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "/min"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vP",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "per minute"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "Pulse"
},
{
"name" : "bpRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itBP",
"condition" : "linkId = '55284-4'"
}
],
"rule" : [
{
"name" : "bpObs",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eBP"
},
{
"context" : "eBP",
"element" : "resource",
"variable" : "oBP",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "bpBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oBP"
},
{
"context" : "eBP"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oBP"
},
{
"valueId" : "eBP"
}
]
}
]
},
{
"name" : "categoryBP",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oBP",
"element" : "category",
"variable" : "catBP"
}
],
"rule" : [
{
"name" : "catBPCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBP",
"element" : "coding",
"variable" : "catBPCoding"
}
],
"rule" : [
{
"name" : "catBPSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBPCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catBPCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBPCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catBPDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catBPCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeBP",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oBP",
"element" : "code",
"variable" : "codeBP"
}
],
"rule" : [
{
"name" : "codeBPCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBP",
"element" : "coding",
"variable" : "codeBPCoding"
}
],
"rule" : [
{
"name" : "codeBPSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBPCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeBPCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBPCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "55284-4"
}
]
}
]
},
{
"name" : "codeBPDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeBPCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Blood pressure systolic and diastolic"
}
]
}
]
}
]
}
]
},
{
"name" : "bpSysRule",
"source" : [
{
"context" : "itBP",
"element" : "item",
"variable" : "itSys",
"condition" : "linkId = '8480-6'"
}
],
"rule" : [
{
"name" : "bpSysComponent",
"source" : [
{
"context" : "itSys",
"element" : "answer",
"listMode" : "first",
"variable" : "aSys"
}
],
"target" : [
{
"context" : "oBP",
"element" : "component",
"variable" : "cSys"
}
],
"rule" : [
{
"name" : "bpSysCode",
"source" : [
{
"context" : "aSys"
}
],
"target" : [
{
"context" : "cSys",
"element" : "code",
"variable" : "bpSysCC"
}
],
"rule" : [
{
"name" : "bpSysCodingRule",
"source" : [
{
"context" : "aSys"
}
],
"target" : [
{
"context" : "bpSysCC",
"element" : "coding",
"variable" : "bpSysCoding"
}
],
"rule" : [
{
"name" : "bpSysCodingSystem",
"source" : [
{
"context" : "aSys"
}
],
"target" : [
{
"context" : "bpSysCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "bpSysCodingCode",
"source" : [
{
"context" : "aSys"
}
],
"target" : [
{
"context" : "bpSysCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8480-6"
}
]
}
]
},
{
"name" : "bpSysCodingDisplay",
"source" : [
{
"context" : "aSys"
}
],
"target" : [
{
"context" : "bpSysCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Systolic blood pressure"
}
]
}
]
}
]
}
]
},
{
"name" : "bpSysVal",
"source" : [
{
"context" : "aSys",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "cSys",
"element" : "value",
"variable" : "vSys",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vSys",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vSys",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vSys",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "mm[Hg]"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vSys",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "millimeter of mercury"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Systolic 8480-6"
},
{
"name" : "bpDiaRule",
"source" : [
{
"context" : "itBP",
"element" : "item",
"variable" : "itDia",
"condition" : "linkId = '8462-4'"
}
],
"rule" : [
{
"name" : "bpDiaComponent",
"source" : [
{
"context" : "itDia",
"element" : "answer",
"listMode" : "first",
"variable" : "aDia"
}
],
"target" : [
{
"context" : "oBP",
"element" : "component",
"variable" : "cDia"
}
],
"rule" : [
{
"name" : "bpDiaCode",
"source" : [
{
"context" : "aDia"
}
],
"target" : [
{
"context" : "cDia",
"element" : "code",
"variable" : "bpDiaCC"
}
],
"rule" : [
{
"name" : "bpDiaCodingRule",
"source" : [
{
"context" : "aDia"
}
],
"target" : [
{
"context" : "bpDiaCC",
"element" : "coding",
"variable" : "bpDiaCoding"
}
],
"rule" : [
{
"name" : "bpDiaCodingSystem",
"source" : [
{
"context" : "aDia"
}
],
"target" : [
{
"context" : "bpDiaCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "bpDiaCodingCode",
"source" : [
{
"context" : "aDia"
}
],
"target" : [
{
"context" : "bpDiaCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8462-4"
}
]
}
]
},
{
"name" : "bpDiaCodingDisplay",
"source" : [
{
"context" : "aDia"
}
],
"target" : [
{
"context" : "bpDiaCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Diastolic blood pressure"
}
]
}
]
}
]
}
]
},
{
"name" : "bpDiaVal",
"source" : [
{
"context" : "aDia",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "cDia",
"element" : "value",
"variable" : "vDia",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vDia",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vDia",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vDia",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "mm[Hg]"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vDia",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "millimeter of mercury"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Diastolic 8462-4"
}
]
}
],
"documentation" : "Blood Pressure"
},
{
"name" : "tempRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itT",
"condition" : "linkId = '8310-5'"
}
],
"rule" : [
{
"name" : "tempAns",
"source" : [
{
"context" : "itT",
"element" : "answer",
"listMode" : "first",
"variable" : "aT"
}
],
"rule" : [
{
"name" : "tempObs",
"source" : [
{
"context" : "aT"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eT"
},
{
"context" : "eT",
"element" : "resource",
"variable" : "oT",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "tempBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oT"
},
{
"context" : "eT"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oT"
},
{
"valueId" : "eT"
}
]
}
]
},
{
"name" : "categoryT",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oT",
"element" : "category",
"variable" : "catT"
}
],
"rule" : [
{
"name" : "catTCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catT",
"element" : "coding",
"variable" : "catTCoding"
}
],
"rule" : [
{
"name" : "catTSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catTCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catTCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catTCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catTDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catTCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeT",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oT",
"element" : "code",
"variable" : "codeT"
}
],
"rule" : [
{
"name" : "codeTCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeT",
"element" : "coding",
"variable" : "codeTCoding"
}
],
"rule" : [
{
"name" : "codeTSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeTCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeTCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeTCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8310-5"
}
]
}
]
},
{
"name" : "codeTDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeTCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body Temperature"
}
]
}
]
}
]
}
]
},
{
"name" : "valT",
"source" : [
{
"context" : "aT",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oT",
"element" : "value",
"variable" : "vT",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vT",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vT",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vT",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Cel"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vT",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "degree Celsius"
}
]
}
]
}
]
},
{
"name" : "findTStatus",
"source" : [
{
"context" : "itT",
"element" : "item",
"variable" : "tStatusItem",
"condition" : "linkId = '8310-5_status'"
}
],
"rule" : [
{
"name" : "setInterpT",
"source" : [
{
"context" : "tStatusItem",
"element" : "answer",
"listMode" : "first",
"variable" : "tStatusAns"
}
],
"target" : [
{
"context" : "oT",
"element" : "interpretation",
"variable" : "iT"
}
],
"rule" : [
{
"name" : "interpT",
"source" : [
{
"context" : "tStatusAns",
"element" : "value",
"variable" : "statusText"
}
],
"target" : [
{
"context" : "iT",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "statusText"
}
]
}
]
}
]
}
],
"documentation" : "Interpretation 8310-5_status"
}
]
}
]
}
],
"documentation" : "Temperature"
},
{
"name" : "spo2Rule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itO2",
"condition" : "linkId = '20564-1'"
}
],
"rule" : [
{
"name" : "spo2Ans",
"source" : [
{
"context" : "itO2",
"element" : "answer",
"listMode" : "first",
"variable" : "aO2"
}
],
"rule" : [
{
"name" : "spo2Obs",
"source" : [
{
"context" : "aO2"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eO2"
},
{
"context" : "eO2",
"element" : "resource",
"variable" : "oO2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "spo2Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oO2"
},
{
"context" : "eO2"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oO2"
},
{
"valueId" : "eO2"
}
]
}
]
},
{
"name" : "categoryO2",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oO2",
"element" : "category",
"variable" : "catO2"
}
],
"rule" : [
{
"name" : "catO2CodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catO2",
"element" : "coding",
"variable" : "catO2Coding"
}
],
"rule" : [
{
"name" : "catO2Sys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catO2Coding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catO2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catO2Coding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catO2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catO2Coding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeO2",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oO2",
"element" : "code",
"variable" : "codeO2"
}
],
"rule" : [
{
"name" : "codeO2CodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeO2",
"element" : "coding",
"variable" : "codeO2Coding"
}
],
"rule" : [
{
"name" : "codeO2Sys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeO2Coding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeO2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeO2Coding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "20564-1"
}
]
}
]
},
{
"name" : "codeO2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeO2Coding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Oxygen saturation in Blood"
}
]
}
]
}
]
}
]
},
{
"name" : "valO2",
"source" : [
{
"context" : "aO2",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oO2",
"element" : "value",
"variable" : "vO2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vO2",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vO2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vO2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "%"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vO2",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "%"
}
]
}
]
}
]
},
{
"name" : "findO2Status",
"source" : [
{
"context" : "itO2",
"element" : "item",
"variable" : "o2StatusItem",
"condition" : "linkId = '20564-1_status'"
}
],
"rule" : [
{
"name" : "setInterpO2",
"source" : [
{
"context" : "o2StatusItem",
"element" : "answer",
"listMode" : "first",
"variable" : "o2StatusAns"
}
],
"target" : [
{
"context" : "oO2",
"element" : "interpretation",
"variable" : "iO2"
}
],
"rule" : [
{
"name" : "interpO2",
"source" : [
{
"context" : "o2StatusAns",
"element" : "value",
"variable" : "statusText"
}
],
"target" : [
{
"context" : "iO2",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "statusText"
}
]
}
]
}
]
}
],
"documentation" : "Interpretation of SpO2 20564-1_status"
}
]
}
]
}
],
"documentation" : "SpO2"
},
{
"name" : "rrRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itRR",
"condition" : "linkId = '9279-1'"
}
],
"rule" : [
{
"name" : "rrAns",
"source" : [
{
"context" : "itRR",
"element" : "answer",
"listMode" : "first",
"variable" : "aRR"
}
],
"rule" : [
{
"name" : "rrObs",
"source" : [
{
"context" : "aRR"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eRR"
},
{
"context" : "eRR",
"element" : "resource",
"variable" : "oRR",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "rrBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oRR"
},
{
"context" : "eRR"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oRR"
},
{
"valueId" : "eRR"
}
]
}
]
},
{
"name" : "categoryRR",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oRR",
"element" : "category",
"variable" : "catRR"
}
],
"rule" : [
{
"name" : "catRRCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRR",
"element" : "coding",
"variable" : "catRRCoding"
}
],
"rule" : [
{
"name" : "catRRSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRRCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catRRCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRRCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catRRDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRRCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeRR",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oRR",
"element" : "code",
"variable" : "codeRR"
}
],
"rule" : [
{
"name" : "codeRRCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRR",
"element" : "coding",
"variable" : "codeRRCoding"
}
],
"rule" : [
{
"name" : "codeRRSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRRCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeRRCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRRCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "9279-1"
}
]
}
]
},
{
"name" : "codeRRDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRRCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Respiratory rate"
}
]
}
]
}
]
}
]
},
{
"name" : "valRR",
"source" : [
{
"context" : "aRR",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oRR",
"element" : "value",
"variable" : "vRR",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vRR",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vRR",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vRR",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "/min"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vRR",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "per minute"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "Respiratory rate"
},
{
"name" : "muacRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itMuac",
"condition" : "linkId = '9847-5'"
}
],
"rule" : [
{
"name" : "muacAns",
"source" : [
{
"context" : "itMuac",
"element" : "answer",
"listMode" : "first",
"variable" : "aMuac"
}
],
"rule" : [
{
"name" : "muacObs",
"source" : [
{
"context" : "aMuac"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eMuac"
},
{
"context" : "eMuac",
"element" : "resource",
"variable" : "oMuac",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "muacBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oMuac"
},
{
"context" : "eMuac"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oMuac"
},
{
"valueId" : "eMuac"
}
]
}
]
},
{
"name" : "categoryMuac",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oMuac",
"element" : "category",
"variable" : "catMuac"
}
],
"rule" : [
{
"name" : "catMuacCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMuac",
"element" : "coding",
"variable" : "catMuacCoding"
}
],
"rule" : [
{
"name" : "catMuacSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMuacCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catMuacCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMuacCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "catMuacDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMuacCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
},
{
"name" : "codeMuac",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oMuac",
"element" : "code",
"variable" : "codeMuac"
}
],
"rule" : [
{
"name" : "codeMuacCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMuac",
"element" : "coding",
"variable" : "codeMuacCoding"
}
],
"rule" : [
{
"name" : "codeMuacSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMuacCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeMuacCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMuacCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "9847-5"
}
]
}
]
},
{
"name" : "codeMuacDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMuacCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Circumference"
}
]
}
]
}
]
}
]
},
{
"name" : "valMuac",
"source" : [
{
"context" : "aMuac",
"element" : "value",
"variable" : "hv"
}
],
"target" : [
{
"context" : "oMuac",
"element" : "value",
"variable" : "vMuac",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "setVal",
"source" : [
{
"context" : "hv"
}
],
"target" : [
{
"context" : "vMuac",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "hv"
}
]
}
]
},
{
"name" : "setSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vMuac",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "setCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vMuac",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "mm"
}
]
}
]
},
{
"name" : "setUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vMuac",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "millimeter"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "MUAC"
},
{
"name" : "chiefComplaintRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itCC",
"condition" : "linkId = '10154-3'"
}
],
"rule" : [
{
"name" : "chiefComplaintAns",
"source" : [
{
"context" : "itCC",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "chiefComplaintObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "chiefComplaintBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "chiefComplaintCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catCC"
}
],
"rule" : [
{
"name" : "catCCCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCC",
"element" : "coding",
"variable" : "catCCCoding"
}
],
"rule" : [
{
"name" : "catCCSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCCCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catCCCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCCCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "social-history"
}
]
}
]
},
{
"name" : "catCCDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCCCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social History"
}
]
}
]
}
]
}
]
},
{
"name" : "chiefComplaintCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codeCC"
}
],
"rule" : [
{
"name" : "codeCCCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCC",
"element" : "coding",
"variable" : "codeCCCoding"
}
],
"rule" : [
{
"name" : "codeCCSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCCCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeCCCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCCCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "10154-3"
}
]
}
]
},
{
"name" : "codeCCDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCCCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Chief complaint Narrative - Reported"
}
]
}
]
}
]
}
]
},
{
"name" : "chiefComplaintValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Chief Complaint"
},
{
"name" : "historyOfPIRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "hpiCC",
"condition" : "linkId = '8684-3'"
}
],
"rule" : [
{
"name" : "historyOfPIAns",
"source" : [
{
"context" : "hpiCC",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "historyOfPIObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "historyOfPIBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "historyOfPICategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catHPI"
}
],
"rule" : [
{
"name" : "catHPICodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHPI",
"element" : "coding",
"variable" : "catHPICoding"
}
],
"rule" : [
{
"name" : "catHPISys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHPICoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catHPICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHPICoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "social-history"
}
]
}
]
},
{
"name" : "catHPIDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catHPICoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social History"
}
]
}
]
}
]
}
]
},
{
"name" : "historyOfPICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codeHPI"
}
],
"rule" : [
{
"name" : "codeHPICodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHPI",
"element" : "coding",
"variable" : "codeHPICoding"
}
],
"rule" : [
{
"name" : "codeHPISys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHPICoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeHPICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHPICoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8684-3"
}
]
}
]
},
{
"name" : "codeHPIDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeHPICoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of Present illness"
}
]
}
]
}
]
}
]
},
{
"name" : "historyOfPIValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "History of Presenting Illness"
},
{
"name" : "historyOfPastIRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "hPastCC",
"condition" : "linkId = '11349-8'"
}
],
"rule" : [
{
"name" : "historyOfPastIAns",
"source" : [
{
"context" : "hPastCC",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "historyOfPastIObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "historyOfPastIBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "historyOfPastICategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catPastI"
}
],
"rule" : [
{
"name" : "catPastICodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPastI",
"element" : "coding",
"variable" : "catPastICoding"
}
],
"rule" : [
{
"name" : "catPastISys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPastICoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catPastICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPastICoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "social-history"
}
]
}
]
},
{
"name" : "catPastIDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catPastICoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social History"
}
]
}
]
}
]
}
]
},
{
"name" : "historyOfPastICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codePastI"
}
],
"rule" : [
{
"name" : "codePastICodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePastI",
"element" : "coding",
"variable" : "codePastICoding"
}
],
"rule" : [
{
"name" : "codePastISys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePastICoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codePastICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePastICoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "11349-8"
}
]
}
]
},
{
"name" : "codePastIDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePastICoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of Past illness"
}
]
}
]
}
]
}
]
},
{
"name" : "historyOfPastIValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "History of Past Illness / Past Medical History"
},
{
"name" : "familyHIRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "hFH",
"condition" : "linkId = '8670-2'"
}
],
"rule" : [
{
"name" : "familyHIAns",
"source" : [
{
"context" : "hFH",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "familyHIObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "familyFHIBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "familyHICategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catFH"
}
],
"rule" : [
{
"name" : "catFHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catFH",
"element" : "coding",
"variable" : "catFHCoding"
}
],
"rule" : [
{
"name" : "catFHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catFHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catFHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catFHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "social-history"
}
]
}
]
},
{
"name" : "catFHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catFHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social History"
}
]
}
]
}
]
}
]
},
{
"name" : "familyHICode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codeFH"
}
],
"rule" : [
{
"name" : "codeFHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeFH",
"element" : "coding",
"variable" : "codeFHCoding"
}
],
"rule" : [
{
"name" : "codeFHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeFHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeFHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeFHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8670-2"
}
]
}
]
},
{
"name" : "codeFHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeFHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of family member diseases"
}
]
}
]
}
]
}
]
},
{
"name" : "familyHIValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Family History"
},
{
"name" : "socialHistoryIRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "hSH",
"condition" : "linkId = '29762-2'"
}
],
"rule" : [
{
"name" : "socialHistoryIAns",
"source" : [
{
"context" : "hSH",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "socialHistoryIObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "socialHistoryIBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "socialHistoryCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catSH"
}
],
"rule" : [
{
"name" : "catSHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catSH",
"element" : "coding",
"variable" : "catSHCoding"
}
],
"rule" : [
{
"name" : "catSHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catSHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catSHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catSHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "social-history"
}
]
}
]
},
{
"name" : "catSHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catSHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social History"
}
]
}
]
}
]
}
]
},
{
"name" : "socialHistoryCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codeSH"
}
],
"rule" : [
{
"name" : "codeSHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeSH",
"element" : "coding",
"variable" : "codeSHCoding"
}
],
"rule" : [
{
"name" : "codeSHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeSHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeSHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeSHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "29762-2"
}
]
}
]
},
{
"name" : "codeSHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeSHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social history note"
}
]
}
]
}
]
}
]
},
{
"name" : "socialHistoryIValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Social History"
},
{
"name" : "medicationHistoryIRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "medicationH",
"condition" : "linkId = '10160-0'"
}
],
"rule" : [
{
"name" : "medicationHistoryIAns",
"source" : [
{
"context" : "medicationH",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "medicationHistoryIObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "medicationHIBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "medicationHCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catMedH"
}
],
"rule" : [
{
"name" : "catMedHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMedH",
"element" : "coding",
"variable" : "catMedHCoding"
}
],
"rule" : [
{
"name" : "catMedHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMedHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catMedHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMedHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "therapy"
}
]
}
]
},
{
"name" : "catMedHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catMedHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Therapy"
}
]
}
]
}
]
}
]
},
{
"name" : "medicationHistoryCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codeMedH"
}
],
"rule" : [
{
"name" : "codeMedHCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMedH",
"element" : "coding",
"variable" : "codeMedHCoding"
}
],
"rule" : [
{
"name" : "codeMedHSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMedHCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeMedHCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMedHCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "10160-0"
}
]
}
]
},
{
"name" : "codeMedHDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeMedHCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of Medication use Narrative"
}
]
}
]
}
]
}
]
},
{
"name" : "medicationHistoryIValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Medication History"
},
{
"name" : "riskFactorsRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "riskF",
"condition" : "linkId = '46467-7'"
}
],
"rule" : [
{
"name" : "riskFactorsAns",
"source" : [
{
"context" : "riskF",
"element" : "answer",
"listMode" : "first",
"variable" : "aCC"
}
],
"rule" : [
{
"name" : "riskFactorsObs",
"source" : [
{
"context" : "aCC"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCC"
},
{
"context" : "eCC",
"element" : "resource",
"variable" : "oCC",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "riskFactorsBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC"
},
{
"context" : "eCC"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCC"
},
{
"valueId" : "eCC"
}
]
}
]
},
{
"name" : "riskFactorsCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "category",
"variable" : "catRF"
}
],
"rule" : [
{
"name" : "catRFCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRF",
"element" : "coding",
"variable" : "catRFCoding"
}
],
"rule" : [
{
"name" : "catRFSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRFCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "catRFCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRFCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "social-history"
}
]
}
]
},
{
"name" : "catRFDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catRFCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social History"
}
]
}
]
}
]
}
]
},
{
"name" : "riskFactorsCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCC",
"element" : "code",
"variable" : "codeRF"
}
],
"rule" : [
{
"name" : "codeRFCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRF",
"element" : "coding",
"variable" : "codeRFCoding"
}
],
"rule" : [
{
"name" : "codeRFSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRFCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeRFCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRFCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "46467-7"
}
]
}
]
},
{
"name" : "codeRFDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeRFCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Risk factors"
}
]
}
]
}
]
}
]
},
{
"name" : "riskFactorsValue",
"source" : [
{
"context" : "aCC",
"element" : "value",
"variable" : "textVal"
}
],
"target" : [
{
"context" : "oCC",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "textVal"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Risk Factors"
},
{
"name" : "painAtRestRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itPar",
"condition" : "linkId = 'painAtRest'"
}
],
"rule" : [
{
"name" : "painAtRestAns",
"source" : [
{
"context" : "itPar",
"element" : "answer",
"listMode" : "first",
"variable" : "aPar"
}
],
"rule" : [
{
"name" : "painAtRestObs",
"source" : [
{
"context" : "aPar"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "ePar"
},
{
"context" : "ePar",
"element" : "resource",
"variable" : "oPar",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "painAtRestBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPar"
},
{
"context" : "ePar"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oPar"
},
{
"valueId" : "ePar"
}
]
}
]
},
{
"name" : "painAtRestCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPar"
}
],
"dependent" : [
{
"name" : "SetExamCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oPar"
}
]
}
]
},
{
"name" : "codePar",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPar",
"element" : "code",
"variable" : "codePar"
}
],
"rule" : [
{
"name" : "codeParCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePar",
"element" : "coding",
"variable" : "codeParCoding"
}
],
"rule" : [
{
"name" : "codeParSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeParCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeParCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeParCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "99302-2"
}
]
}
]
},
{
"name" : "codeParDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeParCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Verbal complaints while at rest"
}
]
}
]
}
]
}
]
},
{
"name" : "valPar",
"source" : [
{
"context" : "aPar",
"element" : "value",
"variable" : "pv"
}
],
"target" : [
{
"context" : "oPar",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "pv"
}
]
}
]
},
{
"name" : "painAtRestSite",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPar"
}
],
"dependent" : [
{
"name" : "SetPainBodySite",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oPar"
}
]
}
]
}
]
}
]
}
],
"documentation" : "───────────────────────────────────────────────────────────────────────────\r\nAdmissions observation templates.\r\nThese forms carry the design's own field ids as linkIds rather than the LOINC\r\ncodes the rules above match on, so the linkId and the Observation.code are\r\nstated separately. Everything they produce is category `exam` - a reading\r\ntaken at the bedside as part of assessing the patient, not a lab result and\r\nnot a vital sign.\r\n───────────────────────────────────────────────────────────────────────────\r\nPain score - pain at rest"
},
{
"name" : "painOnMovementRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itPom",
"condition" : "linkId = 'painOnMovement'"
}
],
"rule" : [
{
"name" : "painOnMovementAns",
"source" : [
{
"context" : "itPom",
"element" : "answer",
"listMode" : "first",
"variable" : "aPom"
}
],
"rule" : [
{
"name" : "painOnMovementObs",
"source" : [
{
"context" : "aPom"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "ePom"
},
{
"context" : "ePom",
"element" : "resource",
"variable" : "oPom",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "painOnMovementBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPom"
},
{
"context" : "ePom"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oPom"
},
{
"valueId" : "ePom"
}
]
}
]
},
{
"name" : "painOnMovementCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPom"
}
],
"dependent" : [
{
"name" : "SetExamCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oPom"
}
]
}
]
},
{
"name" : "codePom",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPom",
"element" : "code",
"variable" : "codePom"
}
],
"rule" : [
{
"name" : "codePomCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePom",
"element" : "coding",
"variable" : "codePomCoding"
}
],
"rule" : [
{
"name" : "codePomSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePomCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codePomCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePomCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "99294-1"
}
]
}
]
},
{
"name" : "codePomDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codePomCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Verbal complaints during movement"
}
]
}
]
}
]
}
]
},
{
"name" : "valPom",
"source" : [
{
"context" : "aPom",
"element" : "value",
"variable" : "pv"
}
],
"target" : [
{
"context" : "oPom",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "pv"
}
]
}
]
},
{
"name" : "painOnMovementSite",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oPom"
}
],
"dependent" : [
{
"name" : "SetPainBodySite",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oPom"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Pain score - pain on movement"
},
{
"name" : "capillaryGlucoseRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itCg",
"condition" : "linkId = 'capillaryGlucose'"
}
],
"rule" : [
{
"name" : "capillaryGlucoseAns",
"source" : [
{
"context" : "itCg",
"element" : "answer",
"listMode" : "first",
"variable" : "aCg"
}
],
"rule" : [
{
"name" : "capillaryGlucoseObs",
"source" : [
{
"context" : "aCg"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eCg"
},
{
"context" : "eCg",
"element" : "resource",
"variable" : "oCg",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "capillaryGlucoseBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCg"
},
{
"context" : "eCg"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCg"
},
{
"valueId" : "eCg"
}
]
}
]
},
{
"name" : "capillaryGlucoseCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCg"
}
],
"dependent" : [
{
"name" : "SetExamCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oCg"
}
]
}
]
},
{
"name" : "codeCg",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oCg",
"element" : "code",
"variable" : "codeCg"
}
],
"rule" : [
{
"name" : "codeCgCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCg",
"element" : "coding",
"variable" : "codeCgCoding"
}
],
"rule" : [
{
"name" : "codeCgSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCgCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeCgCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCgCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "14743-9"
}
]
}
]
},
{
"name" : "codeCgDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeCgCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Glucose [Moles/volume] in Capillary blood by Glucometer"
}
]
}
]
}
]
}
]
},
{
"name" : "valCg",
"source" : [
{
"context" : "aCg",
"element" : "value",
"variable" : "gv"
}
],
"target" : [
{
"context" : "oCg",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "gv"
}
]
}
],
"documentation" : "The answer is already a Quantity - the item is type `quantity` with\r\nquestionnaire-unitOption pinning mmol/L - so copy it through whole. The\r\nvitals rules above rebuild a Quantity because their answers are bare\r\ndecimals; rebuilding here would mean restating the unit, and restating a\r\nunit the client actually sent turns a wrong unit into a wrong reading."
}
]
}
]
}
],
"documentation" : "Blood glucose - capillary glucose"
},
{
"name" : "insulinGivenRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "itIns",
"condition" : "linkId = 'insulinGiven'"
}
],
"rule" : [
{
"name" : "insulinGivenAns",
"source" : [
{
"context" : "itIns",
"element" : "answer",
"listMode" : "first",
"variable" : "aIns"
}
],
"rule" : [
{
"name" : "insulinGivenObs",
"source" : [
{
"context" : "aIns"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eIns"
},
{
"context" : "eIns",
"element" : "resource",
"variable" : "oIns",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "insulinGivenBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oIns"
},
{
"context" : "eIns"
}
],
"dependent" : [
{
"name" : "BuildBaseObs",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oIns"
},
{
"valueId" : "eIns"
}
]
}
]
},
{
"name" : "insulinGivenCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oIns"
}
],
"dependent" : [
{
"name" : "SetExamCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "oIns"
}
]
}
]
},
{
"name" : "codeIns",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "oIns",
"element" : "code",
"variable" : "codeIns"
}
],
"rule" : [
{
"name" : "codeInsCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeIns",
"element" : "coding",
"variable" : "codeInsCoding"
}
],
"rule" : [
{
"name" : "codeInsSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeInsCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "codeInsCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeInsCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "4287-9"
}
]
}
]
},
{
"name" : "codeInsDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "codeInsCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Insulin regular [Mass] of Dose"
}
]
}
]
}
]
}
]
},
{
"name" : "valIns",
"source" : [
{
"context" : "aIns",
"element" : "value",
"variable" : "iv"
}
],
"target" : [
{
"context" : "oIns",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "iv"
}
]
}
]
}
]
}
]
}
],
"documentation" : "Blood glucose - insulin given against the reading.\r\n4287-9 is \"Insulin regular [Mass] of Dose\": PROPERTY Mass, SCALE_TYP Qn. The\r\nform captures free text (\"4 units Actrapid\"), and insulin is dosed in\r\ninternational units rather than by mass, so the answer lands in valueString\r\nrather than the Quantity the code implies. It records what the nurse wrote,\r\nwhich is the point; a mass in mg is not what anyone is charting."
}
]
},
{
"name" : "SetExamCategory",
"documentation" : "Category `exam`, shared by every observation the admissions templates produce.",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "examCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "examCodingRule",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "catCoding"
}
],
"rule" : [
{
"name" : "examSys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCoding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "examCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCoding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "exam"
}
]
}
]
},
{
"name" : "examDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "catCoding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Exam"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "SetPainBodySite",
"documentation" : "The pain form asks for one site covering both scores, so it lands on each of\r\nthe two Observations. It is free text today, hence bodySite.text rather than a\r\ncoding; swap to bodySite.coding once the picker's option list is coded.",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "siteRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "siteItem",
"condition" : "linkId = 'site'"
}
],
"rule" : [
{
"name" : "siteAns",
"source" : [
{
"context" : "siteItem",
"element" : "answer",
"listMode" : "first",
"variable" : "siteAns"
}
],
"rule" : [
{
"name" : "bodySite",
"source" : [
{
"context" : "siteAns",
"element" : "value",
"variable" : "siteVal"
}
],
"target" : [
{
"context" : "obs",
"element" : "bodySite",
"variable" : "bs"
}
],
"rule" : [
{
"name" : "bodySiteText",
"source" : [
{
"context" : "siteVal"
}
],
"target" : [
{
"context" : "bs",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "siteVal"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "BuildBaseObs",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "status",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "final"
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "obs",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "encounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "obs",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "timeTakenRule",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "tItem",
"condition" : "linkId = 'timeTaken'"
}
],
"rule" : [
{
"name" : "timeTakenAns",
"source" : [
{
"context" : "tItem",
"element" : "answer",
"listMode" : "first",
"variable" : "tAns"
}
],
"rule" : [
{
"name" : "effectiveFromTimeTaken",
"source" : [
{
"context" : "tAns",
"element" : "value",
"variable" : "tv"
}
],
"target" : [
{
"context" : "obs",
"element" : "effective",
"transform" : "copy",
"parameter" : [
{
"valueId" : "tv"
}
]
}
]
}
]
}
],
"documentation" : "`effective`, not `effectiveDateTime`: the R5 transform engine writes choice\r\nelements by their base name and rejects the typed form with \"Attempt to write\r\nto invalid property 'effectiveDateTime' on type Observation\". The value is a\r\ndateTime, so the engine picks effectiveDateTime itself.\r\nThe admissions templates ask for the time the reading was taken, which is the\r\nclinically meaningful one - a nurse writing up at the end of a round would\r\notherwise stamp every reading with the moment they saved the form. Fall back\r\nto `authored` for the forms that do not ask."
},
{
"name" : "authoredFallback",
"source" : [
{
"context" : "qr",
"condition" : "item.where(linkId = 'timeTaken').answer.value.exists().not()"
}
],
"rule" : [
{
"name" : "effectiveFromAuthored",
"source" : [
{
"context" : "qr",
"element" : "authored",
"variable" : "t"
}
],
"target" : [
{
"context" : "obs",
"element" : "effective",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
}
]
},
{
"name" : "performer",
"source" : [
{
"context" : "qr",
"element" : "source",
"variable" : "src"
}
],
"target" : [
{
"context" : "obs",
"element" : "performer",
"variable" : "perf",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
}
],
"rule" : [
{
"name" : "perfRef",
"source" : [
{
"context" : "src",
"element" : "reference",
"variable" : "ref"
}
],
"target" : [
{
"context" : "perf",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ref"
}
]
}
]
},
{
"name" : "perfDisplay",
"source" : [
{
"context" : "src",
"element" : "display",
"variable" : "disp"
}
],
"target" : [
{
"context" : "perf",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueId" : "disp"
}
]
}
]
}
],
"documentation" : "Performer from QuestionnaireResponse.source"
},
{
"name" : "setObsIdAndFullUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "id",
"transform" : "uuid"
}
],
"dependent" : [
{
"name" : "SetObservationFullUrl",
"parameter" : [
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
],
"documentation" : "Observation id and fullUrl"
},
{
"name" : "entryRequest",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "request"
}
],
"rule" : [
{
"name" : "reqMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "reqUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
]
}
],
"documentation" : "Bundle.entry.request (transaction POST Observation)"
},
{
"name" : "linkQR",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "derivedFrom",
"variable" : "newRef",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
}
],
"rule" : [
{
"name" : "setQRRef",
"source" : [
{
"context" : "qr",
"element" : "id",
"variable" : "qid"
}
],
"target" : [
{
"context" : "newRef",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueId" : "qid"
}
]
}
]
}
],
"documentation" : "Link Observation -> QuestionnaireResponse.\r\nNo append: under this engine `qr.id` already resolves to the type-qualified\r\nrelative reference (\"QuestionnaireResponse/xyz\"), so prefixing it again\r\nproduced \"QuestionnaireResponse/QuestionnaireResponse/xyz\" - a reference that\r\nresolves to nothing."
}
]
},
{
"name" : "SetObservationFullUrl",
"input" : [
{
"name" : "obs",
"type" : "Observation",
"mode" : "source"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "assignFullUrl",
"source" : [
{
"context" : "obs",
"element" : "id",
"variable" : "id"
}
],
"target" : [
{
"context" : "entry",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Observation/"
},
{
"valueId" : "id"
}
]
}
]
}
]
}
]
}