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/Safeguarding-Observation-Safeguarding | Version: 0.1.0 | |||
| Draft as of 2026-06-10 | Computable Name: SafeguardingToObservationSafeguarding | |||
map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Safeguarding-Observation-Safeguarding" = "SafeguardingToObservationSafeguarding" uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Safeguarding" alias Safeguarding as source uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-SafeguardingObservation" alias SafeguardingObservation as target group SafeguardingObservation(source src : Safeguarding, target tgt : SafeguardingObservation) { src -> tgt.id = evaluate(src, id) "d7df7a41-2761-4477-ad7e-1414ea04c2bb"; 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' "bc24afff-76cf-49b4-ace7-d189891ffebc"; src -> tag.code = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-Safeguarding-Safeguarding' "15c22653-4872-41e1-84f1-0dc28622ac2f"; } "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' "beb5512f-279e-4b47-81c5-872dd4af1694"; careWorker -> participantRoleExt.valueCode = 'performer' "f14c7889-b485-4665-9ae1-1c026952962b"; } "087d29f1-8e9d-4ba1-9371-c251ece431ea"; careWorker -> participantExt.extension as participantRefExt then { careWorker -> participantRefExt.url = 'participantReference' "35d28d36-2a00-43de-9f12-a3f26b5195eb"; careWorker -> participantRefExt.valueReference as participantReference then { careWorker -> participantReference.reference = evaluate(careWorker, 'Practitioner/'+id) "a6795605-82db-4e25-befb-b1b514f971dc"; careWorker -> participantReference.display = evaluate(careWorker, display) "3a9517a4-8c52-4292-ab80-b64408ce9556"; } "d4a65933-97d0-43b1-be95-3293c1f3ad02"; } "42e741bf-84d7-4317-b129-121fb645a225"; participantExt -> tgt.extension "06dec0d5-f6e0-4226-9def-58e94b9e1d83"; } "5d6552e2-5c79-4fef-a0bc-e4457f2a0edc"; } "setObservationPerformer"; src -> tgt.status = 'final' "setObservationStatus"; src.subjectOfCare as subjectOfCare then { src -> tgt.subject as subject then { src -> subject.reference = evaluate(subjectOfCare, 'Patient/'+id) "1dea1a74-1095-4c9d-a0ae-951f3704176c"; src -> subject.display = evaluate(subjectOfCare, display) "7a231dbf-9417-4da1-ada5-89fb98f242cb"; } "8d09f7ad-e642-482a-af59-6d927acfd461"; } "setObservationSubject"; src -> tgt.category = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationCategory-1', '3', 'Observations') "setObservationCategory"; src -> tgt.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationCode-1', '10', 'Safeguarding Concern') "setObservationCode"; src -> src.period as period then { src.identifiedDateTime as start then { src -> period.start = evaluate(src, identifiedDateTime) "a58605f4-0dd9-4146-96d7-3e8977990293"; }; src.endedDateTime as end then { src -> period.end = evaluate(src, endedDateTime) "2f537a27-b535-4e35-aee7-73fc3cb9a770"; }; period where $this.start.empty().not()or$this.end.empty().not() -> tgt.effectivePeriod "4043e4f7-abdd-40d4-ac86-40ba0e3e15c2"; } "setObservationPeriod"; src.coding as safeguardingCoding 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') "ba0100fb-39ab-4b10-8a04-5636884302e6"; src -> coded.valueCodeableConcept = cc('http://snomed.info/sct', '', '') as vcc then { vcc.coding as coding then { vcc -> coding.code = evaluate(safeguardingCoding, code) "ef46a678-413e-4f81-bbba-d36f6ba6150f"; vcc -> coding.display = evaluate(safeguardingCoding, display) "17c15965-0c20-46dc-9716-8c4b49a0e1ac"; }; } "dccdc3dd-9015-4967-bb75-2cca5973bf9c"; } "aef890d2-0c91-47bd-9300-ee9aa452d65c"; } "setObservationComponentCode"; 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') "31bd9084-c71d-4f04-b8bb-50fdc47fdc0f"; src -> freeText.valueString = evaluate(src, text) "92e7bbb6-1d55-4f43-8ce6-d4cc8f6c365d"; } "setObservationTextComponent"; src.gpInformed as gpInformed then { src -> tgt.component as coded then { src -> coded.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-SafeguardingComponentCode-1', 'gp-informed', 'GP Informed') "e6b3ecfe-f03f-4bbc-bde1-3e4b26726f58"; src -> coded.valueCodeableConcept = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-AgenciesInformed-1', '', '') as vcc then { vcc.coding as coding then { vcc -> coding.code = evaluate(gpInformed, code) "d1c9595e-9ef2-4fab-907f-0a2f26a59f54"; vcc -> coding.display = evaluate(gpInformed, display) "43ff7849-5a90-4220-b256-f23671414877"; }; } "b115f4e0-c651-41c0-abcf-e85edd24e6e6"; } "315203aa-2d97-45ad-b15f-16d51a7959dd"; } "setObservationGpInformedComponent"; src.policeAware as policeAware then { src -> tgt.component as coded then { src -> coded.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-SafeguardingComponentCode-1', 'police-aware', 'Police Aware') "54281b59-da63-4b1d-8442-e48c5d2e45c0"; src -> coded.valueCodeableConcept = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-AgenciesInformed-1', '', '') as vcc then { vcc.coding as coding then { vcc -> coding.code = evaluate(policeAware, code) "1a14bf09-0af5-4d0b-b848-d786e8c89c13"; vcc -> coding.display = evaluate(policeAware, display) "b1ffe58b-307d-4f22-afc2-be9c2fdb171f"; }; } "e44d3705-de18-4cd3-a5d5-771fe6430fcb"; } "7e94986a-7476-4228-a06b-d06b978aca29"; } "setObservationPoliceAwareComponent"; }; }