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-03-24 | 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' "ac0d9409-65d3-4ac5-a2e4-82e311729d39"; } "setDataClassName"; src -> tgt.name as name then { src.name as humanName then { src -> name.given = evaluate(humanName, given) "5b7971e2-4ecc-4f09-a7f3-480d6620c5fa"; src -> name.family = evaluate(humanName, family) "ff76faaa-9937-4c29-9e4b-b7ee6587b724"; } "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) "056d2626-9d12-411c-8aa7-9ce762c25520"; src -> emailAddressDetails.preferredOrder = evaluate(emailAddress, rank) "9c3e2c64-fa5c-4f1a-bd0e-b1214d7f3042"; 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' "df5ca7a7-596b-4316-863d-a1b078386d9b"; src -> emailAddressType.code = evaluate(emailAddressTypeExt, valueCoding.code) "dc2268a7-1f92-4d75-b21a-7075ff68c701"; src -> emailAddressType.display = evaluate(emailAddressTypeExt, valueCoding.display) "88beab9d-b983-44ad-ab6f-67cffec63f8b"; } "ccd293d4-7b1f-4e72-86d4-d38cfa46cbc2"; }; }; src.telecom as telephoneNumber where $this.system='phone' -> contactDetails.telephoneDetails as telephoneNumberDetails then { src -> telephoneNumberDetails.telephoneNumber = evaluate(telephoneNumber, value) "ec42b1e7-46b5-40f9-9948-9e9c8c4097cb"; src -> telephoneNumberDetails.preferredOrder = evaluate(telephoneNumber, rank) "3122fe00-dc00-455e-9785-5779e8f82e21"; 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' "0520f2c7-d19c-41b0-b26f-99deb20298fd"; src -> telephoneNumberType.code = evaluate(telephoneNumberExt, valueCoding.code) "2d449562-de74-496f-9aeb-e950492fb40d"; src -> telephoneNumberType.display = evaluate(telephoneNumberExt, valueCoding.display) "683286cd-5953-4d92-8a19-ec2f0caa133f"; } "738d2d8c-f42f-4a10-adc2-6ce7948eec06"; }; }; } "setContactDetails"; }