SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build

SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions

: Inpatient Adult General Admission Assessment Extraction - TTL Representation

Active as of 2026-09-14

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

<http://hl7.org/fhir/StructureMap/ExtractInpatientAdultGeneralAdmissionAssessment> a fhir:StructureMap ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "ExtractInpatientAdultGeneralAdmissionAssessment"] ; # 
  fhir:text [
     fhir:status [ fhir:v "generated" ] ;
     fhir:div [ fhir:v "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ExtractInpatientAdultGeneralAdmissionAssessment</b></p><a name=\"ExtractInpatientAdultGeneralAdmissionAssessment\"> </a><a name=\"hcExtractInpatientAdultGeneralAdmissionAssessment\"> </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/ExtractInpatientAdultGeneralAdmissionAssessment'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ExtractInpatientAdultGeneralAdmissionAssessment'</span>\r\n<span style=\"color: #cc00cc\">/// <b>title</b> = </span><span style=\"color: blue\">'Inpatient Adult General Admission Assessment Extraction'</span>\r\n<span style=\"color: #cc00cc\">/// <b>status</b> = </span><span style=\"color: blue\">'active'</span>\r\n<span style=\"color: #cc00cc\">/// <b>description</b> = </span><span style=\"color: blue\">'Turns a response to the adult general admission assessment into a chief-complaint Observation, one Observation per vital, and a Composition that files the assessment and carries the allergies and medication the assessor reviewed. Nothing is copied: the allergies and medication are already AllergyIntolerance and MedicationRequest resources -- the form loads them off the server -- so they become section entries. The Composition exists for exactly that reason; without a container those two rows of the assessment extract to nothing at all.'</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">&quot; </span><b>alias </b>QR <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">&quot; </span><b>alias </b>Bundle <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">&quot; </span><b>alias </b>Observation <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R5/composition.html\" title=\"Composition\">http://hl7.org/fhir/StructureDefinition/Composition</a><span style=\"color: navy\">&quot; </span><b>alias </b>Composition <b>as </b><b>target</b>\r\n\r\n<b>group </b>ExtractInpatientAdultGeneralAdmissionAssessment<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\">── Presenting complaint ───────────────────────────────────────────────────</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">Category `social-history` and code 10154-3 match what extract-vital-signs</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">already produces for a chief complaint, so a consumer querying</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">category=social-history&amp;code=10154-3 gets both without knowing which form</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">the complaint came from.</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">itC</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'complaint') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    itC.answer first<b> as </b><span style=\"color: maroon\">aC</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      aC<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryC</span><span style=\"color: navy\">, </span> entryC.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obsC</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span> obsC<span style=\"color: navy\">, </span> entryC<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsC</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryC</span><span style=\"color: navy\">)</span> <i>&quot;complaintBase&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>obsC<b> then </b>SetSocialHistoryCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsC</span><span style=\"color: navy\">)</span> <i>&quot;complaintCategory&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>obsC.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n            qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'10154-3'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n            qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Chief complaint Narrative - Reported'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;complaintCode&quot;</i><span style=\"color: navy\">;</span>\r\n        aC.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsC.value = <span style=\"color: maroon\">v</span> <i>&quot;complaintValue&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;complaintObservation&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;complaintAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;complaintRule&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── Vitals on admission ────────────────────────────────────────────────────</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">Six items, six Observations, exactly as the form extracted before it had a</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">map. Each answer is already a Quantity -- the item is type `quantity` with</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">a questionnaire-unitOption pinning the unit -- so it is copied through</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">whole. Rebuilding it here would mean restating a unit the client actually</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">sent, which turns a wrong unit into a wrong reading.</span>\r\n  qr.item<b> as </b><span style=\"color: maroon\">gV</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'vitals'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    gV.item<b> as </b><span style=\"color: maroon\">itS</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'vitals.bpSys') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itS.answer first<b> as </b><span style=\"color: maroon\">aS</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aS<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryS</span><span style=\"color: navy\">, </span> entryS.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\">obsS</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span> obsS<span style=\"color: navy\">, </span> entryS<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsS</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryS</span><span style=\"color: navy\">)</span> <i>&quot;bpSysBase&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsS<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsS</span><span style=\"color: navy\">)</span> <i>&quot;bpSysCategory&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsS.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'8480-6'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Systolic blood pressure'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;bpSysCode&quot;</i><span style=\"color: navy\">;</span>\r\n          aS.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsS.value = <span style=\"color: maroon\">v</span> <i>&quot;bpSysValue&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;bpSysObservation&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bpSysAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;bpSysRule&quot;</i><span style=\"color: navy\">;</span>\r\n    gV.item<b> as </b><span style=\"color: maroon\">itD</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'vitals.bpDia') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itD.answer first<b> as </b><span style=\"color: maroon\">aD</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aD<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryD</span><span style=\"color: navy\">, </span> entryD.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\">obsD</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span> obsD<span style=\"color: navy\">, </span> entryD<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsD</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryD</span><span style=\"color: navy\">)</span> <i>&quot;bpDiaBase&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsD<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsD</span><span style=\"color: navy\">)</span> <i>&quot;bpDiaCategory&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsD.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'8462-4'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Diastolic blood pressure'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;bpDiaCode&quot;</i><span style=\"color: navy\">;</span>\r\n          aD.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsD.value = <span style=\"color: maroon\">v</span> <i>&quot;bpDiaValue&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;bpDiaObservation&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bpDiaAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;bpDiaRule&quot;</i><span style=\"color: navy\">;</span>\r\n    gV.item<b> as </b><span style=\"color: maroon\">itP</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'vitals.pulse') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itP.answer first<b> as </b><span style=\"color: maroon\">aP</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aP<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryP</span><span style=\"color: navy\">, </span> entryP.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\">obsP</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span> obsP<span style=\"color: navy\">, </span> entryP<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsP</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryP</span><span style=\"color: navy\">)</span> <i>&quot;pulseBase&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsP<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsP</span><span style=\"color: navy\">)</span> <i>&quot;pulseCategory&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsP.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'8867-4'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Heart rate'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;pulseCode&quot;</i><span style=\"color: navy\">;</span>\r\n          aP.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsP.value = <span style=\"color: maroon\">v</span> <i>&quot;pulseValue&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;pulseObservation&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;pulseAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;pulseRule&quot;</i><span style=\"color: navy\">;</span>\r\n    gV.item<b> as </b><span style=\"color: maroon\">itT</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'vitals.temp') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itT.answer first<b> as </b><span style=\"color: maroon\">aT</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aT<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryT</span><span style=\"color: navy\">, </span> entryT.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\">obsT</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span> obsT<span style=\"color: navy\">, </span> entryT<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsT</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryT</span><span style=\"color: navy\">)</span> <i>&quot;tempBase&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsT<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsT</span><span style=\"color: navy\">)</span> <i>&quot;tempCategory&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsT.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'8310-5'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Body temperature'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;tempCode&quot;</i><span style=\"color: navy\">;</span>\r\n          aT.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsT.value = <span style=\"color: maroon\">v</span> <i>&quot;tempValue&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;tempObservation&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;tempAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;tempRule&quot;</i><span style=\"color: navy\">;</span>\r\n    gV.item<b> as </b><span style=\"color: maroon\">itR</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'vitals.resp') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itR.answer first<b> as </b><span style=\"color: maroon\">aR</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aR<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryR</span><span style=\"color: navy\">, </span> entryR.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\">obsR</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span> obsR<span style=\"color: navy\">, </span> entryR<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsR</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryR</span><span style=\"color: navy\">)</span> <i>&quot;respBase&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsR<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsR</span><span style=\"color: navy\">)</span> <i>&quot;respCategory&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsR.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'9279-1'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Respiratory rate'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;respCode&quot;</i><span style=\"color: navy\">;</span>\r\n          aR.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsR.value = <span style=\"color: maroon\">v</span> <i>&quot;respValue&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;respObservation&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;respAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;respRule&quot;</i><span style=\"color: navy\">;</span>\r\n    gV.item<b> as </b><span style=\"color: maroon\">itO</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'vitals.spo2') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itO.answer first<b> as </b><span style=\"color: maroon\">aO</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aO<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entryO</span><span style=\"color: navy\">, </span> entryO.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\">obsO</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr<span style=\"color: navy\"><b> -&gt; </b></span> obsO<span style=\"color: navy\">, </span> entryO<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsO</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entryO</span><span style=\"color: navy\">)</span> <i>&quot;spo2Base&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsO<b> then </b>SetVitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obsO</span><span style=\"color: navy\">)</span> <i>&quot;spo2Category&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<span style=\"color: navy\"><b> -&gt; </b></span>obsO.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr<span style=\"color: navy\"><b> -&gt; </b></span>code.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>&quot;codeSystem&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.code = <span style=\"color: blue\">'59408-5'</span> <i>&quot;codeCode&quot;</i><span style=\"color: navy\">;</span>\r\n              qr<span style=\"color: navy\"><b> -&gt; </b></span>coding.display = <span style=\"color: blue\">'Oxygen saturation in Arterial blood by Pulse oximetry'</span> <i>&quot;codeDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;codeCoding&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;spo2Code&quot;</i><span style=\"color: navy\">;</span>\r\n          aO.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -&gt; </b></span>obsO.value = <span style=\"color: maroon\">v</span> <i>&quot;spo2Value&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;spo2Observation&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;spo2Answer&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;spo2Rule&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;vitalsGroupRule&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">── The assessment as a filed document ─────────────────────────────────────</span>\r\n  qr<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\">'Composition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span> comp<span style=\"color: navy\">, </span> entry<b> then </b>BuildNoteBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;noteBase&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>comp.name = <span style=\"color: blue\">'InpatientAdultGeneralAdmissionAssessment'</span> <i>&quot;noteName&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>comp.title = <span style=\"color: blue\">'Adult general admission assessment'</span> <i>&quot;noteTitle&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>comp.type<b> as </b><span style=\"color: maroon\">ty</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr<span style=\"color: navy\"><b> -&gt; </b></span>ty.coding<b> as </b><span style=\"color: maroon\">sghi</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr<span style=\"color: navy\"><b> -&gt; </b></span>sghi.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/inpatient-document-type-codesystem'</span> <i>&quot;sghiSystem&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>sghi.code = <span style=\"color: blue\">'adult-general-admission-assessment'</span> <i>&quot;sghiCode&quot;</i><span style=\"color: navy\">;</span>\r\n        qr<span style=\"color: navy\"><b> -&gt; </b></span>sghi.display = <span style=\"color: blue\">'Adult general admission assessment'</span> <i>&quot;sghiDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;sghiCoding&quot;</i><span style=\"color: navy\">;</span>\r\n      qr<span style=\"color: navy\"><b> -&gt; </b></span>ty.text = <span style=\"color: blue\">'Adult general admission assessment'</span> <i>&quot;typeText&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;noteType&quot;</i><span style=\"color: navy\">;</span>\r\n    qr.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'complaint') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.section<b> as </b><span style=\"color: maroon\">sec</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      it<span style=\"color: navy\"><b> -&gt; </b></span>sec.title = <span style=\"color: blue\">'Presenting complaint'</span> <i>&quot;complaintTitle&quot;</i><span style=\"color: navy\">;</span>\r\n      it<span style=\"color: navy\"><b> -&gt; </b></span>sec<b> then </b>AddSectionText<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">sec</span><span style=\"color: navy\">)</span> <i>&quot;complaintSectionText&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;complaintSectionRule&quot;</i><span style=\"color: navy\">;</span>\r\n    qr.item<b> as </b><span style=\"color: maroon\">itA</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'allergies') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.section<b> as </b><span style=\"color: maroon\">secA</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itA<span style=\"color: navy\"><b> -&gt; </b></span>secA.title = <span style=\"color: blue\">'Known allergies'</span> <i>&quot;allergiesTitle&quot;</i><span style=\"color: navy\">;</span>\r\n      itA.answer<b> as </b><span style=\"color: maroon\">aA</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aA.value<b> as </b><span style=\"color: maroon\">av</span><span style=\"color: navy\"><b> -&gt; </b></span>secA.entry = <span style=\"color: maroon\">av</span> <i>&quot;allergiesEntry&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;allergiesAnswers&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;allergiesRule&quot;</i><span style=\"color: navy\">;</span>\r\n    qr.item<b> as </b><span style=\"color: maroon\">itM</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'meds') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.section<b> as </b><span style=\"color: maroon\">secM</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      itM<span style=\"color: navy\"><b> -&gt; </b></span>secM.title = <span style=\"color: blue\">'Current medication'</span> <i>&quot;medsTitle&quot;</i><span style=\"color: navy\">;</span>\r\n      itM.answer<b> as </b><span style=\"color: maroon\">aM</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        aM.value<b> as </b><span style=\"color: maroon\">mv</span><span style=\"color: navy\"><b> -&gt; </b></span>secM.entry = <span style=\"color: maroon\">mv</span> <i>&quot;medsEntry&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;medsAnswers&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;medsRule&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;composition&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Shared scaffolding. Repeated in each map rather than imported: the transform</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">engine resolves `imports` against whatever StructureMaps happen to be on the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">server, and a form that stops extracting because a shared map was not</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">uploaded is a worse failure than a duplicated group.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Two notes on what the publisher's StructureMap validator says about this file.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Source parameters below are left untyped on purpose. Writing `: Element` makes</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">the validator compare QuestionnaireResponse.item against the literal 'Element'</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">and report them as incompatible with each other, which is noise, not a finding.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Untyped, it says only that it cannot check the paths.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">`evaluate(context, expression)` is flagged as &quot;takes 1 parameter but 2 were</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">found&quot;. Leave it. The FML parser in the same jar refuses the one-argument form</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">outright -- it wants a parameter, a comma, then the FHIRPath -- so the publisher</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">is objecting to what its own compiler emits. Two arguments is the only form that</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">compiles, and it is what the R5 transform engine executes.</span>\r\n<b>group </b>BuildObsBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetObservationFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>&quot;idAndFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>entry.request<b> as </b><span style=\"color: maroon\">request</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>&quot;requestMethod&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>request.url = <span style=\"color: blue\">'Observation'</span> <i>&quot;requestUrl&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;entryRequest&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>&quot;status&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.subject = <span style=\"color: maroon\">s</span><span style=\"color: navy\">;</span>\r\n  qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -&gt; </b></span>obs.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">`effective`, not `effectiveDateTime`: the R5 transform engine writes choice</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">elements by their base name and rejects the typed form. This form asks for</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">no time of its own, so the moment the response was authored is the best</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">available.</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\">`qr.id` already resolves to the type-qualified relative reference under this</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">engine, so it is used unprefixed.</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>obs.derivedFrom = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ref</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.id<b> as </b><span style=\"color: maroon\">qid</span><span style=\"color: navy\"><b> -&gt; </b></span>ref.reference = <span style=\"color: maroon\">qid</span> <i>&quot;derivedFromRef&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;linkQuestionnaireResponse&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><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><b>group </b>SetSocialHistoryCategory<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\">'social-history'</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\">'Social History'</span> <i>&quot;categoryDisplay&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;categoryCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;category&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetObservationFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  obs.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -&gt; </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Observation/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>&quot;assignFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>BuildNoteBase<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\">comp</span><span style=\"color: navy\"> : </span>Composition, <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>comp.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetCompositionFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">comp</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\">'Composition'</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>comp.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>comp.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>comp.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">Composition.date is 1..1. `authored` is only 0..1 on the response, so when a</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">client sends none the extraction time stands in. It is a poor substitute for</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">when the note was written, but a document with no date at all is worse, and</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">extraction happens moments after submission in practice.</span>\r\n  qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.date = <span style=\"color: maroon\">t</span> <i>&quot;date&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<b> where </b><span style=\"color: navy\">(</span>authored.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>comp.date = evaluate<span style=\"color: navy\">(</span>qr<span style=\"color: navy\">, </span>now()<span style=\"color: navy\">)</span> <i>&quot;dateFromExtractionTime&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;dateFallback&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">Composition.author is 1..1 minimum. R5 QuestionnaireResponse carries both</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">`author` (who recorded the answers) and `source` (who supplied them); the</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">author is the one who wrote the note, so it wins, and `source` only stands</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">in when the client did not send an author. If the response carries neither,</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">the note comes out unauthored -- there is nothing on a QuestionnaireResponse</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">to invent one from, and guessing at who wrote a clinical note is not a thing</span>\r\n  <span style=\"color: navy\">// </span><span style=\"color: green\">a map should do.</span>\r\n  qr.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.author = <span style=\"color: maroon\">a</span> <i>&quot;authorFromAuthor&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<b> where </b><span style=\"color: navy\">(</span>author.exists().not()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -&gt; </b></span>comp.author = <span style=\"color: maroon\">src</span> <i>&quot;authorFromSource&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;authorFallback&quot;</i><span style=\"color: navy\">;</span>\r\n  qr<span style=\"color: navy\"><b> -&gt; </b></span>comp.relatesTo<b> as </b><span style=\"color: maroon\">rel</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr<span style=\"color: navy\"><b> -&gt; </b></span>rel.type = <span style=\"color: blue\">'derived-from'</span> <i>&quot;relatesToType&quot;</i><span style=\"color: navy\">;</span>\r\n    qr<span style=\"color: navy\"><b> -&gt; </b></span>rel.resourceReference = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ref</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr.id<b> as </b><span style=\"color: maroon\">qid</span><span style=\"color: navy\"><b> -&gt; </b></span>ref.reference = <span style=\"color: maroon\">qid</span> <i>&quot;relatesToRef&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;relatesToTarget&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;linkQuestionnaireResponse&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>AddSectionText<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">sec</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>sec.text<b> as </b><span style=\"color: maroon\">narrative</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      v<span style=\"color: navy\"><b> -&gt; </b></span>narrative.status = <span style=\"color: blue\">'generated'</span> <i>&quot;narrativeStatus&quot;</i><span style=\"color: navy\">;</span>\r\n      v<span style=\"color: navy\"><b> -&gt; </b></span>narrative.div = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'xhtml'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">xhtml</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        v<span style=\"color: navy\"><b> -&gt; </b></span>xhtml.value = evaluate<span style=\"color: navy\">(</span>a<span style=\"color: navy\">, </span>'&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;p&gt;' + value.toString().escape('html') + '&lt;/p&gt;&lt;/div&gt;'<span style=\"color: navy\">)</span> <i>&quot;narrativeDiv&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;narrativeXhtml&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;sectionText&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;sectionAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetCompositionFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">comp</span><span style=\"color: navy\"> : </span>Composition, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  comp.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/Composition/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>&quot;assignFullUrl&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"^^rdf:XMLLiteral ]
  ] ; # 
  fhir:url [ fhir:v "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractInpatientAdultGeneralAdmissionAssessment"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.1.0"] ; # 
  fhir:name [ fhir:v "ExtractInpatientAdultGeneralAdmissionAssessment"] ; # 
  fhir:title [ fhir:v "Inpatient Adult General Admission Assessment Extraction"] ; # 
  fhir:status [ fhir:v "active"] ; # 
  fhir:date [ fhir:v "2026-09-14T06:31:13+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "Kathurima Kimathi"] ; # 
  fhir:contact ( [
     fhir:name [ fhir:v "Kathurima Kimathi" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "https://www.linkedin.com/in/kathurima-kimathi/" ]
     ] [
       fhir:system [ fhir:v "email" ] ;
       fhir:value [ fhir:v "kathurimakimathi415@gmail.com" ]
     ] )
  ] [
     fhir:name [ fhir:v "Oscar John" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "email" ] ;
       fhir:value [ fhir:v "oscarjohnotieno@gmail.com" ] ;
       fhir:use [ fhir:v "work" ]
     ] )
  ] [
     fhir:name [ fhir:v "Kennedy Omondi" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "email" ] ;
       fhir:value [ fhir:v "kennankole@gmail.com" ] ;
       fhir:use [ fhir:v "work" ]
     ] )
  ] ) ; # 
  fhir:description [ fhir:v "Turns a response to the adult general admission assessment into a chief-complaint Observation, one Observation per vital, and a Composition that files the assessment and carries the allergies and medication the assessor reviewed. Nothing is copied: the allergies and medication are already AllergyIntolerance and MedicationRequest resources -- the form loads them off the server -- so they become section entries. The Composition exists for exactly that reason; without a container those two rows of the assessment extract to nothing at all."] ; # 
  fhir:structure ( [
     fhir:url [
       fhir:v "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse"^^xsd:anyURI ;
       fhir:link <http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse>
     ] ;
     fhir:mode [ fhir:v "source" ] ;
     fhir:alias [ fhir:v "QR" ]
  ] [
     fhir:url [
       fhir:v "http://hl7.org/fhir/StructureDefinition/Bundle"^^xsd:anyURI ;
       fhir:link <http://hl7.org/fhir/StructureDefinition/Bundle>
     ] ;
     fhir:mode [ fhir:v "target" ] ;
     fhir:alias [ fhir:v "Bundle" ]
  ] [
     fhir:url [
       fhir:v "http://hl7.org/fhir/StructureDefinition/Observation"^^xsd:anyURI ;
       fhir:link <http://hl7.org/fhir/StructureDefinition/Observation>
     ] ;
     fhir:mode [ fhir:v "target" ] ;
     fhir:alias [ fhir:v "Observation" ]
  ] [
     fhir:url [
       fhir:v "http://hl7.org/fhir/StructureDefinition/Composition"^^xsd:anyURI ;
       fhir:link <http://hl7.org/fhir/StructureDefinition/Composition>
     ] ;
     fhir:mode [ fhir:v "target" ] ;
     fhir:alias [ fhir:v "Composition" ]
  ] ) ; # 
  fhir:group ( [
     fhir:name [ fhir:v "ExtractInpatientAdultGeneralAdmissionAssessment" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "qr" ] ;
       fhir:type [ fhir:v "QR" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "bundle" ] ;
       fhir:type [ fhir:v "Bundle" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "setBundleType" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "bundle" ] ;
         fhir:element [ fhir:v "type" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "transaction"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "complaintRule" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "item" ] ;
         fhir:variable [ fhir:v "itC" ] ;
         fhir:condition [ fhir:v "(linkId = 'complaint') and answer.value.exists()" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "complaintAnswer" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "itC" ] ;
           fhir:element [ fhir:v "answer" ] ;
           fhir:listMode [ fhir:v "first" ] ;
           fhir:variable [ fhir:v "aC" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "complaintObservation" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "aC" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "bundle" ] ;
             fhir:element [ fhir:v "entry" ] ;
             fhir:variable [ fhir:v "entryC" ]
           ] [
             fhir:context [ fhir:v "entryC" ] ;
             fhir:element [ fhir:v "resource" ] ;
             fhir:variable [ fhir:v "obsC" ] ;
             fhir:transform [ fhir:v "create" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Observation"
               ]
             ] )
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "complaintBase" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "qr" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "obsC" ]
             ] [
               fhir:context [ fhir:v "entryC" ]
             ] ) ;
             fhir:dependent ( [
               fhir:name [ fhir:v "BuildObsBase" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "qr"
                 ]
               ] [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "obsC"
                 ]
               ] [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "entryC"
                 ]
               ] )
             ] )
           ] [
             fhir:name [ fhir:v "complaintCategory" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "qr" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "obsC" ]
             ] ) ;
             fhir:dependent ( [
               fhir:name [ fhir:v "SetSocialHistoryCategory" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "qr"
                 ]
               ] [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "obsC"
                 ]
               ] )
             ] )
           ] [
             fhir:name [ fhir:v "complaintCode" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "qr" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "obsC" ] ;
               fhir:element [ fhir:v "code" ] ;
               fhir:variable [ fhir:v "code" ]
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "codeCoding" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "code" ] ;
                 fhir:element [ fhir:v "coding" ] ;
                 fhir:variable [ fhir:v "coding" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeSystem" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "coding" ] ;
                   fhir:element [ fhir:v "system" ] ;
                   fhir:transform [ fhir:v "copy" ] ;
                   fhir:parameter ( [
                     fhir:value [
                       a fhir:string ;
                       fhir:v "http://loinc.org"
                     ]
                   ] )
                 ] )
               ] [
                 fhir:name [ fhir:v "codeCode" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "coding" ] ;
                   fhir:element [ fhir:v "code" ] ;
                   fhir:transform [ fhir:v "copy" ] ;
                   fhir:parameter ( [
                     fhir:value [
                       a fhir:string ;
                       fhir:v "10154-3"
                     ]
                   ] )
                 ] )
               ] [
                 fhir:name [ fhir:v "codeDisplay" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "coding" ] ;
                   fhir:element [ fhir:v "display" ] ;
                   fhir:transform [ fhir:v "copy" ] ;
                   fhir:parameter ( [
                     fhir:value [
                       a fhir:string ;
                       fhir:v "Chief complaint Narrative - Reported"
                     ]
                   ] )
                 ] )
               ] )
             ] )
           ] [
             fhir:name [ fhir:v "complaintValue" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aC" ] ;
               fhir:element [ fhir:v "value" ] ;
               fhir:variable [ fhir:v "v" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "obsC" ] ;
               fhir:element [ fhir:v "value" ] ;
               fhir:transform [ fhir:v "copy" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "v"
                 ]
               ] )
             ] )
           ] )
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "── Presenting complaint ───────────────────────────────────────────────────\r\nCategory `social-history` and code 10154-3 match what extract-vital-signs\r\nalready produces for a chief complaint, so a consumer querying\r\ncategory=social-history&code=10154-3 gets both without knowing which form\r\nthe complaint came from." ]
     ] [
       fhir:name [ fhir:v "vitalsGroupRule" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "item" ] ;
         fhir:variable [ fhir:v "gV" ] ;
         fhir:condition [ fhir:v "linkId = 'vitals'" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "bpSysRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "gV" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itS" ] ;
           fhir:condition [ fhir:v "(linkId = 'vitals.bpSys') and answer.value.exists()" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "bpSysAnswer" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itS" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:listMode [ fhir:v "first" ] ;
             fhir:variable [ fhir:v "aS" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "bpSysObservation" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aS" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "bundle" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:variable [ fhir:v "entryS" ]
             ] [
               fhir:context [ fhir:v "entryS" ] ;
               fhir:element [ fhir:v "resource" ] ;
               fhir:variable [ fhir:v "obsS" ] ;
               fhir:transform [ fhir:v "create" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Observation"
                 ]
               ] )
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "bpSysBase" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsS" ]
               ] [
                 fhir:context [ fhir:v "entryS" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "BuildObsBase" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsS"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "entryS"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "bpSysCategory" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsS" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsS"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "bpSysCode" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsS" ] ;
                 fhir:element [ fhir:v "code" ] ;
                 fhir:variable [ fhir:v "code" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeCoding" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "code" ] ;
                   fhir:element [ fhir:v "coding" ] ;
                   fhir:variable [ fhir:v "coding" ]
                 ] ) ;
                 fhir:rule ( [
                   fhir:name [ fhir:v "codeSystem" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "system" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "http://loinc.org"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeCode" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "code" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "8480-6"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeDisplay" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "display" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "Systolic blood pressure"
                       ]
                     ] )
                   ] )
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "bpSysValue" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "aS" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:variable [ fhir:v "v" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsS" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:transform [ fhir:v "copy" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "v"
                   ]
                 ] )
               ] )
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "bpDiaRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "gV" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itD" ] ;
           fhir:condition [ fhir:v "(linkId = 'vitals.bpDia') and answer.value.exists()" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "bpDiaAnswer" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itD" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:listMode [ fhir:v "first" ] ;
             fhir:variable [ fhir:v "aD" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "bpDiaObservation" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aD" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "bundle" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:variable [ fhir:v "entryD" ]
             ] [
               fhir:context [ fhir:v "entryD" ] ;
               fhir:element [ fhir:v "resource" ] ;
               fhir:variable [ fhir:v "obsD" ] ;
               fhir:transform [ fhir:v "create" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Observation"
                 ]
               ] )
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "bpDiaBase" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsD" ]
               ] [
                 fhir:context [ fhir:v "entryD" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "BuildObsBase" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsD"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "entryD"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "bpDiaCategory" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsD" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsD"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "bpDiaCode" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsD" ] ;
                 fhir:element [ fhir:v "code" ] ;
                 fhir:variable [ fhir:v "code" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeCoding" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "code" ] ;
                   fhir:element [ fhir:v "coding" ] ;
                   fhir:variable [ fhir:v "coding" ]
                 ] ) ;
                 fhir:rule ( [
                   fhir:name [ fhir:v "codeSystem" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "system" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "http://loinc.org"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeCode" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "code" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "8462-4"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeDisplay" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "display" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "Diastolic blood pressure"
                       ]
                     ] )
                   ] )
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "bpDiaValue" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "aD" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:variable [ fhir:v "v" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsD" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:transform [ fhir:v "copy" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "v"
                   ]
                 ] )
               ] )
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "pulseRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "gV" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itP" ] ;
           fhir:condition [ fhir:v "(linkId = 'vitals.pulse') and answer.value.exists()" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "pulseAnswer" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itP" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:listMode [ fhir:v "first" ] ;
             fhir:variable [ fhir:v "aP" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "pulseObservation" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aP" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "bundle" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:variable [ fhir:v "entryP" ]
             ] [
               fhir:context [ fhir:v "entryP" ] ;
               fhir:element [ fhir:v "resource" ] ;
               fhir:variable [ fhir:v "obsP" ] ;
               fhir:transform [ fhir:v "create" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Observation"
                 ]
               ] )
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "pulseBase" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsP" ]
               ] [
                 fhir:context [ fhir:v "entryP" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "BuildObsBase" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsP"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "entryP"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "pulseCategory" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsP" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsP"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "pulseCode" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsP" ] ;
                 fhir:element [ fhir:v "code" ] ;
                 fhir:variable [ fhir:v "code" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeCoding" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "code" ] ;
                   fhir:element [ fhir:v "coding" ] ;
                   fhir:variable [ fhir:v "coding" ]
                 ] ) ;
                 fhir:rule ( [
                   fhir:name [ fhir:v "codeSystem" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "system" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "http://loinc.org"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeCode" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "code" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "8867-4"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeDisplay" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "display" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "Heart rate"
                       ]
                     ] )
                   ] )
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "pulseValue" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "aP" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:variable [ fhir:v "v" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsP" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:transform [ fhir:v "copy" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "v"
                   ]
                 ] )
               ] )
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "tempRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "gV" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itT" ] ;
           fhir:condition [ fhir:v "(linkId = 'vitals.temp') and answer.value.exists()" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "tempAnswer" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itT" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:listMode [ fhir:v "first" ] ;
             fhir:variable [ fhir:v "aT" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "tempObservation" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aT" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "bundle" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:variable [ fhir:v "entryT" ]
             ] [
               fhir:context [ fhir:v "entryT" ] ;
               fhir:element [ fhir:v "resource" ] ;
               fhir:variable [ fhir:v "obsT" ] ;
               fhir:transform [ fhir:v "create" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Observation"
                 ]
               ] )
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "tempBase" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsT" ]
               ] [
                 fhir:context [ fhir:v "entryT" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "BuildObsBase" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsT"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "entryT"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "tempCategory" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsT" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsT"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "tempCode" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsT" ] ;
                 fhir:element [ fhir:v "code" ] ;
                 fhir:variable [ fhir:v "code" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeCoding" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "code" ] ;
                   fhir:element [ fhir:v "coding" ] ;
                   fhir:variable [ fhir:v "coding" ]
                 ] ) ;
                 fhir:rule ( [
                   fhir:name [ fhir:v "codeSystem" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "system" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "http://loinc.org"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeCode" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "code" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "8310-5"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeDisplay" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "display" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "Body temperature"
                       ]
                     ] )
                   ] )
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "tempValue" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "aT" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:variable [ fhir:v "v" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsT" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:transform [ fhir:v "copy" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "v"
                   ]
                 ] )
               ] )
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "respRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "gV" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itR" ] ;
           fhir:condition [ fhir:v "(linkId = 'vitals.resp') and answer.value.exists()" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "respAnswer" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itR" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:listMode [ fhir:v "first" ] ;
             fhir:variable [ fhir:v "aR" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "respObservation" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aR" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "bundle" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:variable [ fhir:v "entryR" ]
             ] [
               fhir:context [ fhir:v "entryR" ] ;
               fhir:element [ fhir:v "resource" ] ;
               fhir:variable [ fhir:v "obsR" ] ;
               fhir:transform [ fhir:v "create" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Observation"
                 ]
               ] )
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "respBase" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsR" ]
               ] [
                 fhir:context [ fhir:v "entryR" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "BuildObsBase" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsR"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "entryR"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "respCategory" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsR" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsR"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "respCode" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsR" ] ;
                 fhir:element [ fhir:v "code" ] ;
                 fhir:variable [ fhir:v "code" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeCoding" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "code" ] ;
                   fhir:element [ fhir:v "coding" ] ;
                   fhir:variable [ fhir:v "coding" ]
                 ] ) ;
                 fhir:rule ( [
                   fhir:name [ fhir:v "codeSystem" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "system" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "http://loinc.org"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeCode" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "code" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "9279-1"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeDisplay" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "display" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "Respiratory rate"
                       ]
                     ] )
                   ] )
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "respValue" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "aR" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:variable [ fhir:v "v" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsR" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:transform [ fhir:v "copy" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "v"
                   ]
                 ] )
               ] )
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "spo2Rule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "gV" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itO" ] ;
           fhir:condition [ fhir:v "(linkId = 'vitals.spo2') and answer.value.exists()" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "spo2Answer" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itO" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:listMode [ fhir:v "first" ] ;
             fhir:variable [ fhir:v "aO" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "spo2Observation" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aO" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "bundle" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:variable [ fhir:v "entryO" ]
             ] [
               fhir:context [ fhir:v "entryO" ] ;
               fhir:element [ fhir:v "resource" ] ;
               fhir:variable [ fhir:v "obsO" ] ;
               fhir:transform [ fhir:v "create" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Observation"
                 ]
               ] )
             ] ) ;
             fhir:rule ( [
               fhir:name [ fhir:v "spo2Base" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsO" ]
               ] [
                 fhir:context [ fhir:v "entryO" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "BuildObsBase" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsO"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "entryO"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "spo2Category" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsO" ]
               ] ) ;
               fhir:dependent ( [
                 fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "qr"
                   ]
                 ] [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "obsO"
                   ]
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "spo2Code" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "qr" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsO" ] ;
                 fhir:element [ fhir:v "code" ] ;
                 fhir:variable [ fhir:v "code" ]
               ] ) ;
               fhir:rule ( [
                 fhir:name [ fhir:v "codeCoding" ] ;
                 fhir:source ( [
                   fhir:context [ fhir:v "qr" ]
                 ] ) ;
                 fhir:target ( [
                   fhir:context [ fhir:v "code" ] ;
                   fhir:element [ fhir:v "coding" ] ;
                   fhir:variable [ fhir:v "coding" ]
                 ] ) ;
                 fhir:rule ( [
                   fhir:name [ fhir:v "codeSystem" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "system" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "http://loinc.org"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeCode" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "code" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "59408-5"
                       ]
                     ] )
                   ] )
                 ] [
                   fhir:name [ fhir:v "codeDisplay" ] ;
                   fhir:source ( [
                     fhir:context [ fhir:v "qr" ]
                   ] ) ;
                   fhir:target ( [
                     fhir:context [ fhir:v "coding" ] ;
                     fhir:element [ fhir:v "display" ] ;
                     fhir:transform [ fhir:v "copy" ] ;
                     fhir:parameter ( [
                       fhir:value [
                         a fhir:string ;
                         fhir:v "Oxygen saturation in Arterial blood by Pulse oximetry"
                       ]
                     ] )
                   ] )
                 ] )
               ] )
             ] [
               fhir:name [ fhir:v "spo2Value" ] ;
               fhir:source ( [
                 fhir:context [ fhir:v "aO" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:variable [ fhir:v "v" ]
               ] ) ;
               fhir:target ( [
                 fhir:context [ fhir:v "obsO" ] ;
                 fhir:element [ fhir:v "value" ] ;
                 fhir:transform [ fhir:v "copy" ] ;
                 fhir:parameter ( [
                   fhir:value [
                     a fhir:id ;
                     fhir:v "v"
                   ]
                 ] )
               ] )
             ] )
           ] )
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "── Vitals on admission ────────────────────────────────────────────────────\r\nSix items, six Observations, exactly as the form extracted before it had a\r\nmap. Each answer is already a Quantity -- the item is type `quantity` with\r\na questionnaire-unitOption pinning the unit -- so it is copied through\r\nwhole. Rebuilding it here would mean restating a unit the client actually\r\nsent, which turns a wrong unit into a wrong reading." ]
     ] [
       fhir:name [ fhir:v "composition" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "bundle" ] ;
         fhir:element [ fhir:v "entry" ] ;
         fhir:variable [ fhir:v "entry" ]
       ] [
         fhir:context [ fhir:v "entry" ] ;
         fhir:element [ fhir:v "resource" ] ;
         fhir:variable [ fhir:v "comp" ] ;
         fhir:transform [ fhir:v "create" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "Composition"
           ]
         ] )
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "noteBase" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ]
         ] [
           fhir:context [ fhir:v "entry" ]
         ] ) ;
         fhir:dependent ( [
           fhir:name [ fhir:v "BuildNoteBase" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:id ;
               fhir:v "qr"
             ]
           ] [
             fhir:value [
               a fhir:id ;
               fhir:v "comp"
             ]
           ] [
             fhir:value [
               a fhir:id ;
               fhir:v "entry"
             ]
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "noteName" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "name" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "InpatientAdultGeneralAdmissionAssessment"
             ]
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "noteTitle" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "title" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "Adult general admission assessment"
             ]
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "noteType" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "type" ] ;
           fhir:variable [ fhir:v "ty" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "sghiCoding" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "ty" ] ;
             fhir:element [ fhir:v "coding" ] ;
             fhir:variable [ fhir:v "sghi" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "sghiSystem" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "qr" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "sghi" ] ;
               fhir:element [ fhir:v "system" ] ;
               fhir:transform [ fhir:v "copy" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "https://fhir.slade360.co.ke/fhir/CodeSystem/inpatient-document-type-codesystem"
                 ]
               ] )
             ] )
           ] [
             fhir:name [ fhir:v "sghiCode" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "qr" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "sghi" ] ;
               fhir:element [ fhir:v "code" ] ;
               fhir:transform [ fhir:v "copy" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "adult-general-admission-assessment"
                 ]
               ] )
             ] )
           ] [
             fhir:name [ fhir:v "sghiDisplay" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "qr" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "sghi" ] ;
               fhir:element [ fhir:v "display" ] ;
               fhir:transform [ fhir:v "copy" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "Adult general admission assessment"
                 ]
               ] )
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "typeText" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "ty" ] ;
             fhir:element [ fhir:v "text" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Adult general admission assessment"
               ]
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "complaintSectionRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "it" ] ;
           fhir:condition [ fhir:v "(linkId = 'complaint') and answer.value.exists()" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "section" ] ;
           fhir:variable [ fhir:v "sec" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "complaintTitle" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "it" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "sec" ] ;
             fhir:element [ fhir:v "title" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Presenting complaint"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "complaintSectionText" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "it" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "sec" ]
           ] ) ;
           fhir:dependent ( [
             fhir:name [ fhir:v "AddSectionText" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:id ;
                 fhir:v "it"
               ]
             ] [
               fhir:value [
                 a fhir:id ;
                 fhir:v "sec"
               ]
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "allergiesRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itA" ] ;
           fhir:condition [ fhir:v "(linkId = 'allergies') and answer.value.exists()" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "section" ] ;
           fhir:variable [ fhir:v "secA" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "allergiesTitle" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itA" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "secA" ] ;
             fhir:element [ fhir:v "title" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Known allergies"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "allergiesAnswers" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itA" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:variable [ fhir:v "aA" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "allergiesEntry" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aA" ] ;
               fhir:element [ fhir:v "value" ] ;
               fhir:variable [ fhir:v "av" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "secA" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:transform [ fhir:v "copy" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "av"
                 ]
               ] )
             ] )
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "medsRule" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ] ;
           fhir:element [ fhir:v "item" ] ;
           fhir:variable [ fhir:v "itM" ] ;
           fhir:condition [ fhir:v "(linkId = 'meds') and answer.value.exists()" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "section" ] ;
           fhir:variable [ fhir:v "secM" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "medsTitle" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itM" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "secM" ] ;
             fhir:element [ fhir:v "title" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Current medication"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "medsAnswers" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "itM" ] ;
             fhir:element [ fhir:v "answer" ] ;
             fhir:variable [ fhir:v "aM" ]
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "medsEntry" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "aM" ] ;
               fhir:element [ fhir:v "value" ] ;
               fhir:variable [ fhir:v "mv" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "secM" ] ;
               fhir:element [ fhir:v "entry" ] ;
               fhir:transform [ fhir:v "copy" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "mv"
                 ]
               ] )
             ] )
           ] )
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "── The assessment as a filed document ─────────────────────────────────────" ]
     ] )
  ] [
     fhir:name [ fhir:v "BuildObsBase" ] ;
     fhir:documentation [ fhir:v "─────────────────────────────────────────────────────────────────────────────\r\nShared scaffolding. Repeated in each map rather than imported: the transform\r\nengine resolves `imports` against whatever StructureMaps happen to be on the\r\nserver, and a form that stops extracting because a shared map was not\r\nuploaded is a worse failure than a duplicated group.\r\n─────────────────────────────────────────────────────────────────────────────\r\nTwo notes on what the publisher's StructureMap validator says about this file.\r\nSource parameters below are left untyped on purpose. Writing `: Element` makes\r\nthe validator compare QuestionnaireResponse.item against the literal 'Element'\r\nand report them as incompatible with each other, which is noise, not a finding.\r\nUntyped, it says only that it cannot check the paths.\r\n`evaluate(context, expression)` is flagged as \"takes 1 parameter but 2 were\r\nfound\". Leave it. The FML parser in the same jar refuses the one-argument form\r\noutright -- it wants a parameter, a comma, then the FHIRPath -- so the publisher\r\nis objecting to what its own compiler emits. Two arguments is the only form that\r\ncompiles, and it is what the R5 transform engine executes." ] ;
     fhir:input ( [
       fhir:name [ fhir:v "qr" ] ;
       fhir:type [ fhir:v "QR" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "obs" ] ;
       fhir:type [ fhir:v "Observation" ] ;
       fhir:mode [ fhir:v "target" ]
     ] [
       fhir:name [ fhir:v "entry" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "idAndFullUrl" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "id" ] ;
         fhir:transform [ fhir:v "uuid" ]
       ] ) ;
       fhir:dependent ( [
         fhir:name [ fhir:v "SetObservationFullUrl" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "obs"
           ]
         ] [
           fhir:value [
             a fhir:id ;
             fhir:v "entry"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "entryRequest" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "entry" ] ;
         fhir:element [ fhir:v "request" ] ;
         fhir:variable [ fhir:v "request" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "requestMethod" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "request" ] ;
           fhir:element [ fhir:v "method" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "POST"
             ]
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "requestUrl" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "request" ] ;
           fhir:element [ fhir:v "url" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "Observation"
             ]
           ] )
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "status" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "status" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "final"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "subject" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "subject" ] ;
         fhir:variable [ fhir:v "s" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "subject" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "s"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "encounter" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "encounter" ] ;
         fhir:variable [ fhir:v "e" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "encounter" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "e"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "effective" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "authored" ] ;
         fhir:variable [ fhir:v "t" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "effective" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "t"
           ]
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "`effective`, not `effectiveDateTime`: the R5 transform engine writes choice\r\nelements by their base name and rejects the typed form. This form asks for\r\nno time of its own, so the moment the response was authored is the best\r\navailable." ]
     ] [
       fhir:name [ fhir:v "performerFromSource" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "source" ] ;
         fhir:variable [ fhir:v "src" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "performer" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "src"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "performerFallback" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:condition [ fhir:v "source.exists().not()" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "performerFromAuthor" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ] ;
           fhir:element [ fhir:v "author" ] ;
           fhir:variable [ fhir:v "a" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "obs" ] ;
           fhir:element [ fhir:v "performer" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:id ;
               fhir:v "a"
             ]
           ] )
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "linkQuestionnaireResponse" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "derivedFrom" ] ;
         fhir:variable [ fhir:v "ref" ] ;
         fhir:transform [ fhir:v "create" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "Reference"
           ]
         ] )
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "derivedFromRef" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ] ;
           fhir:element [ fhir:v "id" ] ;
           fhir:variable [ fhir:v "qid" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "ref" ] ;
           fhir:element [ fhir:v "reference" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:id ;
               fhir:v "qid"
             ]
           ] )
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "`qr.id` already resolves to the type-qualified relative reference under this\r\nengine, so it is used unprefixed." ]
     ] )
  ] [
     fhir:name [ fhir:v "SetVitalSignsCategory" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "qr" ] ;
       fhir:type [ fhir:v "QR" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "obs" ] ;
       fhir:type [ fhir:v "Observation" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "category" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "category" ] ;
         fhir:variable [ fhir:v "cat" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "categoryCoding" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "cat" ] ;
           fhir:element [ fhir:v "coding" ] ;
           fhir:variable [ fhir:v "coding" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "categorySystem" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "coding" ] ;
             fhir:element [ fhir:v "system" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "http://terminology.hl7.org/CodeSystem/observation-category"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "categoryCode" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "coding" ] ;
             fhir:element [ fhir:v "code" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "vital-signs"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "categoryDisplay" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "coding" ] ;
             fhir:element [ fhir:v "display" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Vital Signs"
               ]
             ] )
           ] )
         ] )
       ] )
     ] )
  ] [
     fhir:name [ fhir:v "SetSocialHistoryCategory" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "qr" ] ;
       fhir:type [ fhir:v "QR" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "obs" ] ;
       fhir:type [ fhir:v "Observation" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "category" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "category" ] ;
         fhir:variable [ fhir:v "cat" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "categoryCoding" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "cat" ] ;
           fhir:element [ fhir:v "coding" ] ;
           fhir:variable [ fhir:v "coding" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "categorySystem" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "coding" ] ;
             fhir:element [ fhir:v "system" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "http://terminology.hl7.org/CodeSystem/observation-category"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "categoryCode" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "coding" ] ;
             fhir:element [ fhir:v "code" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "social-history"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "categoryDisplay" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "coding" ] ;
             fhir:element [ fhir:v "display" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "Social History"
               ]
             ] )
           ] )
         ] )
       ] )
     ] )
  ] [
     fhir:name [ fhir:v "SetObservationFullUrl" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "obs" ] ;
       fhir:type [ fhir:v "Observation" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "entry" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "assignFullUrl" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "obs" ] ;
         fhir:element [ fhir:v "id" ] ;
         fhir:variable [ fhir:v "id" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "entry" ] ;
         fhir:element [ fhir:v "fullUrl" ] ;
         fhir:transform [ fhir:v "append" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "https://fhir.slade360.co.ke/fhir/Observation/"
           ]
         ] [
           fhir:value [
             a fhir:id ;
             fhir:v "id"
           ]
         ] )
       ] )
     ] )
  ] [
     fhir:name [ fhir:v "BuildNoteBase" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "qr" ] ;
       fhir:type [ fhir:v "QR" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "comp" ] ;
       fhir:type [ fhir:v "Composition" ] ;
       fhir:mode [ fhir:v "target" ]
     ] [
       fhir:name [ fhir:v "entry" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "idAndFullUrl" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "id" ] ;
         fhir:transform [ fhir:v "uuid" ]
       ] ) ;
       fhir:dependent ( [
         fhir:name [ fhir:v "SetCompositionFullUrl" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "comp"
           ]
         ] [
           fhir:value [
             a fhir:id ;
             fhir:v "entry"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "entryRequest" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "entry" ] ;
         fhir:element [ fhir:v "request" ] ;
         fhir:variable [ fhir:v "request" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "requestMethod" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "request" ] ;
           fhir:element [ fhir:v "method" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "POST"
             ]
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "requestUrl" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "request" ] ;
           fhir:element [ fhir:v "url" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "Composition"
             ]
           ] )
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "status" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "status" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "final"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "subject" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "subject" ] ;
         fhir:variable [ fhir:v "s" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "subject" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "s"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "encounter" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "encounter" ] ;
         fhir:variable [ fhir:v "e" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "encounter" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "e"
           ]
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "date" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "authored" ] ;
         fhir:variable [ fhir:v "t" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "date" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "t"
           ]
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "Composition.date is 1..1. `authored` is only 0..1 on the response, so when a\r\nclient sends none the extraction time stands in. It is a poor substitute for\r\nwhen the note was written, but a document with no date at all is worse, and\r\nextraction happens moments after submission in practice." ]
     ] [
       fhir:name [ fhir:v "dateFallback" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:condition [ fhir:v "authored.exists().not()" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "dateFromExtractionTime" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "date" ] ;
           fhir:transform [ fhir:v "evaluate" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:id ;
               fhir:v "qr"
             ]
           ] [
             fhir:value [
               a fhir:string ;
               fhir:v "now()"
             ]
           ] )
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "authorFromAuthor" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:element [ fhir:v "author" ] ;
         fhir:variable [ fhir:v "a" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "author" ] ;
         fhir:transform [ fhir:v "copy" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:id ;
             fhir:v "a"
           ]
         ] )
       ] ) ;
       fhir:documentation [ fhir:v "Composition.author is 1..1 minimum. R5 QuestionnaireResponse carries both\r\n`author` (who recorded the answers) and `source` (who supplied them); the\r\nauthor is the one who wrote the note, so it wins, and `source` only stands\r\nin when the client did not send an author. If the response carries neither,\r\nthe note comes out unauthored -- there is nothing on a QuestionnaireResponse\r\nto invent one from, and guessing at who wrote a clinical note is not a thing\r\na map should do." ]
     ] [
       fhir:name [ fhir:v "authorFallback" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ] ;
         fhir:condition [ fhir:v "author.exists().not()" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "authorFromSource" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ] ;
           fhir:element [ fhir:v "source" ] ;
           fhir:variable [ fhir:v "src" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "comp" ] ;
           fhir:element [ fhir:v "author" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:id ;
               fhir:v "src"
             ]
           ] )
         ] )
       ] )
     ] [
       fhir:name [ fhir:v "linkQuestionnaireResponse" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "qr" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "relatesTo" ] ;
         fhir:variable [ fhir:v "rel" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "relatesToType" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "rel" ] ;
           fhir:element [ fhir:v "type" ] ;
           fhir:transform [ fhir:v "copy" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "derived-from"
             ]
           ] )
         ] )
       ] [
         fhir:name [ fhir:v "relatesToTarget" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "qr" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "rel" ] ;
           fhir:element [ fhir:v "resourceReference" ] ;
           fhir:variable [ fhir:v "ref" ] ;
           fhir:transform [ fhir:v "create" ] ;
           fhir:parameter ( [
             fhir:value [
               a fhir:string ;
               fhir:v "Reference"
             ]
           ] )
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "relatesToRef" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "qr" ] ;
             fhir:element [ fhir:v "id" ] ;
             fhir:variable [ fhir:v "qid" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "ref" ] ;
             fhir:element [ fhir:v "reference" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:id ;
                 fhir:v "qid"
               ]
             ] )
           ] )
         ] )
       ] )
     ] )
  ] [
     fhir:name [ fhir:v "AddSectionText" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "it" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "sec" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "sectionAnswer" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "it" ] ;
         fhir:element [ fhir:v "answer" ] ;
         fhir:listMode [ fhir:v "first" ] ;
         fhir:variable [ fhir:v "a" ]
       ] ) ;
       fhir:rule ( [
         fhir:name [ fhir:v "sectionText" ] ;
         fhir:source ( [
           fhir:context [ fhir:v "a" ] ;
           fhir:element [ fhir:v "value" ] ;
           fhir:variable [ fhir:v "v" ]
         ] ) ;
         fhir:target ( [
           fhir:context [ fhir:v "sec" ] ;
           fhir:element [ fhir:v "text" ] ;
           fhir:variable [ fhir:v "narrative" ]
         ] ) ;
         fhir:rule ( [
           fhir:name [ fhir:v "narrativeStatus" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "v" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "narrative" ] ;
             fhir:element [ fhir:v "status" ] ;
             fhir:transform [ fhir:v "copy" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "generated"
               ]
             ] )
           ] )
         ] [
           fhir:name [ fhir:v "narrativeXhtml" ] ;
           fhir:source ( [
             fhir:context [ fhir:v "v" ]
           ] ) ;
           fhir:target ( [
             fhir:context [ fhir:v "narrative" ] ;
             fhir:element [ fhir:v "div" ] ;
             fhir:variable [ fhir:v "xhtml" ] ;
             fhir:transform [ fhir:v "create" ] ;
             fhir:parameter ( [
               fhir:value [
                 a fhir:string ;
                 fhir:v "xhtml"
               ]
             ] )
           ] ) ;
           fhir:rule ( [
             fhir:name [ fhir:v "narrativeDiv" ] ;
             fhir:source ( [
               fhir:context [ fhir:v "v" ]
             ] ) ;
             fhir:target ( [
               fhir:context [ fhir:v "xhtml" ] ;
               fhir:element [ fhir:v "value" ] ;
               fhir:transform [ fhir:v "evaluate" ] ;
               fhir:parameter ( [
                 fhir:value [
                   a fhir:id ;
                   fhir:v "a"
                 ]
               ] [
                 fhir:value [
                   a fhir:string ;
                   fhir:v "'<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>' + value.toString().escape('html') + '</p></div>'"
                 ]
               ] )
             ] )
           ] )
         ] )
       ] )
     ] )
  ] [
     fhir:name [ fhir:v "SetCompositionFullUrl" ] ;
     fhir:input ( [
       fhir:name [ fhir:v "comp" ] ;
       fhir:type [ fhir:v "Composition" ] ;
       fhir:mode [ fhir:v "source" ]
     ] [
       fhir:name [ fhir:v "entry" ] ;
       fhir:mode [ fhir:v "target" ]
     ] ) ;
     fhir:rule ( [
       fhir:name [ fhir:v "assignFullUrl" ] ;
       fhir:source ( [
         fhir:context [ fhir:v "comp" ] ;
         fhir:element [ fhir:v "id" ] ;
         fhir:variable [ fhir:v "id" ]
       ] ) ;
       fhir:target ( [
         fhir:context [ fhir:v "entry" ] ;
         fhir:element [ fhir:v "fullUrl" ] ;
         fhir:transform [ fhir:v "append" ] ;
         fhir:parameter ( [
           fhir:value [
             a fhir:string ;
             fhir:v "https://fhir.slade360.co.ke/fhir/Composition/"
           ]
         ] [
           fhir:value [
             a fhir:id ;
             fhir:v "id"
           ]
         ] )
       ] )
     ] )
  ] ) . #