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/Practitioner-CareWorker | Version: 0.1.0 | |||
| Draft as of 2026-06-10 | Computable Name: PractitionerToCareWorker | |||
map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Practitioner-CareWorker" = "PractitionerToCareWorker" uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Practitioner" alias Practitioner as source uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-CareWorker" alias CareWorker as target group CareWorker(source src : Practitioner, target tgt : CareWorker) { src -> tgt.id = evaluate(src, id) "setCareWorkerId"; src -> tgt.meta as meta, meta.dataClass as dataClass then { src -> dataClass.name = 'Care Worker' "63274580-6236-4b37-b349-85da3eb80868"; } "setDataClassName"; src -> tgt.name as name then { src.name as humanName then { src -> name.given = evaluate(humanName, given) "a1aa72bd-5d36-442d-a8db-444a494499f1"; src -> name.family = evaluate(humanName, family) "e8e16e25-3ba6-45bd-b883-3aea0a283c18"; } "setFamilyAndGivenName"; } "setName"; src -> tgt.contactDetails as contactDetails then { src.telecom as emailAddress where $this.system='email' -> contactDetails.emailAddressDetails as emailAddressDetails then { src -> emailAddressDetails.emailAddress = evaluate(emailAddress, value) "8c217a06-1e19-4980-b5d2-fb2dbef16080"; src -> emailAddressDetails.preferredOrder = evaluate(emailAddress, rank) "896ec1e6-9252-40ab-9386-e0855d339a9e"; emailAddress.extension as emailAddressTypeExt where $this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType' then { src -> emailAddressDetails.type as emailAddressType then { src -> emailAddressType.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type' "b81d50ef-2c67-40b6-ad1e-d2e3c0780226"; src -> emailAddressType.code = evaluate(emailAddressTypeExt, valueCoding.code) "43646139-d262-469f-a7ce-2784ee5a335b"; src -> emailAddressType.display = evaluate(emailAddressTypeExt, valueCoding.display) "2bdba0aa-1573-4650-b3f7-756d749ca565"; } "b942758f-e3c8-4cd1-86c4-f2bbefc18a80"; }; }; src.telecom as telephoneNumber where $this.system='phone' -> contactDetails.telephoneDetails as telephoneNumberDetails then { src -> telephoneNumberDetails.telephoneNumber = evaluate(telephoneNumber, value) "0eb552ce-5144-4185-999c-cc470e7d54cd"; src -> telephoneNumberDetails.preferredOrder = evaluate(telephoneNumber, rank) "34987f67-d804-44a3-ba17-10d3a3520874"; telephoneNumber.extension as telephoneNumberExt where $this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType' then { src -> telephoneNumberDetails.type as telephoneNumberType then { src -> telephoneNumberType.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type' "a33366a7-6cad-4d3b-b9f8-0d3d5086fe6f"; src -> telephoneNumberType.code = evaluate(telephoneNumberExt, valueCoding.code) "4b5036fb-f67b-4ca4-b397-9a0f50026ad6"; src -> telephoneNumberType.display = evaluate(telephoneNumberExt, valueCoding.display) "2c41e96d-d946-4466-a6f7-10f47682b13e"; } "2d6536c2-9e85-433d-a5f5-0ed2344b8cdb"; }; }; } "setContactDetails"; }