SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build
SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions
| Active as of 2026-09-14 |
{
"resourceType" : "StructureMap",
"id" : "ExtractPalliativeCareAssessment",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ExtractPalliativeCareAssessment</b></p><a name=\"ExtractPalliativeCareAssessment\"> </a><a name=\"hcExtractPalliativeCareAssessment\"> </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/ExtractPalliativeCareAssessment'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ExtractPalliativeCareAssessment'</span>\r\n<span style=\"color: #cc00cc\">/// <b>title</b> = </span><span style=\"color: blue\">'Palliative Care 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\">'The palliative care assessment out as: one symptom-assessment Observation carrying all twenty-two symptoms as components, because the panel is the assessment and a patient with no symptoms ticked has said something a set of absent Observations could not; a Condition for the diagnosis, reconciled against the problem list where the assessor picked an existing one; one Observation for the prior oncological treatment; separate Observations for the patient\\'s own goals and the carer\\'s, because the two often differ and the form asks both; and a CarePlan whose activities are the problem-and-action rows.'</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">" </span><b>alias </b>QR <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">" </span><b>alias </b>Bundle <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">" </span><b>alias </b>Observation <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/condition.html\" title=\"Condition\">http://hl7.org/fhir/StructureDefinition/Condition</a><span style=\"color: navy\">" </span><b>alias </b>Condition <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/careplan.html\" title=\"CarePlan\">http://hl7.org/fhir/StructureDefinition/CarePlan</a><span style=\"color: navy\">" </span><b>alias </b>CarePlan <b>as </b><b>target</b>\r\n\r\n<b>group </b>ExtractPalliativeCareAssessment<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>bundle.type = <span style=\"color: blue\">'transaction'</span> <i>"setBundleType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">── The symptom checklist, as one panel ─────────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Twenty-two components on one Observation. A palliative assessment is read</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">as a whole -- which symptoms are present today, against which were present</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">last week -- and twenty-two loose Observations make that comparison a</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">twenty-two-query job.</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms') and item.answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-symptom'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Palliative care symptom'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: blue\">'Palliative care symptom checklist'</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/abdominal-pain') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-abdominal-pain'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Abdominal pain'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_abdominal_pain"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/nausea-vomiting') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-nausea-or-vomiting'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Nausea or vomiting'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_nausea_or_vomiting"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/constipation') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-constipation'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Constipation'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_constipation"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/diarrhoea') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-diarrhoea'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Diarrhoea'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_diarrhoea"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/melaena') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-melaena'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Melaena'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_melaena"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/loss-of-appetite') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-loss-of-appetite'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Loss of appetite'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_loss_of_appetite"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/body-weakness') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-body-weakness'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Body weakness'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_body_weakness"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/pr-bleeding') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-per-rectal-bleeding'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Per rectal bleeding'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_per_rectal_bleeding"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/pr-pain') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-per-rectal-pain'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Per rectal pain'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_per_rectal_pain"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/weight-loss') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-weight-loss'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Weight loss'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_weight_loss"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/jaundice') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-jaundice'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Jaundice'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_jaundice"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/fever') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-fever'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Fever'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_fever"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/chest-pain') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-chest-pain'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Chest pain'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_chest_pain"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/cough') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-cough'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Cough'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_cough"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/incontinence') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-incontinence'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Incontinence'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_incontinence"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/headache') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-headache'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Headache'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_headache"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/poor-vision') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-poor-vision'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Poor vision'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_poor_vision"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/weakness-of-limbs') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-weakness-of-limbs'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Weakness of limbs'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_weakness_of_limbs"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/dry-mouth') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-dry-mouth'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Dry mouth'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_dry_mouth"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/excessive-sleep') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-excessive-sleep'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Excessive sleep'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_excessive_sleep"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/hallucinations') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-hallucinations'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Hallucinations'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_hallucinations"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'symptoms/sore-mouth') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-sore-mouth'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Sore mouth'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_palliative_sore_mouth"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"symptomPanel"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">── Diagnosis ───────────────────────────────────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">The form asks for both an existing Condition and the diagnosis as written.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Where an existing one was picked, the map records the reference as evidence</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">rather than creating a second Condition -- a palliative referral should not</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">fork the problem list of a patient who already has a coded cancer on it.</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'diagnosis'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'diagnosis/text') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Condition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cond</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> cond<span style=\"color: navy\">, </span> entry<b> then </b>BuildConditionBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">cond</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cond.clinicalStatus<b> as </b><span style=\"color: maroon\">cs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cs.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-clinical'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'active'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Active'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"clinicalStatus"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cond.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-category'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'problem-list-item'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Problem List Item'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> cond.code<b> as </b><span style=\"color: maroon\">cc</span><span style=\"color: navy\">, </span> cc.text = <span style=\"color: maroon\">txt</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>cond.recordedDate = <span style=\"color: maroon\">t</span> <i>"recordedDate"</i><span style=\"color: navy\">;</span>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>cond.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">ex</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'diagnosis/condition') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ex.answer first<b> as </b><span style=\"color: maroon\">ea</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ea.value<b> as </b><span style=\"color: maroon\">existing</span><span style=\"color: navy\"><b> -> </b></span> cond.evidence<b> as </b><span style=\"color: maroon\">ev</span><span style=\"color: navy\">, </span> ev.reference = <span style=\"color: maroon\">existing</span> <i>"evidenceReference"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"existingRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diagnosisCondition"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diagnosisGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">── Prior oncological treatment ─────────────────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">One Observation with a note per modality. The form takes free text -- "RT</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">2024, 25 fractions" -- and a Procedure built from that would claim a date</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">and a body site it does not have.</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'prior-treatment') and item.answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'prior-oncological-treatment'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n g<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Prior oncological treatment'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'prior-treatment/radiotherapy'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"note"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'prior-treatment/chemotherapy'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"note2"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'prior-treatment/surgery'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"note3"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'prior-treatment/other'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"note4"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'prior-treatment/p24-markers'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"note5"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'prior-treatment/not-discussed') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>obs.component<b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>comp.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'prior-treatment-not-discussed-with-the-patient'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Prior treatment not discussed with the patient'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>comp<b> then </b>SetComponentCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span> <i>"value"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"comp_prior_treatment_not_discussed_with_the_patient"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"priorTreatmentPanel"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">── Goals, patient's and carer's, kept apart ────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Two Observations, deliberately. A carer who wants their relative admitted</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">and a patient who wants to die at home are both recorded, and folding them</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">into one note would hide exactly the conflict a palliative team has to work</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">with.</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'psychosocial'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/patient-goals') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'patient-goals'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Patient goals and expectations'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_patient_goals"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/patient-stresses') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'patient-goals'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Patient goals and expectations'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: blue\">'Stresses the patient carries, and the help they feel is appropriate'</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_patient_goals2"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/carer-goals') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'carer-goals'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Carer goals and expectations'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_carer_goals"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/carer-stresses') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'carer-goals'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Carer goals and expectations'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: blue\">'Stresses the carer carries, and the help they feel is appropriate'</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_carer_goals2"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/spiritual-assessment') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'spiritual-assessment'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Spiritual assessment'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_spiritual_assessment"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/social-issues') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'29762-2'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Social history note'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_29762_2"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'psychosocial/current-treatment') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'10160-0'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'History of Medication use Narrative'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: blue\">'Current treatment'</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_10160_0"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"psychosocialGroup"</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 = 'history-of-illness') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'10164-2'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'History of Present illness Narrative'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_10164_2"</i><span style=\"color: navy\">;</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'referral'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'referral/source') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-referral-source'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Palliative referral source'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">cv</span><span style=\"color: navy\"><b> -> </b></span>obs.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> cv<span style=\"color: navy\"><b> -> </b></span>cc.coding = <span style=\"color: maroon\">cv</span> <i>"valueCoding"</i><span style=\"color: navy\">;</span>\r\n cv.display<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: maroon\">d</span> <i>"valueText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codedValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coded_palliative_symptom"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'referral/source-detail') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obs<span style=\"color: navy\">, </span> entry<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetSurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>obs.code<b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cc.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-referral-source'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Palliative referral source'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n it<span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: blue\">'Referral detail'</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"code"</i><span style=\"color: navy\">;</span>\r\n it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"narr_palliative_referral_source"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"referralGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">── The problem and action plan ─────────────────────────────────────────</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">One CarePlan, with a row per problem. Each row becomes an activity whose</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">display is the problem and whose progress note is the action -- the plan is</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">the deliverable of a palliative assessment, and the ward picks it up from</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">there rather than from the assessment narrative.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Guarded on at least one problem row: a CarePlan with no activities is a</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">plan nobody made.</span>\r\n qr<b> where </b><span style=\"color: navy\">(</span>item.where(linkId = 'problem').item.where(linkId = 'problem/description').answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">entry</span><span style=\"color: navy\">, </span> entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CarePlan'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">plan</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> plan<span style=\"color: navy\">, </span> entry<b> then </b>BuildCarePlanBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">plan</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>plan.status = <span style=\"color: blue\">'active'</span> <i>"status"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>plan.intent = <span style=\"color: blue\">'plan'</span> <i>"intent"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>plan.title = <span style=\"color: blue\">'Palliative care plan'</span> <i>"title"</i><span style=\"color: navy\">;</span>\r\n qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>plan.created = <span style=\"color: maroon\">t</span> <i>"created"</i><span style=\"color: navy\">;</span>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>plan.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>plan.custodian = <span style=\"color: maroon\">src</span> <i>"custodian"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>plan.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">cg</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cg.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem'</span> <i>"sys"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cg.code = <span style=\"color: blue\">'palliative-problem'</span> <i>"cd"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cg.display = <span style=\"color: blue\">'Palliative care problem'</span> <i>"dsp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">g</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'problem'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'problem/description') and answer.value.exists()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span>plan.activity<b> as </b><span style=\"color: maroon\">act</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> act.plannedActivityReference = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.display = <span style=\"color: maroon\">txt</span> <i>"problemDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"problemRow"</i><span style=\"color: navy\">;</span>\r\n g.item<b> as </b><span style=\"color: maroon\">it</span><b> where </b><span style=\"color: navy\">(</span>(linkId = 'problem/action-plan') and answer.value.exists()<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">txt</span><span style=\"color: navy\"><b> -> </b></span> plan.note<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\">, </span> n.text = <span style=\"color: maroon\">txt</span> <i>"actionNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"actionRow"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"problemRows"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"palliativeCarePlan"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Shared scaffolding. Repeated in each map rather than imported: the transform</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">engine resolves `imports` against whatever StructureMaps happen to be on the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">server, and a form that stops extracting because a shared map was not</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">uploaded is a worse failure than a duplicated group.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Two notes on what the publisher's StructureMap validator says about this file.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Source parameters below are left untyped on purpose. Writing `: Element` makes</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">the validator compare QuestionnaireResponse.item against the literal 'Element'</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">and report them as incompatible with each other, which is noise, not a finding.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">`evaluate(context, expression)` is flagged as "takes 1 parameter but 2 were</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">found". Leave it. The FML parser in the same jar refuses the one-argument form</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">outright -- it wants a parameter, a comma, then the FHIRPath -- so the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">publisher is objecting to what its own compiler emits. Two arguments is the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">only form that compiles, and it is what the R5 transform engine executes.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">─────────────────────────────────────────────────────────────────────────────</span>\r\n<b>group </b>BuildObsBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>obs<b> then </b>SetResponseProvenance<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">)</span> <i>"responseProvenance"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetObservationFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"idAndFullUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">request</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>"requestMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>request.url = <span style=\"color: blue\">'Observation'</span> <i>"requestUrl"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"entryRequest"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>"status"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>obs.subject = <span style=\"color: maroon\">s</span><span style=\"color: navy\">;</span>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>obs.encounter = <span style=\"color: maroon\">e</span><span style=\"color: navy\">;</span>\r\n qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>obs.effective = <span style=\"color: maroon\">t</span> <i>"effective"</i><span style=\"color: navy\">;</span>\r\n qr.source<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>obs.performer = <span style=\"color: maroon\">src</span> <i>"performerFromSource"</i><span style=\"color: navy\">;</span>\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> -> </b></span>obs.performer = <span style=\"color: maroon\">a</span> <i>"performerFromAuthor"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"performerFallback"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">A stored response's id already reads "QuestionnaireResponse/<id>", so it is</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">a relative reference as it stands. The hasValue() guard is what stops an</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">unsaved response -- one posted straight to $extract rather than saved first</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">-- from writing "QuestionnaireResponse/null" into the record.</span>\r\n qr.id<b> as </b><span style=\"color: maroon\">qid</span><b> where </b><span style=\"color: navy\">(</span>$this.hasValue()<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -> </b></span> obs.derivedFrom = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: maroon\">qid</span> <i>"linkQuestionnaireResponse"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetObservationFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> obs.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Observation/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>"assignFullUrl"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">The two answer shapes a component can carry. Both read the answer through the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">untyped `.value` accessor: reading `valueCoding` or `valueQuantity` by its</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">typed property name fails at transform time on HAPI R5 with "Attempt to read</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">invalid property ... on QuestionnaireResponse.item.answer".</span>\r\n<b>group </b>SetComponentCodedValue<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">cv</span><span style=\"color: navy\"><b> -> </b></span>comp.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> cv<span style=\"color: navy\"><b> -> </b></span>cc.coding = <span style=\"color: maroon\">cv</span> <i>"valueCoding"</i><span style=\"color: navy\">;</span>\r\n cv.display<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -> </b></span>cc.text = <span style=\"color: maroon\">d</span> <i>"valueText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codedValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"componentAnswer"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetComponentValue<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">comp</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> it.answer first<b> as </b><span style=\"color: maroon\">a</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>comp.value = <span style=\"color: maroon\">v</span> <i>"plainValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"componentAnswer"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetSurveyCategory<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"categorySystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'survey'</span> <i>"categoryCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Survey'</span> <i>"categoryDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetExamCategory<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"categorySystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'exam'</span> <i>"categoryCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Exam'</span> <i>"categoryDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"category"</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> -> </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"categorySystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'vital-signs'</span> <i>"categoryCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"categoryDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"categoryCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>BuildConditionBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">r</span><span style=\"color: navy\"> : </span>Condition, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>r<b> then </b>SetResponseProvenance<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">r</span><span style=\"color: navy\">)</span> <i>"responseProvenance"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>r.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetConditionFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">r</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"idAndFullUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">request</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>"requestMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>request.url = <span style=\"color: blue\">'Condition'</span> <i>"requestUrl"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"entryRequest"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>r.subject = <span style=\"color: maroon\">s</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetConditionFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">r</span><span style=\"color: navy\"> : </span>Condition, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> r.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Condition/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>"assignFullUrl"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>BuildCarePlanBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">r</span><span style=\"color: navy\"> : </span>CarePlan, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>r<b> then </b>SetResponseProvenance<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">r</span><span style=\"color: navy\">)</span> <i>"responseProvenance"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>r.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> then </b>SetCarePlanFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">r</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span> <i>"idAndFullUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">request</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>request.method = <span style=\"color: blue\">'POST'</span> <i>"requestMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>request.url = <span style=\"color: blue\">'CarePlan'</span> <i>"requestUrl"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"entryRequest"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>r.subject = <span style=\"color: maroon\">s</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetCarePlanFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">r</span><span style=\"color: navy\"> : </span>CarePlan, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> r.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>entry.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CarePlan/'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">id</span><span style=\"color: navy\">)</span> <i>"assignFullUrl"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">── Provenance and tenancy ───────────────────────────────────────────────────</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Two tags on everything this map creates. The first says which questionnaire</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">produced it, so a form that reopens mid-admission recalls its own earlier</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">entries and not another form's. The second copies the tenant tags off the</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">response, because nothing else on the path puts them there.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">The code is the form's document type, not the questionnaire's id: every</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">environment mints its own ids, and there is only one set of maps, so an id</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">here would tie the tag to whichever environment stamped it.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">── Provenance and tenancy ───────────────────────────────────────────────────</span>\r\n<b>group </b>SetResponseProvenance<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">r</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>r.meta<b> as </b><span style=\"color: maroon\">m</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>m.tag<b> as </b><span style=\"color: maroon\">t</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>t.system = <span style=\"color: blue\">'http://slade360edi.com/questionnaire-provenance'</span> <i>"provenanceSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>t.code = <span style=\"color: blue\">'palliative-care-assessment'</span> <i>"provenanceCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>t.display = <span style=\"color: blue\">'Palliative care assessment'</span> <i>"provenanceDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"provenanceTag"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"provenanceMeta"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Every tag the response carries, onto the resource. `meta` is 0..1, so this</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">lands on the same meta the rule above created rather than a second one.</span>\r\n qr.meta<b> as </b><span style=\"color: maroon\">qm</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qm.tag<b> as </b><span style=\"color: maroon\">qt</span><span style=\"color: navy\"><b> -> </b></span> r.meta<b> as </b><span style=\"color: maroon\">m</span><span style=\"color: navy\">, </span> m.tag = <span style=\"color: maroon\">qt</span> <i>"copyTag"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"tenantTags"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractPalliativeCareAssessment",
"version" : "0.1.0",
"name" : "ExtractPalliativeCareAssessment",
"title" : "Palliative Care Assessment Extraction",
"status" : "active",
"date" : "2026-09-14T06:31:13+00:00",
"publisher" : "Kathurima Kimathi",
"contact" : [
{
"name" : "Kathurima Kimathi",
"telecom" : [
{
"system" : "url",
"value" : "https://www.linkedin.com/in/kathurima-kimathi/"
},
{
"system" : "email",
"value" : "kathurimakimathi415@gmail.com"
}
]
},
{
"name" : "Oscar John",
"telecom" : [
{
"system" : "email",
"value" : "oscarjohnotieno@gmail.com",
"use" : "work"
}
]
},
{
"name" : "Kennedy Omondi",
"telecom" : [
{
"system" : "email",
"value" : "kennankole@gmail.com",
"use" : "work"
}
]
}
],
"description" : "The palliative care assessment out as: one symptom-assessment Observation carrying all twenty-two symptoms as components, because the panel is the assessment and a patient with no symptoms ticked has said something a set of absent Observations could not; a Condition for the diagnosis, reconciled against the problem list where the assessor picked an existing one; one Observation for the prior oncological treatment; separate Observations for the patient's own goals and the carer's, because the two often differ and the form asks both; and a CarePlan whose activities are the problem-and-action rows.",
"structure" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
"mode" : "source",
"alias" : "QR"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "target",
"alias" : "Bundle"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Observation",
"mode" : "target",
"alias" : "Observation"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Condition",
"mode" : "target",
"alias" : "Condition"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/CarePlan",
"mode" : "target",
"alias" : "CarePlan"
}
],
"group" : [
{
"name" : "ExtractPalliativeCareAssessment",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "bundle",
"type" : "Bundle",
"mode" : "target"
}
],
"rule" : [
{
"name" : "setBundleType",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "bundle",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueString" : "transaction"
}
]
}
]
},
{
"name" : "symptomPanel",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "g",
"condition" : "(linkId = 'symptoms') and item.answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-symptom"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative care symptom"
}
]
}
]
}
]
},
{
"name" : "codeText",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative care symptom checklist"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_abdominal_pain",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/abdominal-pain') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-abdominal-pain"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Abdominal pain"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_nausea_or_vomiting",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/nausea-vomiting') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-nausea-or-vomiting"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Nausea or vomiting"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_constipation",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/constipation') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-constipation"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Constipation"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_diarrhoea",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/diarrhoea') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-diarrhoea"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Diarrhoea"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_melaena",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/melaena') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-melaena"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Melaena"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_loss_of_appetite",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/loss-of-appetite') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-loss-of-appetite"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Loss of appetite"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_body_weakness",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/body-weakness') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-body-weakness"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body weakness"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_per_rectal_bleeding",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/pr-bleeding') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-per-rectal-bleeding"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Per rectal bleeding"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_per_rectal_pain",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/pr-pain') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-per-rectal-pain"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Per rectal pain"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_weight_loss",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/weight-loss') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-weight-loss"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Weight loss"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_jaundice",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/jaundice') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-jaundice"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Jaundice"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_fever",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/fever') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-fever"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Fever"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_chest_pain",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/chest-pain') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-chest-pain"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Chest pain"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_cough",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/cough') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-cough"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Cough"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_incontinence",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/incontinence') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-incontinence"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Incontinence"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_headache",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/headache') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-headache"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Headache"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_poor_vision",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/poor-vision') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-poor-vision"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Poor vision"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_weakness_of_limbs",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/weakness-of-limbs') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-weakness-of-limbs"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Weakness of limbs"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_dry_mouth",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/dry-mouth') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-dry-mouth"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Dry mouth"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_excessive_sleep",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/excessive-sleep') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-excessive-sleep"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Excessive sleep"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_hallucinations",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/hallucinations') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-hallucinations"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Hallucinations"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
},
{
"name" : "comp_palliative_sore_mouth",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'symptoms/sore-mouth') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-sore-mouth"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Sore mouth"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
}
],
"documentation" : "── The symptom checklist, as one panel ─────────────────────────────────\r\nTwenty-two components on one Observation. A palliative assessment is read\r\nas a whole -- which symptoms are present today, against which were present\r\nlast week -- and twenty-two loose Observations make that comparison a\r\ntwenty-two-query job."
},
{
"name" : "diagnosisGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "g",
"condition" : "linkId = 'diagnosis'"
}
],
"rule" : [
{
"name" : "diagnosisCondition",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'diagnosis/text') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "cond",
"transform" : "create",
"parameter" : [
{
"valueString" : "Condition"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cond"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildConditionBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "cond"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "clinicalStatus",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cond",
"element" : "clinicalStatus",
"variable" : "cs"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cs",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/condition-clinical"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "active"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Active"
}
]
}
]
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cond",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/condition-category"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "problem-list-item"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Problem List Item"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "codeText",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "cond",
"element" : "code",
"variable" : "cc"
},
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
},
{
"name" : "recordedDate",
"source" : [
{
"context" : "qr",
"element" : "authored",
"variable" : "t"
}
],
"target" : [
{
"context" : "cond",
"element" : "recordedDate",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
},
{
"name" : "encounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "cond",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "existingRule",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "ex",
"condition" : "(linkId = 'diagnosis/condition') and answer.value.exists()"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "ex",
"element" : "answer",
"listMode" : "first",
"variable" : "ea"
}
],
"rule" : [
{
"name" : "evidenceReference",
"source" : [
{
"context" : "ea",
"element" : "value",
"variable" : "existing"
}
],
"target" : [
{
"context" : "cond",
"element" : "evidence",
"variable" : "ev"
},
{
"context" : "ev",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueId" : "existing"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "── Diagnosis ───────────────────────────────────────────────────────────\r\nThe form asks for both an existing Condition and the diagnosis as written.\r\nWhere an existing one was picked, the map records the reference as evidence\r\nrather than creating a second Condition -- a palliative referral should not\r\nfork the problem list of a patient who already has a coded cancer on it."
},
{
"name" : "priorTreatmentPanel",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "g",
"condition" : "(linkId = 'prior-treatment') and item.answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "prior-oncological-treatment"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "g"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Prior oncological treatment"
}
]
}
]
}
]
}
]
},
{
"name" : "note",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "linkId = 'prior-treatment/radiotherapy'"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "note2",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "linkId = 'prior-treatment/chemotherapy'"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "note3",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "linkId = 'prior-treatment/surgery'"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "note4",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "linkId = 'prior-treatment/other'"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "note5",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "linkId = 'prior-treatment/p24-markers'"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "comp_prior_treatment_not_discussed_with_the_patient",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'prior-treatment/not-discussed') and answer.value.exists()"
}
],
"target" : [
{
"context" : "obs",
"element" : "component",
"variable" : "comp"
}
],
"rule" : [
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "prior-treatment-not-discussed-with-the-patient"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Prior treatment not discussed with the patient"
}
]
}
]
}
]
}
]
},
{
"name" : "value",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "comp"
}
],
"dependent" : [
{
"name" : "SetComponentCodedValue",
"parameter" : [
{
"valueId" : "it"
},
{
"valueId" : "comp"
}
]
}
]
}
]
}
],
"documentation" : "── Prior oncological treatment ─────────────────────────────────────────\r\nOne Observation with a note per modality. The form takes free text -- \"RT\r\n2024, 25 fractions\" -- and a Procedure built from that would claim a date\r\nand a body site it does not have."
},
{
"name" : "psychosocialGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "g",
"condition" : "linkId = 'psychosocial'"
}
],
"rule" : [
{
"name" : "narr_patient_goals",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/patient-goals') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "patient-goals"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Patient goals and expectations"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "narr_patient_goals2",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/patient-stresses') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "patient-goals"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Patient goals and expectations"
}
]
}
]
}
]
},
{
"name" : "codeText",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Stresses the patient carries, and the help they feel is appropriate"
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "narr_carer_goals",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/carer-goals') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "carer-goals"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Carer goals and expectations"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "narr_carer_goals2",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/carer-stresses') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "carer-goals"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Carer goals and expectations"
}
]
}
]
}
]
},
{
"name" : "codeText",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Stresses the carer carries, and the help they feel is appropriate"
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "narr_spiritual_assessment",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/spiritual-assessment') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "spiritual-assessment"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Spiritual assessment"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "narr_29762_2",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/social-issues') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "29762-2"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Social history note"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "narr_10160_0",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'psychosocial/current-treatment') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "10160-0"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of Medication use Narrative"
}
]
}
]
}
]
},
{
"name" : "codeText",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Current treatment"
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
}
],
"documentation" : "── Goals, patient's and carer's, kept apart ────────────────────────────\r\nTwo Observations, deliberately. A carer who wants their relative admitted\r\nand a patient who wants to die at home are both recorded, and folding them\r\ninto one note would hide exactly the conflict a palliative team has to work\r\nwith."
},
{
"name" : "narr_10164_2",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'history-of-illness') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "10164-2"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of Present illness Narrative"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "referralGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "g",
"condition" : "linkId = 'referral'"
}
],
"rule" : [
{
"name" : "coded_palliative_symptom",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'referral/source') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-referral-source"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative referral source"
}
]
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "codedValue",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "cv"
}
],
"target" : [
{
"context" : "obs",
"element" : "value",
"variable" : "cc",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
}
],
"rule" : [
{
"name" : "valueCoding",
"source" : [
{
"context" : "cv"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "cv"
}
]
}
]
},
{
"name" : "valueText",
"source" : [
{
"context" : "cv",
"element" : "display",
"variable" : "d"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "d"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "narr_palliative_referral_source",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'referral/source-detail') and answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "obs",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetSurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "code",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "obs",
"element" : "code",
"variable" : "cc"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-referral-source"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative referral source"
}
]
}
]
}
]
},
{
"name" : "codeText",
"source" : [
{
"context" : "it"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Referral detail"
}
]
}
]
}
]
},
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "text",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "obs",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "palliativeCarePlan",
"source" : [
{
"context" : "qr",
"condition" : "item.where(linkId = 'problem').item.where(linkId = 'problem/description').answer.value.exists()"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "entry"
},
{
"context" : "entry",
"element" : "resource",
"variable" : "plan",
"transform" : "create",
"parameter" : [
{
"valueString" : "CarePlan"
}
]
}
],
"rule" : [
{
"name" : "base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "plan"
},
{
"context" : "entry"
}
],
"dependent" : [
{
"name" : "BuildCarePlanBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "plan"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "plan",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "active"
}
]
}
]
},
{
"name" : "intent",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "plan",
"element" : "intent",
"transform" : "copy",
"parameter" : [
{
"valueString" : "plan"
}
]
}
]
},
{
"name" : "title",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "plan",
"element" : "title",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative care plan"
}
]
}
]
},
{
"name" : "created",
"source" : [
{
"context" : "qr",
"element" : "authored",
"variable" : "t"
}
],
"target" : [
{
"context" : "plan",
"element" : "created",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
},
{
"name" : "encounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "plan",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "custodian",
"source" : [
{
"context" : "qr",
"element" : "source",
"variable" : "src"
}
],
"target" : [
{
"context" : "plan",
"element" : "custodian",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "plan",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "cg"
}
],
"rule" : [
{
"name" : "sys",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cg",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/concept-codesystem"
}
]
}
]
},
{
"name" : "cd",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cg",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-problem"
}
]
}
]
},
{
"name" : "dsp",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cg",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative care problem"
}
]
}
]
}
]
}
]
},
{
"name" : "problemRows",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "g",
"condition" : "linkId = 'problem'"
}
],
"rule" : [
{
"name" : "problemRow",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'problem/description') and answer.value.exists()"
}
],
"target" : [
{
"context" : "plan",
"element" : "activity",
"variable" : "act"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "problemDisplay",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "act",
"element" : "plannedActivityReference",
"variable" : "ref",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
},
{
"context" : "ref",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
},
{
"name" : "actionRow",
"source" : [
{
"context" : "g",
"element" : "item",
"variable" : "it",
"condition" : "(linkId = 'problem/action-plan') and answer.value.exists()"
}
],
"rule" : [
{
"name" : "answer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "actionNote",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "txt"
}
],
"target" : [
{
"context" : "plan",
"element" : "note",
"variable" : "n"
},
{
"context" : "n",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "txt"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "── The problem and action plan ─────────────────────────────────────────\r\nOne CarePlan, with a row per problem. Each row becomes an activity whose\r\ndisplay is the problem and whose progress note is the action -- the plan is\r\nthe deliverable of a palliative assessment, and the ward picks it up from\r\nthere rather than from the assessment narrative.\r\nGuarded on at least one problem row: a CarePlan with no activities is a\r\nplan nobody made."
}
]
},
{
"name" : "BuildObsBase",
"documentation" : "─────────────────────────────────────────────────────────────────────────────\r\nShared scaffolding. Repeated in each map rather than imported: the transform\r\nengine resolves `imports` against whatever StructureMaps happen to be on the\r\nserver, and a form that stops extracting because a shared map was not\r\nuploaded is a worse failure than a duplicated group.\r\nTwo notes on what the publisher's StructureMap validator says about this file.\r\nSource parameters below are left untyped on purpose. Writing `: Element` makes\r\nthe validator compare QuestionnaireResponse.item against the literal 'Element'\r\nand report them as incompatible with each other, which is noise, not a finding.\r\n`evaluate(context, expression)` is flagged as \"takes 1 parameter but 2 were\r\nfound\". Leave it. The FML parser in the same jar refuses the one-argument form\r\noutright -- it wants a parameter, a comma, then the FHIRPath -- so the\r\npublisher is objecting to what its own compiler emits. Two arguments is the\r\nonly form that compiles, and it is what the R5 transform engine executes.\r\n─────────────────────────────────────────────────────────────────────────────",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "responseProvenance",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs"
}
],
"dependent" : [
{
"name" : "SetResponseProvenance",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obs"
}
]
}
]
},
{
"name" : "idAndFullUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "id",
"transform" : "uuid"
}
],
"dependent" : [
{
"name" : "SetObservationFullUrl",
"parameter" : [
{
"valueId" : "obs"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "entryRequest",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "request"
}
],
"rule" : [
{
"name" : "requestMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "requestUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
]
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "final"
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "obs",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "encounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "obs",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "effective",
"source" : [
{
"context" : "qr",
"element" : "authored",
"variable" : "t"
}
],
"target" : [
{
"context" : "obs",
"element" : "effective",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
},
{
"name" : "performerFromSource",
"source" : [
{
"context" : "qr",
"element" : "source",
"variable" : "src"
}
],
"target" : [
{
"context" : "obs",
"element" : "performer",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "performerFallback",
"source" : [
{
"context" : "qr",
"condition" : "source.exists().not()"
}
],
"rule" : [
{
"name" : "performerFromAuthor",
"source" : [
{
"context" : "qr",
"element" : "author",
"variable" : "a"
}
],
"target" : [
{
"context" : "obs",
"element" : "performer",
"transform" : "copy",
"parameter" : [
{
"valueId" : "a"
}
]
}
]
}
]
},
{
"name" : "linkQuestionnaireResponse",
"source" : [
{
"context" : "qr",
"element" : "id",
"variable" : "qid",
"condition" : "$this.hasValue()"
}
],
"target" : [
{
"context" : "obs",
"element" : "derivedFrom",
"variable" : "ref",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
},
{
"context" : "ref",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueId" : "qid"
}
]
}
],
"documentation" : "A stored response's id already reads \"QuestionnaireResponse/<id>\", so it is\r\na relative reference as it stands. The hasValue() guard is what stops an\r\nunsaved response -- one posted straight to $extract rather than saved first\r\n-- from writing \"QuestionnaireResponse/null\" into the record."
}
]
},
{
"name" : "SetObservationFullUrl",
"input" : [
{
"name" : "obs",
"type" : "Observation",
"mode" : "source"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "assignFullUrl",
"source" : [
{
"context" : "obs",
"element" : "id",
"variable" : "id"
}
],
"target" : [
{
"context" : "entry",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Observation/"
},
{
"valueId" : "id"
}
]
}
]
}
]
},
{
"name" : "SetComponentCodedValue",
"documentation" : "The two answer shapes a component can carry. Both read the answer through the\r\nuntyped `.value` accessor: reading `valueCoding` or `valueQuantity` by its\r\ntyped property name fails at transform time on HAPI R5 with \"Attempt to read\r\ninvalid property ... on QuestionnaireResponse.item.answer\".",
"input" : [
{
"name" : "it",
"mode" : "source"
},
{
"name" : "comp",
"mode" : "target"
}
],
"rule" : [
{
"name" : "componentAnswer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "codedValue",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "cv"
}
],
"target" : [
{
"context" : "comp",
"element" : "value",
"variable" : "cc",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
}
],
"rule" : [
{
"name" : "valueCoding",
"source" : [
{
"context" : "cv"
}
],
"target" : [
{
"context" : "cc",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "cv"
}
]
}
]
},
{
"name" : "valueText",
"source" : [
{
"context" : "cv",
"element" : "display",
"variable" : "d"
}
],
"target" : [
{
"context" : "cc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "d"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "SetComponentValue",
"input" : [
{
"name" : "it",
"mode" : "source"
},
{
"name" : "comp",
"mode" : "target"
}
],
"rule" : [
{
"name" : "componentAnswer",
"source" : [
{
"context" : "it",
"element" : "answer",
"listMode" : "first",
"variable" : "a"
}
],
"rule" : [
{
"name" : "plainValue",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "comp",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
},
{
"name" : "SetSurveyCategory",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "categoryCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "coding"
}
],
"rule" : [
{
"name" : "categorySystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "categoryCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "survey"
}
]
}
]
},
{
"name" : "categoryDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Survey"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "SetExamCategory",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "categoryCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "coding"
}
],
"rule" : [
{
"name" : "categorySystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "categoryCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "exam"
}
]
}
]
},
{
"name" : "categoryDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Exam"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "SetVitalSignsCategory",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "category",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "categoryCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "coding"
}
],
"rule" : [
{
"name" : "categorySystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "categoryCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "categoryDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "coding",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "BuildConditionBase",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "r",
"type" : "Condition",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "responseProvenance",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "r"
}
],
"dependent" : [
{
"name" : "SetResponseProvenance",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "r"
}
]
}
]
},
{
"name" : "idAndFullUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "r",
"element" : "id",
"transform" : "uuid"
}
],
"dependent" : [
{
"name" : "SetConditionFullUrl",
"parameter" : [
{
"valueId" : "r"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "entryRequest",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "request"
}
],
"rule" : [
{
"name" : "requestMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "requestUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Condition"
}
]
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "r",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
}
]
},
{
"name" : "SetConditionFullUrl",
"input" : [
{
"name" : "r",
"type" : "Condition",
"mode" : "source"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "assignFullUrl",
"source" : [
{
"context" : "r",
"element" : "id",
"variable" : "id"
}
],
"target" : [
{
"context" : "entry",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Condition/"
},
{
"valueId" : "id"
}
]
}
]
}
]
},
{
"name" : "BuildCarePlanBase",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "r",
"type" : "CarePlan",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "responseProvenance",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "r"
}
],
"dependent" : [
{
"name" : "SetResponseProvenance",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "r"
}
]
}
]
},
{
"name" : "idAndFullUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "r",
"element" : "id",
"transform" : "uuid"
}
],
"dependent" : [
{
"name" : "SetCarePlanFullUrl",
"parameter" : [
{
"valueId" : "r"
},
{
"valueId" : "entry"
}
]
}
]
},
{
"name" : "entryRequest",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "request"
}
],
"rule" : [
{
"name" : "requestMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "requestUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "request",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "CarePlan"
}
]
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "r",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
}
]
},
{
"name" : "SetCarePlanFullUrl",
"input" : [
{
"name" : "r",
"type" : "CarePlan",
"mode" : "source"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "assignFullUrl",
"source" : [
{
"context" : "r",
"element" : "id",
"variable" : "id"
}
],
"target" : [
{
"context" : "entry",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CarePlan/"
},
{
"valueId" : "id"
}
]
}
]
}
]
},
{
"name" : "SetResponseProvenance",
"documentation" : "── Provenance and tenancy ───────────────────────────────────────────────────\r\nTwo tags on everything this map creates. The first says which questionnaire\r\nproduced it, so a form that reopens mid-admission recalls its own earlier\r\nentries and not another form's. The second copies the tenant tags off the\r\nresponse, because nothing else on the path puts them there.\r\nThe code is the form's document type, not the questionnaire's id: every\r\nenvironment mints its own ids, and there is only one set of maps, so an id\r\nhere would tie the tag to whichever environment stamped it.\r\n── Provenance and tenancy ───────────────────────────────────────────────────",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "r",
"mode" : "target"
}
],
"rule" : [
{
"name" : "provenanceMeta",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "r",
"element" : "meta",
"variable" : "m"
}
],
"rule" : [
{
"name" : "provenanceTag",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "m",
"element" : "tag",
"variable" : "t"
}
],
"rule" : [
{
"name" : "provenanceSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "t",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://slade360edi.com/questionnaire-provenance"
}
]
}
]
},
{
"name" : "provenanceCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "t",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "palliative-care-assessment"
}
]
}
]
},
{
"name" : "provenanceDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "t",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Palliative care assessment"
}
]
}
]
}
]
}
]
},
{
"name" : "tenantTags",
"source" : [
{
"context" : "qr",
"element" : "meta",
"variable" : "qm"
}
],
"rule" : [
{
"name" : "copyTag",
"source" : [
{
"context" : "qm",
"element" : "tag",
"variable" : "qt"
}
],
"target" : [
{
"context" : "r",
"element" : "meta",
"variable" : "m"
},
{
"context" : "m",
"element" : "tag",
"transform" : "copy",
"parameter" : [
{
"valueId" : "qt"
}
]
}
]
}
],
"documentation" : "Every tag the response carries, onto the resource. `meta` is 0..1, so this\r\nlands on the same meta the rule above created rather than a second one."
}
]
}
]
}