{
  "resourceType" : "StructureMap",
  "id" : "ExtractHduInputOutputChart",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ExtractHduInputOutputChart</b></p><a name=\"ExtractHduInputOutputChart\"> </a><a name=\"hcExtractHduInputOutputChart\"> </a><pre class=\"fml\">\r\n<span style=\"color: #cc00cc\">/// <b>url</b> = </span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/StructureMap/ExtractHduInputOutputChart'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ExtractHduInputOutputChart'</span>\r\n<span style=\"color: #cc00cc\">/// <b>title</b> = </span><span style=\"color: blue\">'HDU Input and Output Chart Extraction'</span>\r\n<span style=\"color: #cc00cc\">/// <b>status</b> = </span><span style=\"color: blue\">'active'</span>\r\n<span style=\"color: #cc00cc\">/// <b>description</b> = </span><span style=\"color: blue\">'The 24-hour totals under LOINC 9108-2 fluid intake and 9192-6 urine output, plus the balance, and each hourly row as its own pair of panels. The totals are what every fluid decision on the unit turns on and what a later reader actually queries; the hourly rows are kept so the total can be audited against them, which matters because on paper the total is arithmetic done by hand at the end of a twelve-hour shift.'</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">&quot; </span><b>alias </b>QR <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">&quot; </span><b>alias </b>Bundle <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">&quot; </span><b>alias </b>Observation <b>as </b><b>target</b>\r\n\r\n<b>group </b>ExtractHduInputOutputChart<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>bundle.type = <span style=\"color: blue\">'transaction'</span> <i>&quot;setBundleType&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── The 24-hour totals ──────────────────────────────────────────────────</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'totals'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'totals/intake') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n      it<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'9108-2'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Fluid intake total 24 hour'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n      it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        a.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">q</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          v<span style=\"color: navy\"><b> -&gt; </b></span>q.value = <span style=\"color: maroon\">v</span> <i>&quot;qValue&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.unit = <span style=\"color: blue\">'mL'</span> <i>&quot;qUnit&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>&quot;qSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.code = <span style=\"color: blue\">'mL'</span> <i>&quot;qCode&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;quantity&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;measureq_9108_2&quot;</i><span style=\"color: navy\">;</span>\r\n    g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'totals/output') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n      it<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-fluid-output-total-24-hour'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Fluid output total 24 hour'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n      it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        a.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">q</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          v<span style=\"color: navy\"><b> -&gt; </b></span>q.value = <span style=\"color: maroon\">v</span> <i>&quot;qValue&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.unit = <span style=\"color: blue\">'mL'</span> <i>&quot;qUnit&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>&quot;qSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.code = <span style=\"color: blue\">'mL'</span> <i>&quot;qCode&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;quantity&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;measureq_fluid_balance&quot;</i><span style=\"color: navy\">;</span>\r\n    g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'totals/balance') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n      it<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-over-24-hours'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Fluid balance over 24 hours'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n      it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        a.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">q</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          v<span style=\"color: navy\"><b> -&gt; </b></span>q.value = <span style=\"color: maroon\">v</span> <i>&quot;qValue&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.unit = <span style=\"color: blue\">'mL'</span> <i>&quot;qUnit&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>&quot;qSystem&quot;</i><span style=\"color: navy\">;</span>\r\n          v<span style=\"color: navy\"><b> -&gt; </b></span>q.code = <span style=\"color: blue\">'mL'</span> <i>&quot;qCode&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;quantity&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;measureq_fluid_balance2&quot;</i><span style=\"color: navy\">;</span>\r\n    g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'totals/remarks') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n      it<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-remarks-on-the-fluid-balance-chart'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n          it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Remarks on the fluid balance chart'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n      it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -&gt; </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>&quot;text&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;narr_fluid_balance_remarks_on_the_fluid_balance_chart&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;totalsGroup&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── The urine output total, separately ──────────────────────────────────</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">Under its own LOINC code and summed from the hourly rows, because urine</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">output is the number that says whether a kidney is still working and it is</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">asked for on its own, not as part of a balance.</span>\r\n  qr<b> where </b><span style=\"color: navy\">(</span>item.where(linkId = 'hour').item.where(linkId = 'hour/out').item.where(linkId = 'hour/out/urine').answer.value.ofType(Quantity).exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'9192-6'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Urine output 24 hour'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">q</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>q.value = evaluate<span style=\"color: navy\">(</span>qr<span style=\"color: navy\">, </span>item.where(linkId = 'hour').item.where(linkId = 'hour/out').item.where(linkId = 'hour/out/urine').answer.value.ofType(Quantity).value.aggregate($this + $total, 0)<span style=\"color: navy\">)</span> <i>&quot;qValue&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>q.unit = <span style=\"color: blue\">'mL'</span> <i>&quot;qUnit&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>q.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>&quot;qSystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>q.code = <span style=\"color: blue\">'mL'</span> <i>&quot;qCode&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;quantity&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: blue\">'Summed from the hourly rows on the input and output chart'</span> <i>&quot;sumNote&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;urineOutputTotal&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── One hourly row ──────────────────────────────────────────────────────</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">h</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'hour'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    h.item<b> as </b><span style=\"color: maroon\">i</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in') and item.answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n      i<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        i<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          i<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n          i<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-hourly-fluid-intake'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n          i<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Hourly fluid intake'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/parenteral-fluid') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-parenteral-fluid-given'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Parenteral fluid given'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_parenteral_fluid_given&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/parenteral-amount') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-parenteral-fluid-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Parenteral fluid volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_parenteral_fluid_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/parenteral-fluid-2') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-second-parenteral-fluid-given'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Second parenteral fluid given'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_second_parenteral_fluid_given&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/parenteral-amount-2') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-second-parenteral-fluid-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Second parenteral fluid volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_second_parenteral_fluid_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/blood') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-blood-volume-given'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Blood volume given'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_blood_volume_given&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/oral-or-ng-type') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-oral-or-nasogastric-feed-given'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Oral or nasogastric feed given'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_oral_or_nasogastric_feed_given&quot;</i><span style=\"color: navy\">;</span>\r\n      i.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/in/oral-or-ng-amount') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-oral-or-nasogastric-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Oral or nasogastric volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_oral_or_nasogastric_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      h<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetHourTime<span style=\"color: navy\">(</span><span style=\"color: maroon\">h</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;hourTime&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;hourlyIntake&quot;</i><span style=\"color: navy\">;</span>\r\n    h.item<b> as </b><span style=\"color: maroon\">o</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/out') and item.answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<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\">entry</span><span style=\"color: navy\">)</span> <i>&quot;base&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n      o<span style=\"color: navy\"><b> -&gt; </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        o<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          o<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n          o<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-hourly-fluid-output'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n          o<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Hourly fluid output'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n      o.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/out/ng-aspirate') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-nasogastric-aspirate-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Nasogastric aspirate volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_nasogastric_aspirate_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      o.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/out/vomit') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-vomit-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Vomit volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_vomit_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      o.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/out/drain') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-drain-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Drain volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_drain_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      o.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/out/urine') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-urine-volume'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Urine volume'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_urine_volume&quot;</i><span style=\"color: navy\">;</span>\r\n      o.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/out/stool') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        it<span style=\"color: navy\"><b> -&gt; </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          it<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>&quot;sys&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.code = <span style=\"color: blue\">'fluid-balance-stool-passed'</span> <i>&quot;cd&quot;</i><span style=\"color: navy\">;</span>\r\n            it<span style=\"color: navy\"><b> -&gt; </b></span>cg.display = <span style=\"color: blue\">'Stool passed'</span> <i>&quot;dsp&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;coding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;code&quot;</i><span style=\"color: navy\">;</span>\r\n        it<span style=\"color: navy\"><b> -&gt; </b></span>comp<b> then </b>SetComponentValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>&quot;value&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;comp_fluid_balance_stool_passed&quot;</i><span style=\"color: navy\">;</span>\r\n      h<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetHourTime<span style=\"color: navy\">(</span><span style=\"color: maroon\">h</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;hourTime&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;hourlyOutput&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;hourlyRows&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetHourTime<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">h</span>, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  h.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'hour/time') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      a.value<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -&gt; </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: blue\">'Recorded against the clock hour on the input and output chart'</span> <i>&quot;timeNote&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;hourTimeRule&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Shared scaffolding. Repeated in each map rather than imported: the transform</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">engine resolves `imports` against whatever StructureMaps happen to be on the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">server, and a form that stops extracting because a shared map was not</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">uploaded is a worse failure than a duplicated group.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Two notes on what the publisher's StructureMap validator says about this file.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Source parameters below are left untyped on purpose. Writing `: Element` makes</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">the validator compare QuestionnaireResponse.item against the literal 'Element'</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">and report them as incompatible with each other, which is noise, not a finding.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">`evaluate(context, expression)` is flagged as &quot;takes 1 parameter but 2 were</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">found&quot;. Leave it. The FML parser in the same jar refuses the one-argument form</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">outright -- it wants a parameter, a comma, then the FHIRPath -- so the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">publisher is objecting to what its own compiler emits. Two arguments is the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">only form that compiles, and it is what the R5 transform engine executes.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<b>group </b>BuildObsBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs<b> then </b>SetResponseProvenance<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>&quot;responseProvenance&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetObservationFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;idAndFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>entry.request<b> as </b><span style=\"color: maroon\">request</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>&quot;requestMethod&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>request.url = <span style=\"color: blue\">'Observation'</span> <i>&quot;requestUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;entryRequest&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>&quot;status&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.subject = <span style=\"color: maroon\">s</span><span style=\"color: navy\">;</span>\r\n  qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n  qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.effective = <span style=\"color: maroon\">t</span> <i>&quot;effective&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.performer = <span style=\"color: maroon\">src</span> <i>&quot;performerFromSource&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<b> where </b><span style=\"color: navy\">(</span>source.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.performer = <span style=\"color: maroon\">a</span> <i>&quot;performerFromAuthor&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;performerFallback&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">A stored response's id already reads &quot;QuestionnaireResponse/&lt;id&gt;&quot;, so it is</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">a relative reference as it stands. The hasValue() guard is what stops an</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">unsaved response -- one posted straight to $extract rather than saved first</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">-- from writing &quot;QuestionnaireResponse/null&quot; into the record.</span>\r\n  qr.id<b> as </b><span style=\"color: maroon\">qid</span><b> where </b><span style=\"color: navy\">(</span>$this.hasValue()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> obs.derivedFrom = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: maroon\">qid</span> <i>&quot;linkQuestionnaireResponse&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetObservationFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  obs.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -&gt; </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Observation/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>&quot;assignFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">The two answer shapes a component can carry. Both read the answer through the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">untyped `.value` accessor: reading `valueCoding` or `valueQuantity` by its</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">typed property name fails at transform time on HAPI R5 with &quot;Attempt to read</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">invalid property ... on QuestionnaireResponse.item.answer&quot;.</span>\r\n<b>group </b>SetComponentCodedValue<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    a.value<b> as </b><span style=\"color: maroon\">cv</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      cv<span style=\"color: navy\"><b> -&gt; </b></span>cc.coding = <span style=\"color: maroon\">cv</span> <i>&quot;valueCoding&quot;</i><span style=\"color: navy\">;</span>\r\n      cv.display<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -&gt; </b></span>cc.text = <span style=\"color: maroon\">d</span> <i>&quot;valueText&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;codedValue&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;componentAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetComponentValue<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    a.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.value = <span style=\"color: maroon\">v</span> <i>&quot;plainValue&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;componentAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetSurveyCategory<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>&quot;categorySystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'survey'</span> <i>&quot;categoryCode&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Survey'</span> <i>&quot;categoryDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;categoryCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>&quot;categorySystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'vital-signs'</span> <i>&quot;categoryCode&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>&quot;categoryDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;categoryCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">── Provenance and tenancy ───────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Two tags on everything this map creates. The first says which questionnaire</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">produced it, so a form that reopens mid-admission recalls its own earlier</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">entries and not another form's. The second copies the tenant tags off the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">response, because nothing else on the path puts them there.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">The code is the form's document type, not the questionnaire's id: every</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">environment mints its own ids, and there is only one set of maps, so an id</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">here would tie the tag to whichever environment stamped it.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">── Provenance and tenancy ───────────────────────────────────────────────────</span>\r\n<b>group </b>SetResponseProvenance<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\">r</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>r.meta<b> as </b><span style=\"color: maroon\">m</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>m.tag<b> as </b><span style=\"color: maroon\">t</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>t.system = <span style=\"color: blue\">'http://slade360edi.com/questionnaire-provenance'</span> <i>&quot;provenanceSystem&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>t.code = <span style=\"color: blue\">'hdu-input-output-chart'</span> <i>&quot;provenanceCode&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>t.display = <span style=\"color: blue\">'HDU input and output chart'</span> <i>&quot;provenanceDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;provenanceTag&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;provenanceMeta&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">Every tag the response carries, onto the resource. `meta` is 0..1, so this</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">lands on the same meta the rule above created rather than a second one.</span>\r\n  qr.meta<b> as </b><span style=\"color: maroon\">qm</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qm.tag<b> as </b><span style=\"color: maroon\">qt</span><span style=\"color: navy\"><b> -&gt; </b></span> r.meta<b> as </b><span style=\"color: maroon\">m</span><span style=\"color: navy\">, </span> m.tag = <span style=\"color: maroon\">qt</span> <i>&quot;copyTag&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;tenantTags&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
  },
  "url" : "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractHduInputOutputChart",
  "version" : "0.1.0",
  "name" : "ExtractHduInputOutputChart",
  "title" : "HDU Input and Output Chart Extraction",
  "status" : "active",
  "date" : "2026-09-14T06:31:13+00:00",
  "publisher" : "Kathurima Kimathi",
  "contact" : [{
    "name" : "Kathurima Kimathi",
    "telecom" : [{
      "system" : "url",
      "value" : "https://www.linkedin.com/in/kathurima-kimathi/"
    },
    {
      "system" : "email",
      "value" : "kathurimakimathi415@gmail.com"
    }]
  },
  {
    "name" : "Oscar John",
    "telecom" : [{
      "system" : "email",
      "value" : "oscarjohnotieno@gmail.com",
      "use" : "work"
    }]
  },
  {
    "name" : "Kennedy Omondi",
    "telecom" : [{
      "system" : "email",
      "value" : "kennankole@gmail.com",
      "use" : "work"
    }]
  }],
  "description" : "The 24-hour totals under LOINC 9108-2 fluid intake and 9192-6 urine output, plus the balance, and each hourly row as its own pair of panels. The totals are what every fluid decision on the unit turns on and what a later reader actually queries; the hourly rows are kept so the total can be audited against them, which matters because on paper the total is arithmetic done by hand at the end of a twelve-hour shift.",
  "structure" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
    "mode" : "source",
    "alias" : "QR"
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
    "mode" : "target",
    "alias" : "Bundle"
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/Observation",
    "mode" : "target",
    "alias" : "Observation"
  }],
  "group" : [{
    "name" : "ExtractHduInputOutputChart",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "bundle",
      "type" : "Bundle",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "setBundleType",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "type",
        "transform" : "copy",
        "parameter" : [{
          "valueString" : "transaction"
        }]
      }]
    },
    {
      "name" : "totalsGroup",
      "source" : [{
        "context" : "qr",
        "element" : "item",
        "variable" : "g",
        "condition" : "linkId = 'totals'"
      }],
      "rule" : [{
        "name" : "measureq_9108_2",
        "source" : [{
          "context" : "g",
          "element" : "item",
          "variable" : "it",
          "condition" : "(linkId = 'totals/intake') and answer.value.exists()"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entry"
        },
        {
          "context" : "entry",
          "element" : "resource",
          "variable" : "obs",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "base",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          },
          {
            "context" : "entry"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            },
            {
              "valueId" : "entry"
            }]
          }]
        },
        {
          "name" : "category",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetVitalSignsCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            }]
          }]
        },
        {
          "name" : "code",
          "source" : [{
            "context" : "it"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "code",
            "variable" : "cc"
          }],
          "rule" : [{
            "name" : "coding",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "cc",
              "element" : "coding",
              "variable" : "cg"
            }],
            "rule" : [{
              "name" : "sys",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://loinc.org"
                }]
              }]
            },
            {
              "name" : "cd",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "9108-2"
                }]
              }]
            },
            {
              "name" : "dsp",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Fluid intake total 24 hour"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "answer",
          "source" : [{
            "context" : "it",
            "element" : "answer",
            "listMode" : "first",
            "variable" : "a"
          }],
          "rule" : [{
            "name" : "quantity",
            "source" : [{
              "context" : "a",
              "element" : "value",
              "variable" : "v"
            }],
            "target" : [{
              "context" : "obs",
              "element" : "value",
              "variable" : "q",
              "transform" : "create",
              "parameter" : [{
                "valueString" : "Quantity"
              }]
            }],
            "rule" : [{
              "name" : "qValue",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "value",
                "transform" : "copy",
                "parameter" : [{
                  "valueId" : "v"
                }]
              }]
            },
            {
              "name" : "qUnit",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "unit",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "mL"
                }]
              }]
            },
            {
              "name" : "qSystem",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://unitsofmeasure.org"
                }]
              }]
            },
            {
              "name" : "qCode",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "mL"
                }]
              }]
            }]
          }]
        }]
      },
      {
        "name" : "measureq_fluid_balance",
        "source" : [{
          "context" : "g",
          "element" : "item",
          "variable" : "it",
          "condition" : "(linkId = 'totals/output') and answer.value.exists()"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entry"
        },
        {
          "context" : "entry",
          "element" : "resource",
          "variable" : "obs",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "base",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          },
          {
            "context" : "entry"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            },
            {
              "valueId" : "entry"
            }]
          }]
        },
        {
          "name" : "category",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetVitalSignsCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            }]
          }]
        },
        {
          "name" : "code",
          "source" : [{
            "context" : "it"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "code",
            "variable" : "cc"
          }],
          "rule" : [{
            "name" : "coding",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "cc",
              "element" : "coding",
              "variable" : "cg"
            }],
            "rule" : [{
              "name" : "sys",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                }]
              }]
            },
            {
              "name" : "cd",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "fluid-balance-fluid-output-total-24-hour"
                }]
              }]
            },
            {
              "name" : "dsp",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Fluid output total 24 hour"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "answer",
          "source" : [{
            "context" : "it",
            "element" : "answer",
            "listMode" : "first",
            "variable" : "a"
          }],
          "rule" : [{
            "name" : "quantity",
            "source" : [{
              "context" : "a",
              "element" : "value",
              "variable" : "v"
            }],
            "target" : [{
              "context" : "obs",
              "element" : "value",
              "variable" : "q",
              "transform" : "create",
              "parameter" : [{
                "valueString" : "Quantity"
              }]
            }],
            "rule" : [{
              "name" : "qValue",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "value",
                "transform" : "copy",
                "parameter" : [{
                  "valueId" : "v"
                }]
              }]
            },
            {
              "name" : "qUnit",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "unit",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "mL"
                }]
              }]
            },
            {
              "name" : "qSystem",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://unitsofmeasure.org"
                }]
              }]
            },
            {
              "name" : "qCode",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "mL"
                }]
              }]
            }]
          }]
        }]
      },
      {
        "name" : "measureq_fluid_balance2",
        "source" : [{
          "context" : "g",
          "element" : "item",
          "variable" : "it",
          "condition" : "(linkId = 'totals/balance') and answer.value.exists()"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entry"
        },
        {
          "context" : "entry",
          "element" : "resource",
          "variable" : "obs",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "base",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          },
          {
            "context" : "entry"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            },
            {
              "valueId" : "entry"
            }]
          }]
        },
        {
          "name" : "category",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetVitalSignsCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            }]
          }]
        },
        {
          "name" : "code",
          "source" : [{
            "context" : "it"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "code",
            "variable" : "cc"
          }],
          "rule" : [{
            "name" : "coding",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "cc",
              "element" : "coding",
              "variable" : "cg"
            }],
            "rule" : [{
              "name" : "sys",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                }]
              }]
            },
            {
              "name" : "cd",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "fluid-balance-over-24-hours"
                }]
              }]
            },
            {
              "name" : "dsp",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Fluid balance over 24 hours"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "answer",
          "source" : [{
            "context" : "it",
            "element" : "answer",
            "listMode" : "first",
            "variable" : "a"
          }],
          "rule" : [{
            "name" : "quantity",
            "source" : [{
              "context" : "a",
              "element" : "value",
              "variable" : "v"
            }],
            "target" : [{
              "context" : "obs",
              "element" : "value",
              "variable" : "q",
              "transform" : "create",
              "parameter" : [{
                "valueString" : "Quantity"
              }]
            }],
            "rule" : [{
              "name" : "qValue",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "value",
                "transform" : "copy",
                "parameter" : [{
                  "valueId" : "v"
                }]
              }]
            },
            {
              "name" : "qUnit",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "unit",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "mL"
                }]
              }]
            },
            {
              "name" : "qSystem",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "http://unitsofmeasure.org"
                }]
              }]
            },
            {
              "name" : "qCode",
              "source" : [{
                "context" : "v"
              }],
              "target" : [{
                "context" : "q",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "mL"
                }]
              }]
            }]
          }]
        }]
      },
      {
        "name" : "narr_fluid_balance_remarks_on_the_fluid_balance_chart",
        "source" : [{
          "context" : "g",
          "element" : "item",
          "variable" : "it",
          "condition" : "(linkId = 'totals/remarks') and answer.value.exists()"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entry"
        },
        {
          "context" : "entry",
          "element" : "resource",
          "variable" : "obs",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "base",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          },
          {
            "context" : "entry"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            },
            {
              "valueId" : "entry"
            }]
          }]
        },
        {
          "name" : "category",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetSurveyCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            }]
          }]
        },
        {
          "name" : "code",
          "source" : [{
            "context" : "it"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "code",
            "variable" : "cc"
          }],
          "rule" : [{
            "name" : "coding",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "cc",
              "element" : "coding",
              "variable" : "cg"
            }],
            "rule" : [{
              "name" : "sys",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                }]
              }]
            },
            {
              "name" : "cd",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "fluid-balance-remarks-on-the-fluid-balance-chart"
                }]
              }]
            },
            {
              "name" : "dsp",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Remarks on the fluid balance chart"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "answer",
          "source" : [{
            "context" : "it",
            "element" : "answer",
            "listMode" : "first",
            "variable" : "a"
          }],
          "rule" : [{
            "name" : "text",
            "source" : [{
              "context" : "a",
              "element" : "value",
              "variable" : "txt"
            }],
            "target" : [{
              "context" : "obs",
              "element" : "note",
              "variable" : "n"
            },
            {
              "context" : "n",
              "element" : "text",
              "transform" : "copy",
              "parameter" : [{
                "valueId" : "txt"
              }]
            }]
          }]
        }]
      }],
      "documentation" : "── The 24-hour totals ──────────────────────────────────────────────────"
    },
    {
      "name" : "urineOutputTotal",
      "source" : [{
        "context" : "qr",
        "condition" : "item.where(linkId = 'hour').item.where(linkId = 'hour/out').item.where(linkId = 'hour/out/urine').answer.value.ofType(Quantity).exists()"
      }],
      "target" : [{
        "context" : "bundle",
        "element" : "entry",
        "variable" : "entry"
      },
      {
        "context" : "entry",
        "element" : "resource",
        "variable" : "obs",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "Observation"
        }]
      }],
      "rule" : [{
        "name" : "base",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "obs"
        },
        {
          "context" : "entry"
        }],
        "dependent" : [{
          "name" : "BuildObsBase",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          },
          {
            "valueId" : "entry"
          }]
        }]
      },
      {
        "name" : "category",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "obs"
        }],
        "dependent" : [{
          "name" : "SetVitalSignsCategory",
          "parameter" : [{
            "valueId" : "qr"
          },
          {
            "valueId" : "obs"
          }]
        }]
      },
      {
        "name" : "code",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "obs",
          "element" : "code",
          "variable" : "cc"
        }],
        "rule" : [{
          "name" : "coding",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "cc",
            "element" : "coding",
            "variable" : "cg"
          }],
          "rule" : [{
            "name" : "sys",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "cg",
              "element" : "system",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "http://loinc.org"
              }]
            }]
          },
          {
            "name" : "cd",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "cg",
              "element" : "code",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "9192-6"
              }]
            }]
          },
          {
            "name" : "dsp",
            "source" : [{
              "context" : "qr"
            }],
            "target" : [{
              "context" : "cg",
              "element" : "display",
              "transform" : "copy",
              "parameter" : [{
                "valueString" : "Urine output 24 hour"
              }]
            }]
          }]
        }]
      },
      {
        "name" : "quantity",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "obs",
          "element" : "value",
          "variable" : "q",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Quantity"
          }]
        }],
        "rule" : [{
          "name" : "qValue",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "q",
            "element" : "value",
            "transform" : "evaluate",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueString" : "item.where(linkId = 'hour').item.where(linkId = 'hour/out').item.where(linkId = 'hour/out/urine').answer.value.ofType(Quantity).value.aggregate($this + $total, 0)"
            }]
          }]
        },
        {
          "name" : "qUnit",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "q",
            "element" : "unit",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "mL"
            }]
          }]
        },
        {
          "name" : "qSystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "q",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://unitsofmeasure.org"
            }]
          }]
        },
        {
          "name" : "qCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "q",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "mL"
            }]
          }]
        }]
      },
      {
        "name" : "sumNote",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "obs",
          "element" : "note",
          "variable" : "n"
        },
        {
          "context" : "n",
          "element" : "text",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "Summed from the hourly rows on the input and output chart"
          }]
        }]
      }],
      "documentation" : "── The urine output total, separately ──────────────────────────────────\r\nUnder its own LOINC code and summed from the hourly rows, because urine\r\noutput is the number that says whether a kidney is still working and it is\r\nasked for on its own, not as part of a balance."
    },
    {
      "name" : "hourlyRows",
      "source" : [{
        "context" : "qr",
        "element" : "item",
        "variable" : "h",
        "condition" : "linkId = 'hour'"
      }],
      "rule" : [{
        "name" : "hourlyIntake",
        "source" : [{
          "context" : "h",
          "element" : "item",
          "variable" : "i",
          "condition" : "(linkId = 'hour/in') and item.answer.value.exists()"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entry"
        },
        {
          "context" : "entry",
          "element" : "resource",
          "variable" : "obs",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "base",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          },
          {
            "context" : "entry"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            },
            {
              "valueId" : "entry"
            }]
          }]
        },
        {
          "name" : "category",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetVitalSignsCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            }]
          }]
        },
        {
          "name" : "code",
          "source" : [{
            "context" : "i"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "code",
            "variable" : "cc"
          }],
          "rule" : [{
            "name" : "coding",
            "source" : [{
              "context" : "i"
            }],
            "target" : [{
              "context" : "cc",
              "element" : "coding",
              "variable" : "cg"
            }],
            "rule" : [{
              "name" : "sys",
              "source" : [{
                "context" : "i"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                }]
              }]
            },
            {
              "name" : "cd",
              "source" : [{
                "context" : "i"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "fluid-balance-hourly-fluid-intake"
                }]
              }]
            },
            {
              "name" : "dsp",
              "source" : [{
                "context" : "i"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Hourly fluid intake"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_parenteral_fluid_given",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/parenteral-fluid') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-parenteral-fluid-given"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Parenteral fluid given"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_parenteral_fluid_volume",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/parenteral-amount') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-parenteral-fluid-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Parenteral fluid volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_second_parenteral_fluid_given",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/parenteral-fluid-2') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-second-parenteral-fluid-given"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Second parenteral fluid given"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_second_parenteral_fluid_volume",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/parenteral-amount-2') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-second-parenteral-fluid-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Second parenteral fluid volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_blood_volume_given",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/blood') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-blood-volume-given"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Blood volume given"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_oral_or_nasogastric_feed_given",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/oral-or-ng-type') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-oral-or-nasogastric-feed-given"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Oral or nasogastric feed given"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_oral_or_nasogastric_volume",
          "source" : [{
            "context" : "i",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/in/oral-or-ng-amount') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-oral-or-nasogastric-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Oral or nasogastric volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "hourTime",
          "source" : [{
            "context" : "h"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetHourTime",
            "parameter" : [{
              "valueId" : "h"
            },
            {
              "valueId" : "obs"
            }]
          }]
        }]
      },
      {
        "name" : "hourlyOutput",
        "source" : [{
          "context" : "h",
          "element" : "item",
          "variable" : "o",
          "condition" : "(linkId = 'hour/out') and item.answer.value.exists()"
        }],
        "target" : [{
          "context" : "bundle",
          "element" : "entry",
          "variable" : "entry"
        },
        {
          "context" : "entry",
          "element" : "resource",
          "variable" : "obs",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }],
        "rule" : [{
          "name" : "base",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          },
          {
            "context" : "entry"
          }],
          "dependent" : [{
            "name" : "BuildObsBase",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            },
            {
              "valueId" : "entry"
            }]
          }]
        },
        {
          "name" : "category",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetVitalSignsCategory",
            "parameter" : [{
              "valueId" : "qr"
            },
            {
              "valueId" : "obs"
            }]
          }]
        },
        {
          "name" : "code",
          "source" : [{
            "context" : "o"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "code",
            "variable" : "cc"
          }],
          "rule" : [{
            "name" : "coding",
            "source" : [{
              "context" : "o"
            }],
            "target" : [{
              "context" : "cc",
              "element" : "coding",
              "variable" : "cg"
            }],
            "rule" : [{
              "name" : "sys",
              "source" : [{
                "context" : "o"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "system",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                }]
              }]
            },
            {
              "name" : "cd",
              "source" : [{
                "context" : "o"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "code",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "fluid-balance-hourly-fluid-output"
                }]
              }]
            },
            {
              "name" : "dsp",
              "source" : [{
                "context" : "o"
              }],
              "target" : [{
                "context" : "cg",
                "element" : "display",
                "transform" : "copy",
                "parameter" : [{
                  "valueString" : "Hourly fluid output"
                }]
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_nasogastric_aspirate_volume",
          "source" : [{
            "context" : "o",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/out/ng-aspirate') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-nasogastric-aspirate-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Nasogastric aspirate volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_vomit_volume",
          "source" : [{
            "context" : "o",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/out/vomit') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-vomit-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Vomit volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_drain_volume",
          "source" : [{
            "context" : "o",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/out/drain') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-drain-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Drain volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_urine_volume",
          "source" : [{
            "context" : "o",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/out/urine') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-urine-volume"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Urine volume"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "comp_fluid_balance_stool_passed",
          "source" : [{
            "context" : "o",
            "element" : "item",
            "variable" : "it",
            "condition" : "(linkId = 'hour/out/stool') and answer.value.exists()"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "component",
            "variable" : "comp"
          }],
          "rule" : [{
            "name" : "code",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp",
              "element" : "code",
              "variable" : "cc"
            }],
            "rule" : [{
              "name" : "coding",
              "source" : [{
                "context" : "it"
              }],
              "target" : [{
                "context" : "cc",
                "element" : "coding",
                "variable" : "cg"
              }],
              "rule" : [{
                "name" : "sys",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
                  }]
                }]
              },
              {
                "name" : "cd",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "fluid-balance-stool-passed"
                  }]
                }]
              },
              {
                "name" : "dsp",
                "source" : [{
                  "context" : "it"
                }],
                "target" : [{
                  "context" : "cg",
                  "element" : "display",
                  "transform" : "copy",
                  "parameter" : [{
                    "valueString" : "Stool passed"
                  }]
                }]
              }]
            }]
          },
          {
            "name" : "value",
            "source" : [{
              "context" : "it"
            }],
            "target" : [{
              "context" : "comp"
            }],
            "dependent" : [{
              "name" : "SetComponentValue",
              "parameter" : [{
                "valueId" : "it"
              },
              {
                "valueId" : "comp"
              }]
            }]
          }]
        },
        {
          "name" : "hourTime",
          "source" : [{
            "context" : "h"
          }],
          "target" : [{
            "context" : "obs"
          }],
          "dependent" : [{
            "name" : "SetHourTime",
            "parameter" : [{
              "valueId" : "h"
            },
            {
              "valueId" : "obs"
            }]
          }]
        }]
      }],
      "documentation" : "── One hourly row ──────────────────────────────────────────────────────"
    }]
  },
  {
    "name" : "SetHourTime",
    "input" : [{
      "name" : "h",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "hourTimeRule",
      "source" : [{
        "context" : "h",
        "element" : "item",
        "variable" : "it",
        "condition" : "(linkId = 'hour/time') and answer.value.exists()"
      }],
      "rule" : [{
        "name" : "answer",
        "source" : [{
          "context" : "it",
          "element" : "answer",
          "listMode" : "first",
          "variable" : "a"
        }],
        "rule" : [{
          "name" : "timeNote",
          "source" : [{
            "context" : "a",
            "element" : "value",
            "variable" : "t"
          }],
          "target" : [{
            "context" : "obs",
            "element" : "note",
            "variable" : "n"
          },
          {
            "context" : "n",
            "element" : "text",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "Recorded against the clock hour on the input and output chart"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "BuildObsBase",
    "documentation" : "─────────────────────────────────────────────────────────────────────────────\r\nShared scaffolding. Repeated in each map rather than imported: the transform\r\nengine resolves `imports` against whatever StructureMaps happen to be on the\r\nserver, and a form that stops extracting because a shared map was not\r\nuploaded is a worse failure than a duplicated group.\r\nTwo notes on what the publisher's StructureMap validator says about this file.\r\nSource parameters below are left untyped on purpose. Writing `: Element` makes\r\nthe validator compare QuestionnaireResponse.item against the literal 'Element'\r\nand report them as incompatible with each other, which is noise, not a finding.\r\n`evaluate(context, expression)` is flagged as \"takes 1 parameter but 2 were\r\nfound\". Leave it. The FML parser in the same jar refuses the one-argument form\r\noutright -- it wants a parameter, a comma, then the FHIRPath -- so the\r\npublisher is objecting to what its own compiler emits. Two arguments is the\r\nonly form that compiles, and it is what the R5 transform engine executes.\r\n─────────────────────────────────────────────────────────────────────────────",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "target"
    },
    {
      "name" : "entry",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "responseProvenance",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs"
      }],
      "dependent" : [{
        "name" : "SetResponseProvenance",
        "parameter" : [{
          "valueId" : "qr"
        },
        {
          "valueId" : "obs"
        }]
      }]
    },
    {
      "name" : "idAndFullUrl",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "id",
        "transform" : "uuid"
      }],
      "dependent" : [{
        "name" : "SetObservationFullUrl",
        "parameter" : [{
          "valueId" : "obs"
        },
        {
          "valueId" : "entry"
        }]
      }]
    },
    {
      "name" : "entryRequest",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "entry",
        "element" : "request",
        "variable" : "request"
      }],
      "rule" : [{
        "name" : "requestMethod",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "request",
          "element" : "method",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "POST"
          }]
        }]
      },
      {
        "name" : "requestUrl",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "request",
          "element" : "url",
          "transform" : "copy",
          "parameter" : [{
            "valueString" : "Observation"
          }]
        }]
      }]
    },
    {
      "name" : "status",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "status",
        "transform" : "copy",
        "parameter" : [{
          "valueString" : "final"
        }]
      }]
    },
    {
      "name" : "subject",
      "source" : [{
        "context" : "qr",
        "element" : "subject",
        "variable" : "s"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "subject",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "s"
        }]
      }]
    },
    {
      "name" : "encounter",
      "source" : [{
        "context" : "qr",
        "element" : "encounter",
        "variable" : "e"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "encounter",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "e"
        }]
      }]
    },
    {
      "name" : "effective",
      "source" : [{
        "context" : "qr",
        "element" : "authored",
        "variable" : "t"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "effective",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "t"
        }]
      }]
    },
    {
      "name" : "performerFromSource",
      "source" : [{
        "context" : "qr",
        "element" : "source",
        "variable" : "src"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "performer",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "src"
        }]
      }]
    },
    {
      "name" : "performerFallback",
      "source" : [{
        "context" : "qr",
        "condition" : "source.exists().not()"
      }],
      "rule" : [{
        "name" : "performerFromAuthor",
        "source" : [{
          "context" : "qr",
          "element" : "author",
          "variable" : "a"
        }],
        "target" : [{
          "context" : "obs",
          "element" : "performer",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "a"
          }]
        }]
      }]
    },
    {
      "name" : "linkQuestionnaireResponse",
      "source" : [{
        "context" : "qr",
        "element" : "id",
        "variable" : "qid",
        "condition" : "$this.hasValue()"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "derivedFrom",
        "variable" : "ref",
        "transform" : "create",
        "parameter" : [{
          "valueString" : "Reference"
        }]
      },
      {
        "context" : "ref",
        "element" : "reference",
        "transform" : "copy",
        "parameter" : [{
          "valueId" : "qid"
        }]
      }],
      "documentation" : "A stored response's id already reads \"QuestionnaireResponse/<id>\", so it is\r\na relative reference as it stands. The hasValue() guard is what stops an\r\nunsaved response -- one posted straight to $extract rather than saved first\r\n-- from writing \"QuestionnaireResponse/null\" into the record."
    }]
  },
  {
    "name" : "SetObservationFullUrl",
    "input" : [{
      "name" : "obs",
      "type" : "Observation",
      "mode" : "source"
    },
    {
      "name" : "entry",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "assignFullUrl",
      "source" : [{
        "context" : "obs",
        "element" : "id",
        "variable" : "id"
      }],
      "target" : [{
        "context" : "entry",
        "element" : "fullUrl",
        "transform" : "append",
        "parameter" : [{
          "valueString" : "https://fhir.slade360.co.ke/fhir/Observation/"
        },
        {
          "valueId" : "id"
        }]
      }]
    }]
  },
  {
    "name" : "SetComponentCodedValue",
    "documentation" : "The two answer shapes a component can carry. Both read the answer through the\r\nuntyped `.value` accessor: reading `valueCoding` or `valueQuantity` by its\r\ntyped property name fails at transform time on HAPI R5 with \"Attempt to read\r\ninvalid property ... on QuestionnaireResponse.item.answer\".",
    "input" : [{
      "name" : "it",
      "mode" : "source"
    },
    {
      "name" : "comp",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "componentAnswer",
      "source" : [{
        "context" : "it",
        "element" : "answer",
        "listMode" : "first",
        "variable" : "a"
      }],
      "rule" : [{
        "name" : "codedValue",
        "source" : [{
          "context" : "a",
          "element" : "value",
          "variable" : "cv"
        }],
        "target" : [{
          "context" : "comp",
          "element" : "value",
          "variable" : "cc",
          "transform" : "create",
          "parameter" : [{
            "valueString" : "CodeableConcept"
          }]
        }],
        "rule" : [{
          "name" : "valueCoding",
          "source" : [{
            "context" : "cv"
          }],
          "target" : [{
            "context" : "cc",
            "element" : "coding",
            "transform" : "copy",
            "parameter" : [{
              "valueId" : "cv"
            }]
          }]
        },
        {
          "name" : "valueText",
          "source" : [{
            "context" : "cv",
            "element" : "display",
            "variable" : "d"
          }],
          "target" : [{
            "context" : "cc",
            "element" : "text",
            "transform" : "copy",
            "parameter" : [{
              "valueId" : "d"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetComponentValue",
    "input" : [{
      "name" : "it",
      "mode" : "source"
    },
    {
      "name" : "comp",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "componentAnswer",
      "source" : [{
        "context" : "it",
        "element" : "answer",
        "listMode" : "first",
        "variable" : "a"
      }],
      "rule" : [{
        "name" : "plainValue",
        "source" : [{
          "context" : "a",
          "element" : "value",
          "variable" : "v"
        }],
        "target" : [{
          "context" : "comp",
          "element" : "value",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "v"
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetSurveyCategory",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "category",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "category",
        "variable" : "cat"
      }],
      "rule" : [{
        "name" : "categoryCoding",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "cat",
          "element" : "coding",
          "variable" : "coding"
        }],
        "rule" : [{
          "name" : "categorySystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
            }]
          }]
        },
        {
          "name" : "categoryCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "survey"
            }]
          }]
        },
        {
          "name" : "categoryDisplay",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "display",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "Survey"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetVitalSignsCategory",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "obs",
      "type" : "Observation",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "category",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "obs",
        "element" : "category",
        "variable" : "cat"
      }],
      "rule" : [{
        "name" : "categoryCoding",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "cat",
          "element" : "coding",
          "variable" : "coding"
        }],
        "rule" : [{
          "name" : "categorySystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
            }]
          }]
        },
        {
          "name" : "categoryCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "vital-signs"
            }]
          }]
        },
        {
          "name" : "categoryDisplay",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "coding",
            "element" : "display",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "Vital Signs"
            }]
          }]
        }]
      }]
    }]
  },
  {
    "name" : "SetResponseProvenance",
    "documentation" : "── Provenance and tenancy ───────────────────────────────────────────────────\r\nTwo tags on everything this map creates. The first says which questionnaire\r\nproduced it, so a form that reopens mid-admission recalls its own earlier\r\nentries and not another form's. The second copies the tenant tags off the\r\nresponse, because nothing else on the path puts them there.\r\nThe code is the form's document type, not the questionnaire's id: every\r\nenvironment mints its own ids, and there is only one set of maps, so an id\r\nhere would tie the tag to whichever environment stamped it.\r\n── Provenance and tenancy ───────────────────────────────────────────────────",
    "input" : [{
      "name" : "qr",
      "type" : "QR",
      "mode" : "source"
    },
    {
      "name" : "r",
      "mode" : "target"
    }],
    "rule" : [{
      "name" : "provenanceMeta",
      "source" : [{
        "context" : "qr"
      }],
      "target" : [{
        "context" : "r",
        "element" : "meta",
        "variable" : "m"
      }],
      "rule" : [{
        "name" : "provenanceTag",
        "source" : [{
          "context" : "qr"
        }],
        "target" : [{
          "context" : "m",
          "element" : "tag",
          "variable" : "t"
        }],
        "rule" : [{
          "name" : "provenanceSystem",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "t",
            "element" : "system",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "http://slade360edi.com/questionnaire-provenance"
            }]
          }]
        },
        {
          "name" : "provenanceCode",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "t",
            "element" : "code",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "hdu-input-output-chart"
            }]
          }]
        },
        {
          "name" : "provenanceDisplay",
          "source" : [{
            "context" : "qr"
          }],
          "target" : [{
            "context" : "t",
            "element" : "display",
            "transform" : "copy",
            "parameter" : [{
              "valueString" : "HDU input and output chart"
            }]
          }]
        }]
      }]
    },
    {
      "name" : "tenantTags",
      "source" : [{
        "context" : "qr",
        "element" : "meta",
        "variable" : "qm"
      }],
      "rule" : [{
        "name" : "copyTag",
        "source" : [{
          "context" : "qm",
          "element" : "tag",
          "variable" : "qt"
        }],
        "target" : [{
          "context" : "r",
          "element" : "meta",
          "variable" : "m"
        },
        {
          "context" : "m",
          "element" : "tag",
          "transform" : "copy",
          "parameter" : [{
            "valueId" : "qt"
          }]
        }]
      }],
      "documentation" : "Every tag the response carries, onto the resource. `meta` is 0..1, so this\r\nlands on the same meta the rule above created rather than a second one."
    }]
  }]
}