Social Care Interoperability Platform FHIR Implementation Guide
Version: 0.1.0, Status: draft
Social Care Interoperability Platform FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Need-Observation-Need | Version: 0.1.0 | |||
| Draft as of 2026-06-10 | Computable Name: NeedToObservationNeed | |||
map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Need-Observation-Need" = "NeedToObservationNeed" uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Need" alias Need as source uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-NeedObservation" alias NeedObservation as target group NeedObservation(source src : Need, target tgt : NeedObservation) { src -> tgt.id = evaluate(src, id) "2063e93d-3707-45fb-a5a8-b58dd7b5a8df"; src -> tgt.meta as meta, meta.tag as tag then { src -> tag.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-FhirStructureMapCatalog-1' "fb26a371-d40e-461d-a9b0-f38e7cbf555f"; src -> tag.code = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-Need-Need' "83b577d1-2805-4e7f-a744-4526a5fdf834"; } "setMetaTag"; src.careWorker as careWorker then { src -> src.extension as participantExt, participantExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-ParticipantCareActor' then { careWorker -> participantExt.extension as participantRoleExt then { careWorker -> participantRoleExt.url = 'participantRole' "4f06b15b-36a4-48dd-85e3-4717c58fe789"; careWorker -> participantRoleExt.valueCode = 'performer' "bf04bf76-1a22-45a7-a116-6080a923b903"; } "6d1f720a-600c-42ae-b135-3f8027c8a6b5"; careWorker -> participantExt.extension as participantRefExt then { careWorker -> participantRefExt.url = 'participantReference' "d93b1039-734c-466d-88ae-a014fb782650"; careWorker -> participantRefExt.valueReference as participantReference then { careWorker -> participantReference.reference = evaluate(careWorker, 'Practitioner/'+id) "42d57543-0e98-4d12-b2b3-523b0f408c52"; careWorker -> participantReference.display = evaluate(careWorker, display) "9b288041-9a8c-480b-84d7-f13a224512b9"; } "de61968b-5908-4725-ad18-c69db01979e0"; } "c6e2bea9-485f-4205-8a3a-bfce3c99afc6"; participantExt -> tgt.extension "fc4c8207-58ce-41d3-a87b-f782bafa73bc"; } "328ebc44-d877-4c16-8701-1ffcfd22cd74"; } "setObservationPerformer"; src.subjectOfCare as subjectOfCare then { src -> tgt.subject as subject then { src -> subject.reference = evaluate(subjectOfCare, 'Patient/'+id) "55fbec27-5272-4c2e-85ac-fc0ecff8118a"; src -> subject.display = evaluate(subjectOfCare, display) "be2a6a09-0785-4f39-9da9-f422b29a61d4"; } "2fe0a3b8-c678-4c5c-bdad-55229dd3aa6a"; } "setObservationSubject"; src -> tgt.status = 'final' "setObservationStatus"; src -> tgt.category = cc('https://metadata.phase2.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationCategory-1', '3', 'Observations') "setObservationCategory"; src -> tgt.code = cc('https://metadata.phase2.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationCode-1', '7', 'Need') "setObservationCode"; src -> tgt.effectiveDateTime = evaluate(src, datetime) "setObservationEffectDateTime"; src.category as needCategory then { src -> tgt.component as coded then { src -> coded.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationComponentCode-1', 'coded', 'Coded') "91047b3b-9a8e-4482-b51a-ca69a60f5f56"; src -> coded.valueCodeableConcept = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-NeedCategory-1', '', '') as vcc then { vcc.coding as coding then { vcc -> coding.code = evaluate(needCategory, code) "3e3735d0-c996-449e-9b33-31a0ffde7462"; vcc -> coding.display = evaluate(needCategory, display) "9856c385-ae0b-4c52-9ede-e5d3cbb5d316"; }; } "a9b4cbe1-2f83-438d-8e1f-e8ab61638792"; } "37fd8191-66ca-49e9-b370-3cab16e8f375"; } "setObservationNeedCategoryComponent"; src.text as text then { src -> tgt.component as freeText then { src -> freeText.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationComponentCode-1', 'text', 'Free-text') "a3d0667c-f023-499b-8619-832b9158a1d8"; src -> freeText.valueString = evaluate(src, text) "c4caffe1-0fc2-407f-97e1-af73bc001dc1"; } "setObservationNeedTextComponent"; src.significant as significant then { src -> tgt.component as significance then { src -> significance.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-NeedComponentCode-1', 'significant', 'Significant') "20323a1d-6878-48d0-acd2-11a792493252"; src -> significance.valueBoolean = evaluate(src, significant) "dfd8576e-0f97-4e5b-8c54-6991582c35ac"; } "setObservationNeedSignificantComponent"; src.urgent as urgent then { src -> tgt.component as urgency then { src -> urgency.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-NeedComponentCode-1', 'urgent', 'Urgent') "b9c8e179-4438-4bbd-ae15-35f4ad46d9cb"; src -> urgency.valueBoolean = evaluate(src, urgent) "f57174aa-2d93-43de-8f52-7e65905ff889"; } "setObservationNeedUrgentComponent"; }; }; }; }