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/Observation-Safeguarding-Safeguarding | Version: 0.1.0 | |||
| Draft as of 2026-06-10 | Computable Name: ObservationSafeguardingToSafeguarding | |||
map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-Safeguarding-Safeguarding" = "ObservationSafeguardingToSafeguarding" uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-SafeguardingObservation" alias SafeguardingObservation as source uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Safeguarding" alias Safeguarding as target group Safeguarding(source src : SafeguardingObservation, target tgt : Safeguarding) { src -> tgt.id = evaluate(src, id) "67ac6685-31a1-4b92-9b50-2908774f1f78"; src -> tgt.meta as meta, meta.dataClass as dataClass then { src -> dataClass.name = 'Safeguarding Concern' "48e6c7c4-43fb-414e-b6c6-c92c788b5616"; } "setDataClassName"; src.subject as subject then { src -> tgt.subjectOfCare as subjectOfCare then { src -> subjectOfCare.id = evaluate(subject, reference.replace('Patient/','')) "b630035f-9914-4c48-a9a7-cbad44edf947"; src -> subjectOfCare.type = 'SubjectOfCare' "5445188e-9422-4bd3-aa75-92629b205c39"; src -> subjectOfCare.display = evaluate(subject, display) "8137f511-324f-4fb8-9658-ef16deacbf29"; } "afc36ace-0239-4102-beab-741fed731cac"; } "setSafeguardingSubject"; src.extension as participantsExt where $this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-ParticipantCareActor' -> tgt.careWorker as careWorker then { participantsExt.extension as careWorkers where $this.url='participantRole'and$this.valueCode='performer' then { participantsExt.extension as careWorkerParticipantReferences where $this.url='participantReference' then { careWorkerParticipantReferences.valueReference as careWorkerParticipantRef then { src -> careWorker.id = evaluate(careWorkerParticipantRef, reference.replace('Practitioner/','')) "bd94cd9c-8cac-4aa2-a301-8bac187516c2"; src -> careWorker.type = 'CareWorker' "dbb093a6-8870-46e9-9082-ebc2db755fbe"; src -> careWorker.display = evaluate(careWorkerParticipantRef, display) "bb4c0534-4b5e-4304-8366-afebcefe79fc"; }; }; }; } "setSafeguardingCareWorker"; src.effectivePeriod as period then { period.start as start then { src -> tgt.identifiedDateTime = evaluate(period, start) "97434c73-2c11-4a50-9a87-fa4e3326dcaf"; }; period.end as end then { src -> tgt.endedDateTime = evaluate(period, end) "790e61f2-75c4-4104-920d-1fe5134c2e4e"; }; } "setSafeguardingStartEndDates"; src.component as component where $this.valueCodeableConcept.coding.system='http://snomed.info/sct' then { src -> tgt.coding as coding then { component.valueCodeableConcept as vcc, vcc.coding as vc then { src -> coding.code = evaluate(vc, code) "a735ab99-3bbc-42d2-afaf-bd8353cdf6e0"; src -> coding.display = evaluate(vc, display) "e82e74e0-0603-4fa9-aa36-2ed9ac81b0af"; } "valueCodeableConcept"; } "16af1649-d0f2-41ad-9c19-7ef95e2ef3db"; } "setSafeguardingCode"; src.component as component where $this.code.coding.code='text' then { src -> tgt.text = evaluate(component, valueString) "5d081f9a-787d-4163-a851-ec0e1adacc7c"; } "setSafeguardingText"; src.component as component where $this.code.coding.code='gp-informed' then { src -> tgt.gpInformed as gpInformed then { component.valueCodeableConcept as vcc, vcc.coding as vc then { src -> gpInformed.code = evaluate(vc, code) "bad99e49-ae0b-4d95-991b-499d22348685"; src -> gpInformed.display = evaluate(vc, display) "821f9a44-de66-4db6-bd3d-6847415e0a88"; } "valueCodeableConcept"; } "378a813d-ae4b-4a99-af77-21282252caea"; } "setGpInformed"; src.component as component where $this.code.coding.code='police-aware' then { src -> tgt.policeAware as policeAware then { component.valueCodeableConcept as vcc, vcc.coding as vc then { src -> policeAware.code = evaluate(vc, code) "a70041dc-8b50-4cc3-8cdc-330ff132eb9b"; src -> policeAware.display = evaluate(vc, display) "8101f4cd-eb24-43cd-ad08-074762ffab13"; } "valueCodeableConcept"; } "bfa0cf67-a618-4500-8ab3-5d6754a8d79c"; } "setPoliceAware"; }