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

StructureMap: SubjectOfCareToPatient

Official URL: https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/SubjectOfCare-Patient Version: 0.1.0
Draft as of 2026-03-24 Computable Name: SubjectOfCareToPatient

map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/SubjectOfCare-Patient" = "SubjectOfCareToPatient"

uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-SubjectOfCare" alias SubjectOfCare as source
uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Patient" alias Patient as target

group Patient(source src : SubjectOfCare, target tgt : Patient) {
  src -> tgt.id = evaluate(src, id) "setPatientId";
  src.demographics as demographics, demographics.sex as sex, sex.code as sexCode then {
    src -> src.sex = create('Coding') as sxvt then {
      src -> sxvt.code = sexCode "12f54fdb-c9a1-44f2-b149-2851a8498972";
      src -> sxvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-sex' "28b599b2-7388-4c05-9bd3-9e1ac3600d6b";
      src -> tgt.extension as birthSexExt then {
        src -> birthSexExt.url = 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex' "f45ec68e-5c48-4d02-a472-77f2a8c0353e";
        src -> birthSexExt.valueCodeableConcept = translate(sxvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRBirthSex-1', 'CodeableConcept') "09a0ed80-3a67-45c3-a335-f684139b6f9d";
      } "7c94959c-4e8f-4579-85e4-0a9c6969d7eb";
    } "0dc8772f-6222-424b-b00a-3b9b70b69144";
  } "setPatientBirthSex";
  src.demographics as demographics, demographics.ethnicity as ethnicity then {
    src -> tgt.extension as ethnicityExt then {
      src -> ethnicityExt.url = 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory' "773950dd-a9af-4437-81a1-96879fec04f7";
      src -> ethnicityExt.valueCodeableConcept as ethnicCategory then {
        src -> ethnicCategory.coding as coding then {
          src -> coding.system = 'https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategoryEngland' "ee22b11d-c32f-4d03-b720-462434d4c6ef";
          src -> coding.code = evaluate(ethnicity, code) "f784da5d-fcd0-4751-87a2-240d47f91abb";
          src -> coding.display = evaluate(ethnicity, display) "a37853df-11f7-4f62-8619-62109fc7ebb4";
        } "94cdead7-7123-4fa8-bc64-e3eecfc2ebc8";
      } "3cb3b1f5-31f6-4688-8c5e-1accaf03e227";
    } "42424e23-d610-4292-9e36-7776de3eb252";
  } "setPatientEthnicity";
  src.demographics as demographics, demographics.religion as religion then {
    src -> tgt.extension as religionExt then {
      src -> religionExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonReligiousAffiliation' "d688851c-e295-439e-b79e-1266c33194ec";
      src -> religionExt.valueCodeableConcept as ethnicCategory then {
        src -> ethnicCategory.coding as coding then {
          src -> coding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-PersonReligionCode-1' "ea6319ea-7256-4108-9551-920044991ca2";
          src -> coding.code = evaluate(religion, code) "6eeccb2e-3d54-4122-addd-4f3c162296ad";
          src -> coding.display = evaluate(religion, display) "9e796800-83ce-45c7-a2ae-342deec2c691";
        } "4e52cbe3-0140-406c-8fe6-aaf2c8034bad";
      } "97edf42d-49ee-4f0b-8a21-4920359a151a";
    } "899b03b8-f7d0-4b4d-8a37-0d3a9d8675e9";
  } "setPatientReligion";
  src.demographics as demographics, demographics.sexualOrientation as sexualOrientation then {
    src -> tgt.extension as sexualOrientationExt then {
      src -> sexualOrientationExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonSexualOrientation' "6d66366f-855b-4096-b448-b10b3180db64";
      src -> sexualOrientationExt.valueCodeableConcept as sexualOrientationCode then {
        src -> sexualOrientationCode.coding as coding then {
          src -> coding.system = 'http://snomed.info/ct' "46574c71-8dfd-4ace-bcc3-86370ce64384";
          src -> coding.code = evaluate(sexualOrientation, code) "5764fa99-9bcf-4bee-bba7-90b1724d2b9b";
          src -> coding.display = evaluate(sexualOrientation, display) "70b4c68c-4245-4fad-be88-0a76ba589613";
        } "815cf457-a5ed-4738-9c91-84aa10cb7753";
      } "80452a30-f9d0-4e94-aff3-7c0ac367e0b6";
    } "d8cd91bf-b532-4711-a661-0c81cf639852";
  } "setPatientSexualOrientation";
  src -> tgt.name as name then {
    src -> name.given = evaluate(src, name.given) "af5e2cb8-1b4c-4397-9d60-7bdb78b337c4";
    src -> name.family = evaluate(src, name.family) "3e68a297-14b1-48b2-a010-6939ab06d8eb";
  } "setPatientName";
  src.identification -> tgt.identifier as identifier then {
    src -> identifier.use = 'official' "f650311b-f393-470c-9307-4c7c59f11028";
    src -> identifier.system = 'https://fhir.nhs.uk/Id/nhs-number' "61dab28e-8dbf-4baf-8231-a01559e4f2b4";
    src -> identifier.value = evaluate(src, identification.nhsNumber.value) "ebee4041-7917-4064-a10a-d082fc81d15f";
    src -> identifier.extension as extension then {
      src -> extension.url = 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus' "2bb38019-8fbe-4074-bbb8-11c8bf1bb8c3";
      src -> extension.valueCodeableConcept as cc then {
        src -> cc.coding as coding then {
          src -> coding.system = 'https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatusEngland' "52e1f37e-f2ac-437c-bae4-68031e926b30";
          src -> coding.code = evaluate(src, identification.nhsNumber.statusIndicator.code) "7e4e69ec-ea3a-4077-a8e2-2a89df53275e";
          src -> coding.display = evaluate(src, identification.nhsNumber.statusIndicator.display) "8d88f096-cca5-42cb-9f35-8a4b423aace7";
        } "5743fbc8-69d6-4d4a-9f8d-7f9da940ee8f";
      } "87cc812d-f5be-4b00-96fd-3aa079112464";
    } "400a81ad-d0c5-4689-8f8b-72d4adfa8c0c";
  } "setPatientNHSNumber";
  src.identification as identification, identification.otherIdentifier as otherId then {
    src -> tgt.identifier as id then {
      src -> id.system = evaluate(otherId, system) "ea8c660c-6ff3-436a-bcbb-92b4c70627bd";
      src -> id.value = evaluate(otherId, value) "a960df19-3667-4a5c-91b3-77329f90ff7f";
    } "7bf73750-8d66-4b0b-a2e5-016b1d413db8";
  } "setOtherPatientIdentifier";
  src.demographics -> tgt.birthDate = evaluate(src, demographics.dateOfBirth) "setPatientBirthDate";
  src.demographics as demographics, demographics.genderIdentity as genderIdentity, genderIdentity.code as genderIdentityCode then {
    src -> src.genderIdentity = create('Coding') as givt then {
      src -> givt.code = genderIdentityCode "7eaf91de-2b92-4406-93a6-d8344bedd7d9";
      src -> givt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-gender-identity' "493d4186-2aeb-4ef6-b0b6-a3939cb55b2e";
      src -> tgt.gender = translate(givt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRGenderIdentity-1', 'code') "d8b46278-a8ac-42b6-9c02-64d4f81506ed";
    } "bcf22250-f89a-4c50-9257-7169766b8d74";
  } "setPatientGender";
  src.address as address where $this.country.empty().not() -> tgt.address as addr then {
    src -> addr.line = evaluate(address, addressEntry1) "052996ec-1691-4ee1-bae1-aad872f18e50";
    src -> addr.line = evaluate(address, addressEntry2) "d960a076-5a77-4852-8e9b-22c153ec1608";
    src -> addr.line = evaluate(address, addressEntry3) "20f10d92-378f-4381-a172-f4d61041be24";
    src -> addr.line = evaluate(address, addressEntry4) "69ff48cd-56c0-43a5-b24f-694b30e6e53d";
    src -> addr.postalCode = evaluate(address, postCode) "ce7ee804-6c31-486e-9551-e21a2348d482";
    src -> addr.country = evaluate(address, country.display) "3c074e89-367e-480f-8f8e-f7f7ab0f8c3d";
    src -> addr.extension as extension then {
      src -> extension.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-AddressCountry' "57fb99db-9eda-49ea-acf2-fb8187836bb8";
      src -> extension.valueCoding as countryCoding then {
        src -> countryCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-Country-1' "0769fc02-0f6a-43b9-b9a3-48578581e3f6";
        src -> countryCoding.code = evaluate(address, country.code) "31eefb2b-ceb7-4ba0-ab52-52cbe05a8e66";
        src -> countryCoding.display = evaluate(address, country.display) "fc16ddb7-2157-42f8-b889-1131e3553339";
      } "6a8a1302-1f1a-4bdc-99e8-0b0f7f85e89a";
    } "8fd46de5-b422-4f12-b3b3-cba3fafbac29";
  } "setExtendedPatientAddress";
  src.address as address where $this.country.empty() -> tgt.address as addr then {
    src -> addr.line = evaluate(address, addressEntry1) "4d2f121a-188c-40e6-9614-22c5f7d76416";
    src -> addr.line = evaluate(address, addressEntry2) "de9197f4-e104-495c-94ec-53d9f3a6b9a5";
    src -> addr.line = evaluate(address, addressEntry3) "abab6c74-ea72-48fd-a5aa-04a402a62c84";
    src -> addr.line = evaluate(address, addressEntry4) "a84dff0f-cc20-43a8-a22b-81a4f3651469";
    src -> addr.postalCode = evaluate(address, postCode) "39ad83b9-6686-43f4-a39b-e5b8ddc6107a";
  } "setPatientAddress";
  src.demographics as demographics, demographics.maritalStatus as maritalStatus, maritalStatus.code as maritalStatusCode, maritalStatus.display as maritalStatusDisplay then {
    src ->  tgt.maritalStatus = create('CodeableConcept') as msvt,  msvt.coding = create('Coding') as maritalStatusCoding then {
      src -> maritalStatusCoding.system = 'https://fhir.hl7.org.uk/CodeSystem/UKCore-PersonMaritalStatusEngland' "c12aa5a7-b417-45fc-ac09-162210d77d09";
      src -> maritalStatusCoding.code = maritalStatusCode "fae753e2-ff1b-42e9-97a9-4dbcd2957561";
      src -> maritalStatusCoding.display = maritalStatusDisplay "9f606955-a2e0-4dc0-aed1-500f37c24172";
    } "18847a65-6091-4725-bcba-0df2596bb4ae";
  } "setPatientMaritalStatus";
  src.demographics as demographics, demographics.firstLanguage as firstLanguage then {
    src ->  tgt.communication as communication,  communication.language as firstLang,  firstLang.coding as firstLangCoding then {
      src -> communication.preferred = true "bed51a00-eb30-4ff3-8086-b0d58609c75b";
      src -> firstLangCoding.system = 'urn:ietf:bcp:47' "a7e9779a-24a9-4da5-8265-80673d15e2ad";
      src -> firstLangCoding.code = evaluate(firstLanguage, code) "bb9d8368-beb6-4333-97ca-9203ded83897";
      src -> firstLangCoding.display = evaluate(firstLanguage, display) "cb5693f7-13f0-4af5-a34f-12d121960e8f";
    } "1df74ddf-38a3-47a3-919c-07542f8d37c9";
  } "setFirstLanguage";
  src.demographics as demographics, demographics.otherLanguage as otherLanguage then {
    src ->  tgt.communication as communication,  communication.language as otherLang,  otherLang.coding as otherLangCoding then {
      src -> otherLangCoding.system = 'urn:ietf:bcp:47' "05526fb0-2876-4de3-90c8-596863bc629e";
      src -> otherLangCoding.code = evaluate(otherLanguage, code) "1db24501-dd9e-4bf4-abe6-40b21ab3dbdb";
      src -> otherLangCoding.display = evaluate(otherLanguage, display) "18eebe14-91cb-4af7-83a0-ca3203c329e5";
    } "c03baae3-2132-402f-b3a2-7dc075eb10a7";
  } "setOtherLanguage";
  src.demographics as demographics, demographics.interpreterRequired as interpreterRequired where $this!='Unknown' then {
    src -> tgt.extension as interpreterRequiredExt then {
      src -> interpreterRequiredExt.url = 'http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired' "18f097bb-5fe2-4d57-bd97-1d584089bee8";
      src -> interpreterRequiredExt.valueBoolean = evaluate(interpreterRequired, toBoolean()) "84e1ffdb-a9f2-483b-a344-298fc1c60941";
    } "05a16107-f6ee-4bb9-baa7-bd918d644fe9";
  } "setInterpreterRequired";
  src.contactDetails as emailContactDetails then {
    emailContactDetails.emailAddressDetails as emailAddressDetails -> tgt.telecom as telecom then {
      src -> telecom.system = 'email' "4d4881e6-7cdf-4f85-a5d0-5c914233ce96";
      src -> telecom.value = evaluate(emailAddressDetails, emailAddress) "eb0cbea1-2105-4600-ae94-2e3be07fc6f6";
      src -> telecom.rank = evaluate(emailAddressDetails, preferredOrder) "5bc65900-f82b-4185-a783-601c8431ef38";
      src -> src.emailAddressType = create('Coding') as etvt then {
        src -> etvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type' "ce4e1cd4-7532-4492-b253-c3f27d6b6f70";
        src -> etvt.code = evaluate(emailAddressDetails, type.code) "5cd2b05d-ed47-4f64-ac50-f304074516bb";
        src -> telecom.use = translate(etvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIREmailContactPointUse-1', 'code') "aa3d176b-d3e2-4bc9-87db-7c5c7957e6af";
        src -> telecom.extension as emailTypeExt then {
          src -> emailTypeExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType' "3a58053c-81a5-437e-89ff-c8b85f0d966d";
          src -> emailTypeExt.valueCoding as emailTypeValueCoding then {
            src -> emailTypeValueCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-EmailAddressType-1' "86ebc2b8-a82b-4c28-aade-a77740ab69a2";
            src -> emailTypeValueCoding.code = evaluate(emailAddressDetails, type.code) "c81349e0-dced-4faf-88aa-21bc31f5ea57";
            src -> emailTypeValueCoding.display = evaluate(emailAddressDetails, type.display) "d09a4460-ff61-4328-9ff4-77da3dfc04ec";
          } "39249744-3872-4f33-9017-d163789b012f";
        } "d7aab36b-8d44-4f16-b901-6233170a38c8";
      } "0782c4df-205a-4002-8c7d-fc21c7584185";
    } "setPatientEmailAddress";
    src.contactDetails as telephoneContactDetails then {
      telephoneContactDetails.telephoneDetails as telephoneNumberDetails -> tgt.telecom as telecom then {
        src -> telecom.system = 'phone' "c6d33ec7-c70e-4c9f-9ad0-6914f24f699f";
        src -> telecom.value = evaluate(telephoneNumberDetails, telephoneNumber) "b9f52b34-629a-435d-93ad-3f599aec02b0";
        src -> telecom.rank = evaluate(telephoneNumberDetails, preferredOrder) "f7001e0a-0b20-4fb0-a5b4-3655f3f8ade2";
        src -> src.telephoneType = create('Coding') as ttvt then {
          src -> ttvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type' "0c7032f0-039c-4798-8e6e-001023d8d144";
          src -> ttvt.code = evaluate(telephoneNumberDetails, type.code) "0a220dbe-8a56-4cc7-bb94-d045a78033ed";
          src -> telecom.use = translate(ttvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRTelephoneContactPointUse-1', 'code') "b3153b67-1cff-4e0a-a77f-35c5179631d1";
        } "9718e4fe-cfd9-44bf-a420-9e2b82281250";
        src -> telecom.extension as telephoneTypeExt then {
          src -> telephoneTypeExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType' "badc5b90-ff0a-40c3-9b7a-c4f93e4397da";
          src -> telephoneTypeExt.valueCoding as telephoneNumberTypeCoding then {
            src -> telephoneNumberTypeCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-TelephoneNumberType-1' "583667ab-3614-4889-b05f-ffa8b1938396";
            src -> telephoneNumberTypeCoding.code = evaluate(telephoneNumberDetails, type.code) "185e4cd2-3645-479e-bb5f-992e04072e78";
            src -> telephoneNumberTypeCoding.display = evaluate(telephoneNumberDetails, type.display) "04a7e832-1c9c-4ce8-82ae-6b25610d228a";
          } "0cc72ee8-8d18-48f4-8351-c33663b3f2b4";
        } "c25031dd-b40e-4d88-bdc7-26031cd75721";
      } "setPatientTelephone";
      src.deathDetails as deathDetails then {
        src -> tgt.extension as deathDetailsExt then {
          src -> deathDetailsExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonDeathDetails' "93f728a1-46ae-4b62-a111-9f1a1542319f";
          src -> deathDetailsExt.extension as deathCauseIdentificationMethodExt then {
            src -> deathCauseIdentificationMethodExt.url = 'deathCauseIdentificationMethod' "ecb3afd8-6950-4b82-aeed-dbf572e4ef8c";
            src -> deathCauseIdentificationMethodExt.valueCoding as deathCauseIdentificationMethodCoding then {
              src -> deathCauseIdentificationMethodCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-DeathCauseIdentificationMethod-1' "7488a2ce-0f7b-4068-8728-1a5035439a66";
              src -> deathCauseIdentificationMethodCoding.code = evaluate(deathDetails, deathCauseIdentificationMethod.code) "1858bd7a-ed06-44c5-b6c9-a7c45efe6b43";
              src -> deathCauseIdentificationMethodCoding.display = evaluate(deathDetails, deathCauseIdentificationMethod.display) "e8249e6a-a93a-4506-89a2-3215a9e5cabd";
            } "b5ef50fe-cd3b-4a81-afeb-dae0f97d31e8";
          } "setDeathCauseIdentificationMethod";
          src -> deathDetailsExt.extension as deathLocationTypeExt then {
            src -> deathLocationTypeExt.url = 'deathLocationType' "e711df8b-795e-4873-8765-a7021d9945aa";
            src -> deathLocationTypeExt.valueCoding as deathLocationTypeCoding then {
              src -> deathLocationTypeCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-DeathLocationTypeCode-1' "b40253f7-de7a-4410-8b20-31deafc56194";
              src -> deathLocationTypeCoding.code = evaluate(deathDetails, deathLocationType.code) "f3af96e1-7da1-42cb-be0e-c916a5dd9c4d";
              src -> deathLocationTypeCoding.display = evaluate(deathDetails, deathLocationType.display) "e95a65b4-6045-419a-b383-9fba0489bfab";
            } "3f48fd6b-2e9c-415c-a08b-3f99295f3dc3";
          } "setDeathLocationType";
          src -> deathDetailsExt.extension as personDeathLocationDiscussedExt then {
            src -> personDeathLocationDiscussedExt.url = 'preferredLocationOfDeathDiscussed' "5bcce75e-047a-478e-a197-0f7bc3858cc5";
            src -> personDeathLocationDiscussedExt.valueCoding as personDeathLocationDiscussedCoding then {
              src -> personDeathLocationDiscussedCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-PersonDeathLocationDiscussedIndicator-1' "93fa8f62-0410-4b54-a63c-ca42234dd012";
              src -> personDeathLocationDiscussedCoding.code = evaluate(deathDetails, preferredDeathLocationDiscussed.code) "79988ee1-42b3-45da-9ba1-ea446dc6b1e0";
              src -> personDeathLocationDiscussedCoding.display = evaluate(deathDetails, preferredDeathLocationDiscussed.display) "12a7826e-2315-43b2-a1e6-684d15454023";
            } "3939f746-f1d4-4774-9528-9c7a23a0c793";
          } "setPersonDeathLocationDiscussed";
          src -> deathDetailsExt.extension as deathNotAtPreferredLocationReasonExt then {
            src -> deathNotAtPreferredLocationReasonExt.url = 'deathNotAtPreferredLocationReason' "572482e6-799b-4ff1-92e4-93f94d69e7b9";
            src -> deathNotAtPreferredLocationReasonExt.valueCoding as deathNotAtPreferredLocationReasonCoding then {
              src -> deathNotAtPreferredLocationReasonCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-DeathNotAtPreferredLocationReasonCode-1' "9e72568c-04a7-433b-9625-006fba7bc61b";
              src -> deathNotAtPreferredLocationReasonCoding.code = evaluate(deathDetails, deathNotAtPreferredLocationReason.code) "cc818b64-7060-4bb2-9ff2-ac5e09251d4e";
              src -> deathNotAtPreferredLocationReasonCoding.display = evaluate(deathDetails, deathNotAtPreferredLocationReason.display) "c75a9499-9ab5-4df2-aba7-92845bec0b69";
            } "4d0a0087-aecd-4fb7-8844-32492c547a9e";
          } "setDeathNotAtPreferredLocationReason";
          src -> deathDetailsExt.extension as personAtRiskOfUnexpectedDeathExt then {
            src -> personAtRiskOfUnexpectedDeathExt.url = 'personAtRiskOfUnexpectedDeath' "746f2b04-883d-4d6b-91a9-51795492abbc";
            src -> personAtRiskOfUnexpectedDeathExt.valueCoding as personAtRiskOfUnexpectedDeathCoding then {
              src -> personAtRiskOfUnexpectedDeathCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-PersonAtRiskOfUnexpectedDeathIndicator-1' "ff5dfb06-7d25-4c84-b436-22d361ce1383";
              src -> personAtRiskOfUnexpectedDeathCoding.code = evaluate(deathDetails, personAtRiskOfUnexpectedDeath.code) "187a2f94-2b54-412f-a996-6e9c91bb5a78";
              src -> personAtRiskOfUnexpectedDeathCoding.display = evaluate(deathDetails, personAtRiskOfUnexpectedDeath.display) "620d1be1-58d8-49e6-b602-61cadb83b8d0";
            } "114d50f3-dd09-487e-9195-529e22f2291d";
          } "setPersonAtRiskOfUnexpectedDeath";
          src -> deathDetailsExt.extension as personDateOfDeathExt then {
            src -> personDateOfDeathExt.url = 'personDateOfDeath' "aa547937-2ffc-411c-b1de-52b7ad7750fb";
            src -> personDateOfDeathExt.valueDate = evaluate(deathDetails, personDeathDate) "265584c4-4599-410f-98d3-8e4590716df4";
          } "setPersonDateOfDeath";
          src -> deathDetailsExt.extension as personTimeOfDeathExt then {
            src -> personTimeOfDeathExt.url = 'personTimeOfDeath' "772fe8bb-1a7a-4c49-a10c-553d053ba4a5";
            src -> personTimeOfDeathExt.valueTime = evaluate(deathDetails, personDeathTime) "76ca9939-662f-4cda-8172-f99749504fb8";
          } "setPersonDateOfTime";
        } "d4e07546-6ca7-4360-bad9-4bcc19087a12";
        src -> tgt.deceasedDateTime = evaluate(deathDetails, personDateOfDeath) "33b525b5-d78d-4852-a1bb-d73e34369f7b";
      } "setDeathDetails";
      src.careProvider as careProvider -> tgt.extension as careProviderExt then {
        src -> careProviderExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonCareProvider' "e9d10ffe-08ca-465f-893e-987459e2daba";
        src -> careProviderExt.valueReference as careProviderReference then {
          src -> careProviderReference.reference = evaluate(careProvider, 'Organization/'+id) "cb2bac38-a6b8-4590-800d-3f46668c1844";
          src -> careProviderReference.display = evaluate(careProvider, display) "788592f4-5554-427c-a425-fd00ce894e8f";
          src -> careProviderReference.identifier as careProviderReferenceIdentifier then {
            src -> careProviderReferenceIdentifier.value = evaluate(careProvider, id) "7c1100b9-efee-4ff5-9a9b-43810e817579";
          } "50be655c-59ab-4b92-bce5-c97e5440cb04";
        } "a3af97ae-e1cd-4ecc-a2c4-a400d0686cbe";
      } "setPatientManagingOrganization";
      src.generalPractice as generalPractice -> tgt.generalPractitioner as generalPractitioner then {
        src -> generalPractitioner.identifier as gpIdentifier then {
          src -> gpIdentifier.use = 'official' "164aa211-8322-4ba7-a5ed-6e07f850a126";
          src -> gpIdentifier.system = 'https://fhir.nhs.uk/Id/ods-organization-code' "0cfd2059-ce1f-40da-b802-8ed34c728ff4";
          src -> gpIdentifier.value = evaluate(generalPractice, id) "1d0b4a06-786f-4fbf-a2a1-4be085f24638";
        } "setPatientGeneralPractitionerIdentifier";
        src -> generalPractitioner.display = evaluate(generalPractice, display) "27f7decc-b3f6-404c-bc68-45b06a8a170f";
      } "setPatientGeneralPractitioner";
    };
  };
}