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/CareWorker-Practitioner | Version: 0.1.0 | |||
| Draft as of 2026-03-24 | Computable Name: CareWorkerToPractitioner | |||
map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/CareWorker-Practitioner" = "CareWorkerToPractitioner" uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-CareWorker" alias CareWorker as source uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Practitioner" alias Practitioner as target group Practitioner(source src : CareWorker, target tgt : Practitioner) { src -> tgt.id = evaluate(src, id) "setPractitionerId"; src -> tgt.name as name then { src -> name.given = evaluate(src, name.given) "f73a62a1-bb8e-4496-82fb-dcfc1a87f86f"; src -> name.family = evaluate(src, name.family) "7519bc1f-7db9-435b-9c25-d3b3e81db715"; } "setPractitionerName"; src.contactDetails as emailContactDetails then { emailContactDetails.emailAddressDetails as emailAddressDetails -> tgt.telecom as telecom then { src -> telecom.system = 'email' "2ef26959-7e54-4716-9cbd-e78475a4e969"; src -> telecom.value = evaluate(emailAddressDetails, emailAddress) "c377acdf-3186-4ebb-9bc0-d05db40adbdf"; src -> telecom.rank = evaluate(emailAddressDetails, preferredOrder) "3dff3637-08e6-45d3-bbf3-cbdde5969028"; src -> src.emailAddressType = create('Coding') as etvt then { src -> etvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type' "fae7267d-9f89-4006-bdad-0d2a54c7f796"; src -> etvt.code = evaluate(emailAddressDetails, type.code) "3698b0f0-5a84-4c10-9bd7-2d1565ba94b0"; src -> telecom.use = translate(etvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIREmailContactPointUse-1', 'code') "a73b5476-08df-4aa7-aff7-4c4b00996f83"; src -> telecom.extension as emailTypeExt then { src -> emailTypeExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType' "8d8d1c2c-cb44-4e8a-ba36-4e44c9bcb9b6"; src -> emailTypeExt.valueCoding as emailTypeValueCoding then { src -> emailTypeValueCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-EmailAddressType-1' "41d389bf-01e4-4e4b-9430-1d83c90c82db"; src -> emailTypeValueCoding.code = evaluate(emailAddressDetails, type.code) "88d2e8f5-876d-42b0-acb2-62a696040c1a"; src -> emailTypeValueCoding.display = evaluate(emailAddressDetails, type.display) "6373f4ca-1d86-42e5-9e9b-c2d1ea5d04bd"; } "fa36062c-2e08-4900-a567-ec8def6d7ff5"; } "120ba4aa-eb89-46a0-bf1d-b8dfd36adafa"; } "5c6a7888-77f7-4d1c-af32-6c5a76c30320"; } "setCareWorkerEmailAddress"; src.contactDetails as telephoneContactDetails then { telephoneContactDetails.telephoneDetails as telephoneNumberDetails -> tgt.telecom as telecom then { src -> telecom.system = 'phone' "780cd4a0-5a3b-4eb2-812b-21d7e8fdbe1c"; src -> telecom.value = evaluate(telephoneNumberDetails, telephoneNumber) "a4b0b305-741f-4706-937a-dea747d276b2"; src -> telecom.rank = evaluate(telephoneNumberDetails, preferredOrder) "2ce2dca8-d13e-4c54-84b3-162be8e4d2af"; src -> src.telephoneType = create('Coding') as ttvt then { src -> ttvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type' "e847b6fa-93ef-4aee-b06c-5a456ad6956f"; src -> ttvt.code = evaluate(telephoneNumberDetails, type.code) "e090cd2e-a75a-40e0-9fe8-bbc7fb242759"; src -> telecom.use = translate(ttvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRTelephoneContactPointUse-1', 'code') "9793d9a4-759e-4177-a92e-7ef90d3013a2"; } "557e0cbc-1c20-4b62-ac9d-1fad9d031260"; src -> telecom.extension as telephoneTypeExt then { src -> telephoneTypeExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType' "8bfb3096-fbbc-4e19-b01e-d57ad11ead68"; src -> telephoneTypeExt.valueCoding as telephoneNumberTypeCoding then { src -> telephoneNumberTypeCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-TelephoneNumberType-1' "c1445e52-08ec-44a6-9c90-2b8e332c5016"; src -> telephoneNumberTypeCoding.code = evaluate(telephoneNumberDetails, type.code) "416fea65-98bd-476d-8542-5faf2eeaf0f6"; src -> telephoneNumberTypeCoding.display = evaluate(telephoneNumberDetails, type.display) "b2a937f8-9dd2-421e-b0ed-06cfcb6de877"; } "07fb37e3-88ee-4085-a66b-f6e5fe0dd64d"; } "75cf2fe9-e57c-4b46-a429-5f7e5b6216bc"; } "setCareWorkerTelephone"; }; }; }