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