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-03-24 | 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) "1b8a0332-e4f5-4e40-8cbd-2a1235f018ae"; 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' "a322b522-ab5f-4e92-9378-aae68a7bf40e"; src -> tag.code = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-Need-Need' "b61d612f-0f2d-4b5a-adcd-3dd8ad00b84e"; } "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' "428b994f-e900-4b53-851c-7753fce7e260"; careWorker -> participantRoleExt.valueCode = 'performer' "3c43ae7d-7649-4f38-9ba5-83051f6bd8d4"; } "f6f24d88-bbf5-496b-af07-2253229ce42a"; careWorker -> participantExt.extension as participantRefExt then { careWorker -> participantRefExt.url = 'participantReference' "75b06760-fc7c-4eba-bd90-2a0e6aad5ede"; careWorker -> participantRefExt.valueReference as participantReference then { careWorker -> participantReference.reference = evaluate(careWorker, 'Practitioner/'+id) "39338f37-b4d1-4613-91d6-0dcca7087ce7"; careWorker -> participantReference.display = evaluate(careWorker, display) "658b62be-df26-4237-bd02-c94b3b063b1b"; } "df270598-c055-429b-9eda-b20bae1298d6"; } "266335c8-d269-41ab-88d9-9434ad992897"; participantExt -> tgt.extension "e0cc5f90-bfe4-42c3-8939-e93030b18800"; } "53510fcc-ddb5-4a09-b6df-3c4acf08c948"; } "setObservationPerformer"; src.subjectOfCare as subjectOfCare then { src -> tgt.subject as subject then { src -> subject.reference = evaluate(subjectOfCare, 'Patient/'+id) "cbc03a39-3b92-48ab-8585-dd82168af6df"; src -> subject.display = evaluate(subjectOfCare, display) "725998f9-52cb-49fe-b938-fb3b5bc2a59c"; } "504f8fe4-f2cb-46ef-b9a0-c0b170be6cc8"; } "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') "78377925-055d-472c-9fb5-309a36e90d09"; 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) "f1d617da-50f8-4ff2-b69e-509fee06c9f9"; vcc -> coding.display = evaluate(needCategory, display) "01a4c5fa-44d0-459a-910c-987769e746fa"; }; } "a20a2718-bfcd-46b1-9bba-8085058e4c05"; } "ab5a7864-dc21-4c94-b091-688f1a5d6cb7"; } "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') "6c9e0ec5-8059-4a15-bd1f-947489053954"; src -> freeText.valueString = evaluate(src, text) "5375dc90-ab4b-4e79-a6b8-48aa253906ad"; } "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') "be78859d-5880-404e-bd02-0fc938c423db"; src -> significance.valueBoolean = evaluate(src, significant) "b1415b43-8783-41fd-8574-8d11636ebf01"; } "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') "e2590dcb-946c-4c54-8f77-83a49e46b898"; src -> urgency.valueBoolean = evaluate(src, urgent) "39d6c9d3-c014-4712-b1be-ce79bb2483ca"; } "setObservationNeedUrgentComponent"; }; }; }; }