{
  "resourceType" : "StructureMap",
  "id" : "ExtractInpatientFallsAndPressureUlcerRiskAssessment",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ExtractInpatientFallsAndPressureUlcerRiskAssessment</b></p><a name=\"ExtractInpatientFallsAndPressureUlcerRiskAssessment\"> </a><a name=\"hcExtractInpatientFallsAndPressureUlcerRiskAssessment\"> </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/ExtractInpatientFallsAndPressureUlcerRiskAssessment'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ExtractInpatientFallsAndPressureUlcerRiskAssessment'</span>\r\n<span style=\"color: #cc00cc\">/// <b>title</b> = </span><span style=\"color: blue\">'Inpatient Falls and Pressure Ulcer Risk Assessment Extraction'</span>\r\n<span style=\"color: #cc00cc\">/// <b>status</b> = </span><span style=\"color: blue\">'active'</span>\r\n<span style=\"color: #cc00cc\">/// <b>description</b> = </span><span style=\"color: blue\">'Two scored instruments out. Braden becomes one Observation carrying the total with its six sub-scores as components, plus a RiskAssessment for the band; the falls score -- which is the Morse Fall Scale item for item -- becomes the same shape against the LOINC Morse panel. The measures put in place become a CarePlan. A total is only emitted when every sub-score has been answered: a Braden computed from four of six items is not a Braden score, and banding one would put a number a nurse can act on next to a risk tier that is wrong.'</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">&quot; </span><b>alias </b>QR <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">&quot; </span><b>alias </b>Bundle <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">&quot; </span><b>alias </b>Observation <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/riskassessment.html\" title=\"RiskAssessment\">http://hl7.org/fhir/StructureDefinition/RiskAssessment</a><span style=\"color: navy\">&quot; </span><b>alias </b>RiskAssessment <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/careplan.html\" title=\"CarePlan\">http://hl7.org/fhir/StructureDefinition/CarePlan</a><span style=\"color: navy\">&quot; </span><b>alias </b>CarePlan <b>as </b><b>target</b>\r\n\r\n<b>group </b>ExtractInpatientFallsAndPressureUlcerRiskAssessment<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> -&gt; </b></span>bundle.type = <span style=\"color: blue\">'transaction'</span> <i>&quot;setBundleType&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── Braden pressure ulcer risk ─────────────────────────────────────────────</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">gB</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden') and item.answer.value.ofType(Coding).exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    gB<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryB</span><span style=\"color: navy\">, </span> entryB.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\">obsB</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obsB<span style=\"color: navy\">, </span> entryB<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsB</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryB</span><span style=\"color: navy\">)</span> <i>&quot;bradenBase&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obsB<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsB</span><span style=\"color: navy\">)</span> <i>&quot;bradenCategory&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obsB.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38227-5'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Braden scale total score'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenCode&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">// </span><span style=\"color: green\">The submitted total wins; otherwise sum the answers. Every scored answer</span>\r\n      <span style=\"color: navy\">// </span><span style=\"color: green\">in SGHIClinicalScoreCodeSystem ends in its own weight -- braden-sensory-3</span>\r\n      <span style=\"color: navy\">// </span><span style=\"color: green\">is worth 3 -- so the fallback reads the weight off the code. Both paths</span>\r\n      <span style=\"color: navy\">// </span><span style=\"color: green\">are the arithmetic the questionnaire's calculatedExpression performs, so</span>\r\n      <span style=\"color: navy\">// </span><span style=\"color: green\">they cannot disagree. Guarded on all six sub-scores being present.</span>\r\n      gB<b> where </b><span style=\"color: navy\">(</span>item.answer.value.ofType(Coding).count() = 6<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        gB<span style=\"color: navy\"><b> -&gt; </b></span>obsB.value = evaluate<span style=\"color: navy\">(</span>gB<span style=\"color: navy\">, </span>iif(item.where(linkId = 'braden.total').answer.value.exists(), item.where(linkId = 'braden.total').answer.value, item.answer.value.ofType(Coding).code.select($this.split('-').last().toInteger()).aggregate($this + $total, 0))<span style=\"color: navy\">)</span> <i>&quot;bradenTotalValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenTotalRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gB.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden.sensory') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsB.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38222-6'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Sensory perception Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;sensoryCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;sensoryValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenSensoryRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gB.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden.moisture') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsB.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38229-1'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Moisture exposure Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;moistureCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;moistureValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenMoistureRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gB.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden.activity') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsB.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38223-4'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Physical activity Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;activityCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;activityValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenActivityRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gB.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden.mobility') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsB.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38224-2'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Physical mobility Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;mobilityCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;mobilityValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenMobilityRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gB.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden.nutrition') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsB.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38225-9'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Nutrition intake pattern Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;nutritionCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;nutritionValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenNutritionRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gB.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'braden.friction') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsB.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'38226-7'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Friction and shear Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;frictionCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;frictionValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bradenFrictionRule&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span> obsB<span style=\"color: navy\">, </span> bundle<b> then </b>AddBradenRiskAssessment<span style=\"color: navy\">(</span><span style=\"color: maroon\">obsB</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">)</span> <i>&quot;bradenBand&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;bradenObservation&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bradenRule&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── Falls risk (Morse Fall Scale) ──────────────────────────────────────────</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">gF</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk') and item.answer.value.ofType(Coding).exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    gF<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryF</span><span style=\"color: navy\">, </span> entryF.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\">obsF</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obsF<span style=\"color: navy\">, </span> entryF<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsF</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryF</span><span style=\"color: navy\">)</span> <i>&quot;fallsBase&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obsF<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsF</span><span style=\"color: navy\">)</span> <i>&quot;fallsCategory&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obsF.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59460-6'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Fall risk total [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsCode&quot;</i><span style=\"color: navy\">;</span>\r\n      gF<b> where </b><span style=\"color: navy\">(</span>item.answer.value.ofType(Coding).count() = 6<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        gF<span style=\"color: navy\"><b> -&gt; </b></span>obsF.value = evaluate<span style=\"color: navy\">(</span>gF<span style=\"color: navy\">, </span>iif(item.where(linkId = 'fallsRisk.total').answer.value.exists(), item.where(linkId = 'fallsRisk.total').answer.value, item.answer.value.ofType(Coding).code.select($this.split('-').last().toInteger()).aggregate($this + $total, 0))<span style=\"color: navy\">)</span> <i>&quot;fallsTotalValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsTotalRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gF.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk.history') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsF.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59454-9'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'History of falling; immediate or within 3 months [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;historyCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;historyValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsHistoryRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gF.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk.diagnoses') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsF.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59455-6'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Secondary diagnosis is present'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;diagnosesCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;diagnosesValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsDiagnosesRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gF.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk.aid') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsF.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59456-4'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Ambulatory aid [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;aidCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;aidValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsAidRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gF.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk.iv') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsF.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59457-2'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Intravenous apparatus [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;ivCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;ivValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsIvRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gF.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk.gait') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsF.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59458-0'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Gait [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;gaitCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;gaitValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsGaitRule&quot;</i><span style=\"color: navy\">;</span>\r\n      gF.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'fallsRisk.mental') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obsF.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59459-8'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Mental status [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;mentalCode&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;mentalValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;fallsMentalRule&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span> obsF<span style=\"color: navy\">, </span> bundle<b> then </b>AddFallsRiskAssessment<span style=\"color: navy\">(</span><span style=\"color: maroon\">obsF</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">)</span> <i>&quot;fallsBand&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;fallsObservation&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;fallsRiskRule&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── Measures in place ──────────────────────────────────────────────────────</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">itM</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'measures') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    itM.answer first<b> as </b><span style=\"color: maroon\">aM</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      aM<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryC</span><span style=\"color: navy\">, </span> entryC.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CarePlan'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">plan</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>plan.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetCarePlanFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">plan</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryC</span><span style=\"color: navy\">)</span> <i>&quot;idAndFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>entryC.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> -&gt; </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>&quot;requestMethod&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>request.url = <span style=\"color: blue\">'CarePlan'</span> <i>&quot;requestUrl&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;entryRequest&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>plan.status = <span style=\"color: blue\">'active'</span> <i>&quot;status&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>plan.intent = <span style=\"color: blue\">'plan'</span> <i>&quot;intent&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>plan.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> -&gt; </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/inpatient-clinical-concept-codesystem'</span> <i>&quot;categorySystem&quot;</i><span style=\"color: navy\">;</span>\r\n            qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'falls-prevention-plan'</span> <i>&quot;categoryCode&quot;</i><span style=\"color: navy\">;</span>\r\n            qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Falls and pressure ulcer prevention measures'</span> <i>&quot;categoryDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;categoryCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>plan.title = <span style=\"color: blue\">'Falls and pressure ulcer prevention measures'</span> <i>&quot;title&quot;</i><span style=\"color: navy\">;</span>\r\n        aM.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>plan.description = <span style=\"color: maroon\">v</span> <i>&quot;description&quot;</i><span style=\"color: navy\">;</span>\r\n        qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span>plan.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> -&gt; </b></span>plan.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n        qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -&gt; </b></span>plan.created = <span style=\"color: maroon\">t</span> <i>&quot;created&quot;</i><span style=\"color: navy\">;</span>\r\n        qr.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>plan.contributor = <span style=\"color: maroon\">a</span> <i>&quot;contributorFromAuthor&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<b> where </b><span style=\"color: navy\">(</span>author.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -&gt; </b></span>plan.contributor = <span style=\"color: maroon\">src</span> <i>&quot;contributorFromSource&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;contributorFallback&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>plan.supportingInfo = <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\">ref</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> -&gt; </b></span>ref.reference = <span style=\"color: maroon\">qid</span> <i>&quot;supportingInfoRef&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;linkQuestionnaireResponse&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;carePlan&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;measuresAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;measuresRule&quot;</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\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Risk bands</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Braden (Bergstrom): 19 and over no risk, 15-18 mild, 13-14 moderate, 10-12</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">high, 9 and under very high. Lower is worse.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Morse (Morse, Preventing Patient Falls): 0-24 no risk, 25-50 low, 51 and over</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">high. Higher is worse.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">The published band is the text; the coding is HL7's risk-probability, which</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">has five concepts and so collapses Braden's &quot;very high&quot; and &quot;high&quot; onto one</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">code. Consumers that need the exact tier read the text, consumers that need</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">to escalate read the code.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<b>group </b>AddBradenRiskAssessment<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <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>  obs<b> where </b><span style=\"color: navy\">(</span>value.ofType(integer) &lt;= 9<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetBradenRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'high'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'High likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'Very high risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bradenVeryHigh&quot;</i><span style=\"color: navy\">;</span>\r\n  obs<b> where </b><span style=\"color: navy\">(</span>(value.ofType(integer) &gt;= 10) and (value.ofType(integer) &lt;= 12)<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetBradenRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'high'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'High likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'High risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bradenHigh&quot;</i><span style=\"color: navy\">;</span>\r\n  obs<b> where </b><span style=\"color: navy\">(</span>(value.ofType(integer) &gt;= 13) and (value.ofType(integer) &lt;= 14)<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetBradenRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'moderate'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Moderate likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'Moderate risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bradenModerate&quot;</i><span style=\"color: navy\">;</span>\r\n  obs<b> where </b><span style=\"color: navy\">(</span>(value.ofType(integer) &gt;= 15) and (value.ofType(integer) &lt;= 18)<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetBradenRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'low'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Low likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'Mild risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bradenMild&quot;</i><span style=\"color: navy\">;</span>\r\n  obs<b> where </b><span style=\"color: navy\">(</span>value.ofType(integer) &gt;= 19<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetBradenRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'negligible'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Negligible likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'No risk identified'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bradenNoRisk&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetBradenRiskCode<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\">ra</span><span style=\"color: navy\"> : </span>RiskAssessment<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'81636-3'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Pressure injury risk level Braden scale'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>AddFallsRiskAssessment<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <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>  obs<b> where </b><span style=\"color: navy\">(</span>value.ofType(integer) &lt;= 24<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetFallsRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'negligible'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Negligible likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'No risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;fallsNoRisk&quot;</i><span style=\"color: navy\">;</span>\r\n  obs<b> where </b><span style=\"color: navy\">(</span>(value.ofType(integer) &gt;= 25) and (value.ofType(integer) &lt;= 50)<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetFallsRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'low'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Low likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'Low risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;fallsLow&quot;</i><span style=\"color: navy\">;</span>\r\n  obs<b> where </b><span style=\"color: navy\">(</span>value.ofType(integer) &gt;= 51<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RiskAssessment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ra</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> ra<span style=\"color: navy\">, </span> entry<b> then </b>BuildRiskBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;riskBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra<b> then </b>SetFallsRiskCode<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">)</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.prediction<b> as </b><span style=\"color: maroon\">pred</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>pred.qualitativeRisk<b> as </b><span style=\"color: maroon\">risk</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/risk-probability'</span> <i>&quot;riskSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'high'</span> <i>&quot;riskCode&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'High likelihood'</span> <i>&quot;riskDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;riskCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>risk.text = <span style=\"color: blue\">'High risk'</span> <i>&quot;riskText&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;qualitativeRisk&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;prediction&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;fallsHigh&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetFallsRiskCode<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\">ra</span><span style=\"color: navy\"> : </span>RiskAssessment<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59461-4'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Fall risk level [Morse Fall Scale]'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;code&quot;</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\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Shared scaffolding. Repeated in each map rather than imported: the transform</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">engine resolves `imports` against whatever StructureMaps happen to be on the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">server, and a form that stops extracting because a shared map was not</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">uploaded is a worse failure than a duplicated group.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Two notes on what the publisher's StructureMap validator says about this file.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Source parameters below are left untyped on purpose. Writing `: Element` makes</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">the validator compare QuestionnaireResponse.item against the literal 'Element'</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">and report them as incompatible with each other, which is noise, not a finding.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Untyped, it says only that it cannot check the paths.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">`evaluate(context, expression)` is flagged as &quot;takes 1 parameter but 2 were</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">found&quot;. Leave it. The FML parser in the same jar refuses the one-argument form</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">outright -- it wants a parameter, a comma, then the FHIRPath -- so the publisher</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">is objecting to what its own compiler emits. Two arguments is the only form that</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">compiles, and it is what the R5 transform engine executes.</span>\r\n<b>group </b>BuildObsBase<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> -&gt; </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>&quot;idAndFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </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> -&gt; </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>&quot;requestMethod&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>request.url = <span style=\"color: blue\">'Observation'</span> <i>&quot;requestUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;entryRequest&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>&quot;status&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </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> -&gt; </b></span>obs.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n  qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.effective = <span style=\"color: maroon\">t</span> <i>&quot;effective&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.performer = <span style=\"color: maroon\">src</span> <i>&quot;performerFromSource&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<b> where </b><span style=\"color: navy\">(</span>source.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.performer = <span style=\"color: maroon\">a</span> <i>&quot;performerFromAuthor&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;performerFallback&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </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\">ref</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> -&gt; </b></span>ref.reference = <span style=\"color: maroon\">qid</span> <i>&quot;derivedFromRef&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;linkQuestionnaireResponse&quot;</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 RiskAssessment stands on two things: the response that was filled in and</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">the Observation that holds the number. Both go in basis, which is what the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">SGHI RiskAssessment profile binds to a QuestionnaireResponse.</span>\r\n<b>group </b>BuildRiskBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">ra</span><span style=\"color: navy\"> : </span>RiskAssessment, <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> -&gt; </b></span>ra.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetRiskAssessmentFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">ra</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;idAndFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </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> -&gt; </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>&quot;requestMethod&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>request.url = <span style=\"color: blue\">'RiskAssessment'</span> <i>&quot;requestUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;entryRequest&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.status = <span style=\"color: blue\">'final'</span> <i>&quot;status&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span>ra.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> -&gt; </b></span>ra.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n  qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -&gt; </b></span>ra.occurrence = <span style=\"color: maroon\">t</span> <i>&quot;occurrence&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>ra.performer = <span style=\"color: maroon\">a</span> <i>&quot;performerFromAuthor&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<b> where </b><span style=\"color: navy\">(</span>author.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -&gt; </b></span>ra.performer = <span style=\"color: maroon\">src</span> <i>&quot;performerFromSource&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;performerFallback&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>ra.basis = <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\">qref</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> -&gt; </b></span>qref.reference = <span style=\"color: maroon\">qid</span> <i>&quot;basisQuestionnaireResponse&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;basisResponse&quot;</i><span style=\"color: navy\">;</span>\r\n  obs.id<b> as </b><span style=\"color: maroon\">oid</span><span style=\"color: navy\"><b> -&gt; </b></span>ra.basis = <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\">oref</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    oid<span style=\"color: navy\"><b> -&gt; </b></span>oref.reference = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">oid</span><span style=\"color: navy\">)</span> <i>&quot;basisObservationRef&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;basisObservation&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetComponentCodedValue<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    a.value<b> as </b><span style=\"color: maroon\">cv</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      cv<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding = <span style=\"color: maroon\">cv</span> <i>&quot;valueCoding&quot;</i><span style=\"color: navy\">;</span>\r\n      cv.display<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -&gt; </b></span>cc.text = <span style=\"color: maroon\">d</span> <i>&quot;valueText&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;codedValue&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;componentAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetSurveyCategory<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> -&gt; </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> -&gt; </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>&quot;categorySystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'survey'</span> <i>&quot;categoryCode&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Survey'</span> <i>&quot;categoryDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;categoryCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;category&quot;</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> -&gt; </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>&quot;assignFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetRiskAssessmentFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">ra</span><span style=\"color: navy\"> : </span>RiskAssessment, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  ra.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -&gt; </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/RiskAssessment/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>&quot;assignFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetCarePlanFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">plan</span><span style=\"color: navy\"> : </span>CarePlan, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  plan.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -&gt; </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CarePlan/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>&quot;assignFullUrl&quot;</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/ExtractInpatientFallsAndPressureUlcerRiskAssessment",
  "version" : "0.1.0",
  "name" : "ExtractInpatientFallsAndPressureUlcerRiskAssessment",
  "title" : "Inpatient Falls and Pressure Ulcer Risk Assessment Extraction",
  "status" : "active",
  "date" : "2026-09-14T06:31:13+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"
    }]
  }],
  "description" : "Two scored instruments out. Braden becomes one Observation carrying the total with its six sub-scores as components, plus a RiskAssessment for the band; the falls score -- which is the Morse Fall Scale item for item -- becomes the same shape against the LOINC Morse panel. The measures put in place become a CarePlan. A total is only emitted when every sub-score has been answered: a Braden computed from four of six items is not a Braden score, and banding one would put a number a nurse can act on next to a risk tier that is wrong.",
  "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"
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/RiskAssessment",
    "mode" : "target",
    "alias" : "RiskAssessment"
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/CarePlan",
    "mode" : "target",
    "alias" : "CarePlan"
  }],
  "group" : [{
    "name" : "ExtractInpatientFallsAndPressureUlcerRiskAssessment",
    "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" : "bradenRule",
      "source" : [{
        "context" : "qr",
        "element" : "item",
        "variable" : "gB",
        "condition" : "(linkId = 'braden') and item.answer.value.ofType(Coding).exists()"
      }],
      "rule" : [{
        "name" : "bradenObservation",
        "source" : [{
          "context" : "gB"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entryB"
        },
        {
          "context" : "entryB",
          "element" : "resource",
          "variable" : "obsB",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "bradenBase",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsB"
          },
          {
            "context" : "entryB"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obsB"
            },
            {
              "valueId" : "entryB"
            }]
          }]
        },
        {
          "name" : "bradenCategory",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsB"
          }],
          "dependent" : [{
            "name" : "SetSurveyCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obsB"
            }]
          }]
        },
        {
          "name" : "bradenCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "code",
            "variable" : "code"
          }],
          "rule" : [{
            "name" : "codeCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "code",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "codeSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://loinc.org"
                }]
              }]
            },
            {
              "name" : "codeCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "38227-5"
                }]
              }]
            },
            {
              "name" : "codeDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Braden scale total score"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "bradenTotalRule",
          "source" : [{
            "context" : "gB",
            "condition" : "item.answer.value.ofType(Coding).count() = 6"
          }],
          "rule" : [{
            "name" : "bradenTotalValue",
            "source" : [{
              "context" : "gB"
            }],
            "target" : [{
              "context" : "obsB",
              "element" : "value",
              "transform" : "evaluate",
              "parameter" : [{
                "valueId" : "gB"
              },
              {
                "valueString" : "iif(item.where(linkId = 'braden.total').answer.value.exists(), item.where(linkId = 'braden.total').answer.value, item.answer.value.ofType(Coding).code.select($this.split('-').last().toInteger()).aggregate($this + $total, 0))"
              }]
            }]
          }],
          "documentation" : "The submitted total wins; otherwise sum the answers. Every scored answer\r\nin SGHIClinicalScoreCodeSystem ends in its own weight -- braden-sensory-3\r\nis worth 3 -- so the fallback reads the weight off the code. Both paths\r\nare the arithmetic the questionnaire's calculatedExpression performs, so\r\nthey cannot disagree. Guarded on all six sub-scores being present."
        },
        {
          "name" : "bradenSensoryRule",
          "source" : [{
            "context" : "gB",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'braden.sensory') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "sensoryCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "38222-6"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Sensory perception Braden scale"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "sensoryValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "bradenMoistureRule",
          "source" : [{
            "context" : "gB",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'braden.moisture') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "moistureCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "38229-1"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Moisture exposure Braden scale"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "moistureValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "bradenActivityRule",
          "source" : [{
            "context" : "gB",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'braden.activity') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "activityCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "38223-4"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Physical activity Braden scale"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "activityValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "bradenMobilityRule",
          "source" : [{
            "context" : "gB",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'braden.mobility') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "mobilityCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "38224-2"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Physical mobility Braden scale"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "mobilityValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "bradenNutritionRule",
          "source" : [{
            "context" : "gB",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'braden.nutrition') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "nutritionCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "38225-9"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Nutrition intake pattern Braden scale"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "nutritionValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "bradenFrictionRule",
          "source" : [{
            "context" : "gB",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'braden.friction') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsB",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "frictionCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "38226-7"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Friction and shear Braden scale"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "frictionValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "bradenBand",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsB"
          },
          {
            "context" : "bundle"
          }],
          "dependent" : [{
            "name" : "AddBradenRiskAssessment",
            "parameter" : [{
              "valueId" : "obsB"
            },
            {
              "valueId" : "qr"
            },
            {
              "valueId" : "bundle"
            }]
          }]
        }]
      }],
      "documentation" : "── Braden pressure ulcer risk ─────────────────────────────────────────────"
    },
    {
      "name" : "fallsRiskRule",
      "source" : [{
        "context" : "qr",
        "element" : "item",
        "variable" : "gF",
        "condition" : "(linkId = 'fallsRisk') and item.answer.value.ofType(Coding).exists()"
      }],
      "rule" : [{
        "name" : "fallsObservation",
        "source" : [{
          "context" : "gF"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entryF"
        },
        {
          "context" : "entryF",
          "element" : "resource",
          "variable" : "obsF",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "fallsBase",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsF"
          },
          {
            "context" : "entryF"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obsF"
            },
            {
              "valueId" : "entryF"
            }]
          }]
        },
        {
          "name" : "fallsCategory",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsF"
          }],
          "dependent" : [{
            "name" : "SetSurveyCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obsF"
            }]
          }]
        },
        {
          "name" : "fallsCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "code",
            "variable" : "code"
          }],
          "rule" : [{
            "name" : "codeCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "code",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "codeSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://loinc.org"
                }]
              }]
            },
            {
              "name" : "codeCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "59460-6"
                }]
              }]
            },
            {
              "name" : "codeDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Fall risk total [Morse Fall Scale]"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "fallsTotalRule",
          "source" : [{
            "context" : "gF",
            "condition" : "item.answer.value.ofType(Coding).count() = 6"
          }],
          "rule" : [{
            "name" : "fallsTotalValue",
            "source" : [{
              "context" : "gF"
            }],
            "target" : [{
              "context" : "obsF",
              "element" : "value",
              "transform" : "evaluate",
              "parameter" : [{
                "valueId" : "gF"
              },
              {
                "valueString" : "iif(item.where(linkId = 'fallsRisk.total').answer.value.exists(), item.where(linkId = 'fallsRisk.total').answer.value, item.answer.value.ofType(Coding).code.select($this.split('-').last().toInteger()).aggregate($this + $total, 0))"
              }]
            }]
          }]
        },
        {
          "name" : "fallsHistoryRule",
          "source" : [{
            "context" : "gF",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'fallsRisk.history') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "historyCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "59454-9"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "History of falling; immediate or within 3 months [Morse Fall Scale]"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "historyValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "fallsDiagnosesRule",
          "source" : [{
            "context" : "gF",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'fallsRisk.diagnoses') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "diagnosesCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "59455-6"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Secondary diagnosis is present"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "diagnosesValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "fallsAidRule",
          "source" : [{
            "context" : "gF",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'fallsRisk.aid') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "aidCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "59456-4"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Ambulatory aid [Morse Fall Scale]"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "aidValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "fallsIvRule",
          "source" : [{
            "context" : "gF",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'fallsRisk.iv') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "ivCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "59457-2"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Intravenous apparatus [Morse Fall Scale]"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "ivValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "fallsGaitRule",
          "source" : [{
            "context" : "gF",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'fallsRisk.gait') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "gaitCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "59458-0"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Gait [Morse Fall Scale]"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "gaitValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "fallsMentalRule",
          "source" : [{
            "context" : "gF",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'fallsRisk.mental') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obsF",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "mentalCode",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "code"
            }],
            "rule" : [{
              "name" : "codeCoding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "code",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "codeSystem",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "http://loinc.org"
                  }]
                }]
              },
              {
                "name" : "codeCode",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "59459-8"
                  }]
                }]
              },
              {
                "name" : "codeDisplay",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Mental status [Morse Fall Scale]"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "mentalValue",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentCodedValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "fallsBand",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obsF"
          },
          {
            "context" : "bundle"
          }],
          "dependent" : [{
            "name" : "AddFallsRiskAssessment",
            "parameter" : [{
              "valueId" : "obsF"
            },
            {
              "valueId" : "qr"
            },
            {
              "valueId" : "bundle"
            }]
          }]
        }]
      }],
      "documentation" : "── Falls risk (Morse Fall Scale) ──────────────────────────────────────────"
    },
    {
      "name" : "measuresRule",
      "source" : [{
        "context" : "qr",
        "element" : "item",
        "variable" : "itM",
        "condition" : "(linkId = 'measures') and answer.value.exists()"
      }],
      "rule" : [{
        "name" : "measuresAnswer",
        "source" : [{
          "context" : "itM",
          "element" : "answer",
          "listMode" : "first",
          "variable" : "aM"
        }],
        "rule" : [{
          "name" : "carePlan",
          "source" : [{
            "context" : "aM"
          }],
          "target" : [{
            "context" : "bundle",
            "element" : "entry",
            "variable" : "entryC"
          },
          {
            "context" : "entryC",
            "element" : "resource",
            "variable" : "plan",
            "transform" : "create",
            "parameter" : [{
              "valueString" : "CarePlan"
            }]
          }],
          "rule" : [{
            "name" : "idAndFullUrl",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "id",
              "transform" : "uuid"
            }],
            "dependent" : [{
              "name" : "SetCarePlanFullUrl",
              "parameter" : [{
                "valueId" : "plan"
              },
              {
                "valueId" : "entryC"
              }]
            }]
          },
          {
            "name" : "entryRequest",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "entryC",
              "element" : "request",
              "variable" : "request"
            }],
            "rule" : [{
              "name" : "requestMethod",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "request",
                "element" : "method",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "POST"
                }]
              }]
            },
            {
              "name" : "requestUrl",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "request",
                "element" : "url",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "CarePlan"
                }]
              }]
            }]
          },
          {
            "name" : "status",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "status",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "active"
              }]
            }]
          },
          {
            "name" : "intent",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "intent",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "plan"
              }]
            }]
          },
          {
            "name" : "category",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "category",
              "variable" : "cat"
            }],
            "rule" : [{
              "name" : "categoryCoding",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "cat",
                "element" : "coding",
                "variable" : "coding"
              }],
              "rule" : [{
                "name" : "categorySystem",
                "source" : [{
                  "context" : "qr"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/inpatient-clinical-concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "categoryCode",
                "source" : [{
                  "context" : "qr"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "falls-prevention-plan"
                  }]
                }]
              },
              {
                "name" : "categoryDisplay",
                "source" : [{
                  "context" : "qr"
                }],
                "target" : [{
                  "context" : "coding",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Falls and pressure ulcer prevention measures"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "title",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "title",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "Falls and pressure ulcer prevention measures"
              }]
            }]
          },
          {
            "name" : "description",
            "source" : [{
              "context" : "aM",
              "element" : "value",
              "variable" : "v"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "description",
              "transform" : "copy",
              "parameter" : [{
                "valueId" : "v"
              }]
            }]
          },
          {
            "name" : "subject",
            "source" : [{
              "context" : "qr",
              "element" : "subject",
              "variable" : "s"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "subject",
              "transform" : "copy",
              "parameter" : [{
                "valueId" : "s"
              }]
            }]
          },
          {
            "name" : "encounter",
            "source" : [{
              "context" : "qr",
              "element" : "encounter",
              "variable" : "e"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "encounter",
              "transform" : "copy",
              "parameter" : [{
                "valueId" : "e"
              }]
            }]
          },
          {
            "name" : "created",
            "source" : [{
              "context" : "qr",
              "element" : "authored",
              "variable" : "t"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "created",
              "transform" : "copy",
              "parameter" : [{
                "valueId" : "t"
              }]
            }]
          },
          {
            "name" : "contributorFromAuthor",
            "source" : [{
              "context" : "qr",
              "element" : "author",
              "variable" : "a"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "contributor",
              "transform" : "copy",
              "parameter" : [{
                "valueId" : "a"
              }]
            }]
          },
          {
            "name" : "contributorFallback",
            "source" : [{
              "context" : "qr",
              "condition" : "author.exists().not()"
            }],
            "rule" : [{
              "name" : "contributorFromSource",
              "source" : [{
                "context" : "qr",
                "element" : "source",
                "variable" : "src"
              }],
              "target" : [{
                "context" : "plan",
                "element" : "contributor",
                "transform" : "copy",
                "parameter" : [{
                  "valueId" : "src"
                }]
              }]
            }]
          },
          {
            "name" : "linkQuestionnaireResponse",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "plan",
              "element" : "supportingInfo",
              "variable" : "ref",
              "transform" : "create",
              "parameter" : [{
                "valueString" : "Reference"
              }]
            }],
            "rule" : [{
              "name" : "supportingInfoRef",
              "source" : [{
                "context" : "qr",
                "element" : "id",
                "variable" : "qid"
              }],
              "target" : [{
                "context" : "ref",
                "element" : "reference",
                "transform" : "copy",
                "parameter" : [{
                  "valueId" : "qid"
                }]
              }]
            }]
          }]
        }]
      }],
      "documentation" : "── Measures in place ──────────────────────────────────────────────────────"
    }]
  },
  {
    "name" : "AddBradenRiskAssessment",
    "documentation" : "─────────────────────────────────────────────────────────────────────────────\r\nRisk bands\r\nBraden (Bergstrom): 19 and over no risk, 15-18 mild, 13-14 moderate, 10-12\r\nhigh, 9 and under very high. Lower is worse.\r\nMorse (Morse, Preventing Patient Falls): 0-24 no risk, 25-50 low, 51 and over\r\nhigh. Higher is worse.\r\nThe published band is the text; the coding is HL7's risk-probability, which\r\nhas five concepts and so collapses Braden's \"very high\" and \"high\" onto one\r\ncode. Consumers that need the exact tier read the text, consumers that need\r\nto escalate read the code.\r\n─────────────────────────────────────────────────────────────────────────────",
    "input" : [{
      "name" : "obs",
      "type" : "Observation",
      "mode" : "source"
    },
    {
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "bundle",
      "type" : "Bundle",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "bradenVeryHigh",
      "source" : [{
        "context" : "obs",
        "condition" : "value.ofType(integer) <= 9"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetBradenRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "high"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "High likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "Very high risk"
              }]
            }]
          }]
        }]
      }]
    },
    {
      "name" : "bradenHigh",
      "source" : [{
        "context" : "obs",
        "condition" : "(value.ofType(integer) >= 10) and (value.ofType(integer) <= 12)"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetBradenRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "high"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "High likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "High risk"
              }]
            }]
          }]
        }]
      }]
    },
    {
      "name" : "bradenModerate",
      "source" : [{
        "context" : "obs",
        "condition" : "(value.ofType(integer) >= 13) and (value.ofType(integer) <= 14)"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetBradenRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "moderate"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Moderate likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "Moderate risk"
              }]
            }]
          }]
        }]
      }]
    },
    {
      "name" : "bradenMild",
      "source" : [{
        "context" : "obs",
        "condition" : "(value.ofType(integer) >= 15) and (value.ofType(integer) <= 18)"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetBradenRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "low"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Low likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "Mild risk"
              }]
            }]
          }]
        }]
      }]
    },
    {
      "name" : "bradenNoRisk",
      "source" : [{
        "context" : "obs",
        "condition" : "value.ofType(integer) >= 19"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetBradenRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "negligible"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Negligible likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "No risk identified"
              }]
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetBradenRiskCode",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "ra",
      "type" : "RiskAssessment",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "code",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "code",
        "variable" : "code"
      }],
      "rule" : [{
        "name" : "codeCoding",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "code",
          "element" : "coding",
          "variable" : "coding"
        }],
        "rule" : [{
          "name" : "codeSystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://loinc.org"
            }]
          }]
        },
        {
          "name" : "codeCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "81636-3"
            }]
          }]
        },
        {
          "name" : "codeDisplay",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "display",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "Pressure injury risk level Braden scale"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "AddFallsRiskAssessment",
    "input" : [{
      "name" : "obs",
      "type" : "Observation",
      "mode" : "source"
    },
    {
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "bundle",
      "type" : "Bundle",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "fallsNoRisk",
      "source" : [{
        "context" : "obs",
        "condition" : "value.ofType(integer) <= 24"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetFallsRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "negligible"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Negligible likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "No risk"
              }]
            }]
          }]
        }]
      }]
    },
    {
      "name" : "fallsLow",
      "source" : [{
        "context" : "obs",
        "condition" : "(value.ofType(integer) >= 25) and (value.ofType(integer) <= 50)"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetFallsRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "low"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Low likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "Low risk"
              }]
            }]
          }]
        }]
      }]
    },
    {
      "name" : "fallsHigh",
      "source" : [{
        "context" : "obs",
        "condition" : "value.ofType(integer) >= 51"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "ra",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "RiskAssessment"
        }]
      }],
      "rule" : [{
        "name" : "riskBase",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildRiskBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "ra"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "riskCode",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra"
        }],
        "dependent" : [{
          "name" : "SetFallsRiskCode",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "ra"
          }]
        }]
      },
      {
        "name" : "prediction",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "prediction",
          "variable" : "pred"
        }],
        "rule" : [{
          "name" : "qualitativeRisk",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "pred",
            "element" : "qualitativeRisk",
            "variable" : "risk"
          }],
          "rule" : [{
            "name" : "riskCoding",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "coding",
              "variable" : "coding"
            }],
            "rule" : [{
              "name" : "riskSystem",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://terminology.hl7.org/CodeSystem/risk-probability"
                }]
              }]
            },
            {
              "name" : "riskCode",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "high"
                }]
              }]
            },
            {
              "name" : "riskDisplay",
              "source" : [{
                "context" : "qr"
              }],
              "target" : [{
                "context" : "coding",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "High likelihood"
                }]
              }]
            }]
          },
          {
            "name" : "riskText",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "risk",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "High risk"
              }]
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetFallsRiskCode",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "ra",
      "type" : "RiskAssessment",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "code",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "code",
        "variable" : "code"
      }],
      "rule" : [{
        "name" : "codeCoding",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "code",
          "element" : "coding",
          "variable" : "coding"
        }],
        "rule" : [{
          "name" : "codeSystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://loinc.org"
            }]
          }]
        },
        {
          "name" : "codeCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "59461-4"
            }]
          }]
        },
        {
          "name" : "codeDisplay",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "display",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "Fall risk level [Morse Fall Scale]"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "BuildObsBase",
    "documentation" : "─────────────────────────────────────────────────────────────────────────────\r\nShared scaffolding. Repeated in each map rather than imported: the transform\r\nengine resolves `imports` against whatever StructureMaps happen to be on the\r\nserver, and a form that stops extracting because a shared map was not\r\nuploaded is a worse failure than a duplicated group.\r\n─────────────────────────────────────────────────────────────────────────────\r\nTwo notes on what the publisher's StructureMap validator says about this file.\r\nSource parameters below are left untyped on purpose. Writing `: Element` makes\r\nthe validator compare QuestionnaireResponse.item against the literal 'Element'\r\nand report them as incompatible with each other, which is noise, not a finding.\r\nUntyped, it says only that it cannot check the paths.\r\n`evaluate(context, expression)` is flagged as \"takes 1 parameter but 2 were\r\nfound\". Leave it. The FML parser in the same jar refuses the one-argument form\r\noutright -- it wants a parameter, a comma, then the FHIRPath -- so the publisher\r\nis objecting to what its own compiler emits. Two arguments is the only form that\r\ncompiles, and it is what the R5 transform engine executes.",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "target"
    },
    {
      "name" : "entry",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "idAndFullUrl",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "id",
        "transform" : "uuid"
      }],
      "dependent" : [{
        "name" : "SetObservationFullUrl",
        "parameter" : [{
          "valueId" : "obs"
        },
        {
          "valueId" : "entry"
        }]
      }]
    },
    {
      "name" : "entryRequest",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "entry",
        "element" : "request",
        "variable" : "request"
      }],
      "rule" : [{
        "name" : "requestMethod",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "request",
          "element" : "method",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "POST"
          }]
        }]
      },
      {
        "name" : "requestUrl",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "request",
          "element" : "url",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }]
      }]
    },
    {
      "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" : "effective",
      "source" : [{
        "context" : "qr",
        "element" : "authored",
        "variable" : "t"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "effective",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "t"
        }]
      }]
    },
    {
      "name" : "performerFromSource",
      "source" : [{
        "context" : "qr",
        "element" : "source",
        "variable" : "src"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "performer",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "src"
        }]
      }]
    },
    {
      "name" : "performerFallback",
      "source" : [{
        "context" : "qr",
        "condition" : "source.exists().not()"
      }],
      "rule" : [{
        "name" : "performerFromAuthor",
        "source" : [{
          "context" : "qr",
          "element" : "author",
          "variable" : "a"
        }],
        "target" : [{
          "context" : "obs",
          "element" : "performer",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "a"
          }]
        }]
      }]
    },
    {
      "name" : "linkQuestionnaireResponse",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "derivedFrom",
        "variable" : "ref",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "Reference"
        }]
      }],
      "rule" : [{
        "name" : "derivedFromRef",
        "source" : [{
          "context" : "qr",
          "element" : "id",
          "variable" : "qid"
        }],
        "target" : [{
          "context" : "ref",
          "element" : "reference",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "qid"
          }]
        }]
      }]
    }]
  },
  {
    "name" : "BuildRiskBase",
    "documentation" : "The RiskAssessment stands on two things: the response that was filled in and\r\nthe Observation that holds the number. Both go in basis, which is what the\r\nSGHI RiskAssessment profile binds to a QuestionnaireResponse.",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "source"
    },
    {
      "name" : "ra",
      "type" : "RiskAssessment",
      "mode" : "target"
    },
    {
      "name" : "entry",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "idAndFullUrl",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "id",
        "transform" : "uuid"
      }],
      "dependent" : [{
        "name" : "SetRiskAssessmentFullUrl",
        "parameter" : [{
          "valueId" : "ra"
        },
        {
          "valueId" : "entry"
        }]
      }]
    },
    {
      "name" : "entryRequest",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "entry",
        "element" : "request",
        "variable" : "request"
      }],
      "rule" : [{
        "name" : "requestMethod",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "request",
          "element" : "method",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "POST"
          }]
        }]
      },
      {
        "name" : "requestUrl",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "request",
          "element" : "url",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "RiskAssessment"
          }]
        }]
      }]
    },
    {
      "name" : "status",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "status",
        "transform" : "copy",
        "parameter" : [{
          "valueString" : "final"
        }]
      }]
    },
    {
      "name" : "subject",
      "source" : [{
        "context" : "qr",
        "element" : "subject",
        "variable" : "s"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "subject",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "s"
        }]
      }]
    },
    {
      "name" : "encounter",
      "source" : [{
        "context" : "qr",
        "element" : "encounter",
        "variable" : "e"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "encounter",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "e"
        }]
      }]
    },
    {
      "name" : "occurrence",
      "source" : [{
        "context" : "qr",
        "element" : "authored",
        "variable" : "t"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "occurrence",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "t"
        }]
      }]
    },
    {
      "name" : "performerFromAuthor",
      "source" : [{
        "context" : "qr",
        "element" : "author",
        "variable" : "a"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "performer",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "a"
        }]
      }]
    },
    {
      "name" : "performerFallback",
      "source" : [{
        "context" : "qr",
        "condition" : "author.exists().not()"
      }],
      "rule" : [{
        "name" : "performerFromSource",
        "source" : [{
          "context" : "qr",
          "element" : "source",
          "variable" : "src"
        }],
        "target" : [{
          "context" : "ra",
          "element" : "performer",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "src"
          }]
        }]
      }]
    },
    {
      "name" : "basisResponse",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "basis",
        "variable" : "qref",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "Reference"
        }]
      }],
      "rule" : [{
        "name" : "basisQuestionnaireResponse",
        "source" : [{
          "context" : "qr",
          "element" : "id",
          "variable" : "qid"
        }],
        "target" : [{
          "context" : "qref",
          "element" : "reference",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "qid"
          }]
        }]
      }]
    },
    {
      "name" : "basisObservation",
      "source" : [{
        "context" : "obs",
        "element" : "id",
        "variable" : "oid"
      }],
      "target" : [{
        "context" : "ra",
        "element" : "basis",
        "variable" : "oref",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "Reference"
        }]
      }],
      "rule" : [{
        "name" : "basisObservationRef",
        "source" : [{
          "context" : "oid"
        }],
        "target" : [{
          "context" : "oref",
          "element" : "reference",
          "transform" : "append",
          "parameter" : [{
            "valueString" : "Observation/"
          },
          {
            "valueId" : "oid"
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetComponentCodedValue",
    "input" : [{
      "name" : "it",
      "mode" : "source"
    },
    {
      "name" : "comp",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "componentAnswer",
      "source" : [{
        "context" : "it",
        "element" : "answer",
        "listMode" : "first",
        "variable" : "a"
      }],
      "rule" : [{
        "name" : "codedValue",
        "source" : [{
          "context" : "a",
          "element" : "value",
          "variable" : "cv"
        }],
        "target" : [{
          "context" : "comp",
          "element" : "value",
          "variable" : "cc",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "CodeableConcept"
          }]
        }],
        "rule" : [{
          "name" : "valueCoding",
          "source" : [{
            "context" : "cv"
          }],
          "target" : [{
            "context" : "cc",
            "element" : "coding",
            "transform" : "copy",
            "parameter" : [{
              "valueId" : "cv"
            }]
          }]
        },
        {
          "name" : "valueText",
          "source" : [{
            "context" : "cv",
            "element" : "display",
            "variable" : "d"
          }],
          "target" : [{
            "context" : "cc",
            "element" : "text",
            "transform" : "copy",
            "parameter" : [{
              "valueId" : "d"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetSurveyCategory",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "category",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "category",
        "variable" : "cat"
      }],
      "rule" : [{
        "name" : "categoryCoding",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "cat",
          "element" : "coding",
          "variable" : "coding"
        }],
        "rule" : [{
          "name" : "categorySystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
            }]
          }]
        },
        {
          "name" : "categoryCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "survey"
            }]
          }]
        },
        {
          "name" : "categoryDisplay",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "display",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "Survey"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "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"
        }]
      }]
    }]
  },
  {
    "name" : "SetRiskAssessmentFullUrl",
    "input" : [{
      "name" : "ra",
      "type" : "RiskAssessment",
      "mode" : "source"
    },
    {
      "name" : "entry",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "assignFullUrl",
      "source" : [{
        "context" : "ra",
        "element" : "id",
        "variable" : "id"
      }],
      "target" : [{
        "context" : "entry",
        "element" : "fullUrl",
        "transform" : "append",
        "parameter" : [{
          "valueString" : "https://fhir.slade360.co.ke/fhir/RiskAssessment/"
        },
        {
          "valueId" : "id"
        }]
      }]
    }]
  },
  {
    "name" : "SetCarePlanFullUrl",
    "input" : [{
      "name" : "plan",
      "type" : "CarePlan",
      "mode" : "source"
    },
    {
      "name" : "entry",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "assignFullUrl",
      "source" : [{
        "context" : "plan",
        "element" : "id",
        "variable" : "id"
      }],
      "target" : [{
        "context" : "entry",
        "element" : "fullUrl",
        "transform" : "append",
        "parameter" : [{
          "valueString" : "https://fhir.slade360.co.ke/fhir/CarePlan/"
        },
        {
          "valueId" : "id"
        }]
      }]
    }]
  }]
}