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-06-10 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 "e5d49cbd-28bd-4da8-a759-383b9ef8f922";
      src -> sxvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-sex' "97e25b96-7bdb-4c97-89be-44b668969495";
      src -> tgt.extension as birthSexExt then {
        src -> birthSexExt.url = 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex' "0c8bbad2-22c0-4a30-904c-52aa43fca913";
        src -> birthSexExt.valueCodeableConcept = translate(sxvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRBirthSex-1', 'CodeableConcept') "ea614f2b-15b6-41a7-878e-347e1bdb07aa";
      } "53cbf8cc-7477-49ba-acc7-212e03956d20";
    } "f617f253-a20e-4530-b22b-156a49e11678";
  } "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' "da80d304-933d-4bf6-9a77-892e6c5807c9";
      src -> ethnicityExt.valueCodeableConcept as ethnicCategory then {
        src -> ethnicCategory.coding as coding then {
          src -> coding.system = 'https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategoryEngland' "723bc20e-4c33-4162-914d-7f28f9285d45";
          src -> coding.code = evaluate(ethnicity, code) "351f2aba-9f2c-4c86-bd21-df4fb85872b0";
          src -> coding.display = evaluate(ethnicity, display) "5e894b3b-5581-410c-92f3-65e01b36b807";
        } "79ac0a8a-9088-46c8-b56b-174d47cc05e1";
      } "f8081eb1-0c68-4b7c-a56b-495d7d790d57";
    } "0a727adb-99d3-4e01-a4dc-3ba2dc516ad5";
  } "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' "da0c9275-f1e3-417d-bbb9-ee385d20000c";
      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' "ce143eac-7574-4218-bfc5-2eb30950814f";
          src -> coding.code = evaluate(religion, code) "a27534a4-f70a-4782-b365-2957beca91f9";
          src -> coding.display = evaluate(religion, display) "db792f6a-547c-4d57-a57b-cd5a158e2ca4";
        } "3e112f30-ce34-4988-9954-2ebc688cfa57";
      } "ab5a9643-8ed8-4e70-9e7c-ff01c35c4a71";
    } "c7514a5c-cb30-4c7e-969c-b5fe5fb80822";
  } "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' "1fddfd5b-c6d4-4884-bb4e-ef67a6727c79";
      src -> sexualOrientationExt.valueCodeableConcept as sexualOrientationCode then {
        src -> sexualOrientationCode.coding as coding then {
          src -> coding.system = 'http://snomed.info/ct' "9861eb4f-16c8-427d-8e76-07aea2343516";
          src -> coding.code = evaluate(sexualOrientation, code) "0ab94ae4-2423-4c4b-ac9e-d8ee6afe53bc";
          src -> coding.display = evaluate(sexualOrientation, display) "58a77a53-9382-49be-8739-5ca8b22e3d2a";
        } "accb4dc8-797f-4772-93cc-b29307900673";
      } "dc6e9a41-3233-4968-8b96-871f93a8c45b";
    } "8718b091-fb40-482b-8325-0ffb2b633505";
  } "setPatientSexualOrientation";
  src.demographics as demographics, demographics.genderIdentity as genderIdentity then {
    src -> tgt.extension as genderIdentityExt then {
      src -> genderIdentityExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonGenderIdentity' "39a2db4f-ab82-4bec-8ec2-9b39279b78dc";
      src -> genderIdentityExt.valueCodeableConcept as genderIdentityCode then {
        src -> genderIdentityCode.coding as coding then {
          src -> coding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-PersonGenderIdentityCode-1' "a9cb1bff-ee50-4f5b-ae6b-8320711c10a6";
          src -> coding.code = evaluate(genderIdentity, code) "eda4313d-2962-46ab-9950-b13de65b75c7";
          src -> coding.display = evaluate(genderIdentity, display) "5d2cf208-4148-4428-a254-2589c8cce870";
        } "14d7a05f-155f-4a1e-85b3-7b1163e5b34d";
      } "7c5415f8-77bf-499c-bc03-7e5d7510ec0d";
    } "bd1715f8-7aff-4cc9-aab8-1b5c9b0abaa4";
  } "setGenderIdentity";
  src -> tgt.name as name then {
    src -> name.given = evaluate(src, name.given) "dd30088e-e27b-4a1d-b8f6-844bd74161c5";
    src -> name.family = evaluate(src, name.family) "78c16d43-0427-4bc7-b4fb-4c47f8bb230c";
  } "setPatientName";
  src.identification -> tgt.identifier as identifier then {
    src -> identifier.use = 'official' "876b3566-8508-4849-86ef-58f7dec00181";
    src -> identifier.system = 'https://fhir.nhs.uk/Id/nhs-number' "b960bffc-81c3-4968-bad1-c63922d81347";
    src -> identifier.value = evaluate(src, identification.nhsNumber.value) "b7c95c03-b0f6-4e51-b80e-c8e20531420a";
    src -> identifier.extension as extension then {
      src -> extension.url = 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus' "c7ce7d95-c47b-4e61-8259-07372895bcdb";
      src -> extension.valueCodeableConcept as cc then {
        src -> cc.coding as coding then {
          src -> coding.system = 'https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatusEngland' "92a420e8-18bf-46c8-9c8d-d2ff2c1dc3ad";
          src -> coding.code = evaluate(src, identification.nhsNumber.statusIndicator.code) "e66e25d3-0e48-4d66-98cc-07a87fa4454e";
          src -> coding.display = evaluate(src, identification.nhsNumber.statusIndicator.display) "8c98eabc-f5b0-464e-b293-111c8581d170";
        } "eff75d44-3e7c-4bd3-b3a0-283648a0bbc5";
      } "55b7f142-ce4b-45a1-8832-a1bc925ef27e";
    } "0cdb69c3-5d23-4851-859a-5a08ab84c091";
  } "setPatientNHSNumber";
  src.identification as identification, identification.otherIdentifier as otherId then {
    src -> tgt.identifier as id then {
      src -> id.system = evaluate(otherId, system) "b0308523-fc5a-4af3-bc64-b11d5366f0cf";
      src -> id.value = evaluate(otherId, value) "2473363c-e9e3-4aec-b3ce-6237d90d7bd3";
    } "2a1de9e8-61dc-45e8-9734-ac4bcf1e6cc3";
  } "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 "103a0274-40f6-496a-b66d-d316d9cc1ddf";
      src -> givt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-gender-identity' "ce9374c3-ef08-46f8-ba06-6e68f0b1c4fb";
      src -> tgt.gender = translate(givt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRGenderIdentity-1', 'code') "c5a2798c-5348-4dd4-8c05-d23a19d34506";
    } "00204485-a3ce-4d58-b2e8-0528d5b13b16";
  } "setPatientGender";
  src.address as address where $this.country.empty().not() -> tgt.address as addr then {
    src -> addr.line = evaluate(address, addressEntry1) "ade6e8a8-67d4-4170-ae6e-67bfc665a5a0";
    src -> addr.line = evaluate(address, addressEntry2) "85dfc2bf-46ab-4410-9171-84f41e3c6fb9";
    src -> addr.line = evaluate(address, addressEntry3) "2d234498-8970-4744-b712-5af0c346cedf";
    src -> addr.line = evaluate(address, addressEntry4) "05d6c92c-a4eb-4f4d-a8cc-cf22862c906f";
    src -> addr.postalCode = evaluate(address, postCode) "28068c30-9115-44b6-9539-ada00f71bf19";
    src -> addr.country = evaluate(address, country.display) "5e4cb7ae-a2be-4db7-bb8d-1e358e8f7a4f";
    src -> addr.extension as extension then {
      src -> extension.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-AddressCountry' "c2b77ad8-f7dc-4552-97bd-a390b07998b9";
      src -> extension.valueCoding as countryCoding then {
        src -> countryCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-Country-1' "e8d83652-8104-4353-9242-dc4f87c31e67";
        src -> countryCoding.code = evaluate(address, country.code) "35b70f64-21e5-4485-888a-068ba3764209";
        src -> countryCoding.display = evaluate(address, country.display) "8e868820-1248-4d48-9ba6-39ea4ec85601";
      } "39fa621e-525b-4c27-9381-7219eec8807e";
    } "8d83b6df-924a-4cce-9288-c49301842da5";
  } "setExtendedPatientAddress";
  src.address as address where $this.country.empty() -> tgt.address as addr then {
    src -> addr.line = evaluate(address, addressEntry1) "887de35a-bb98-4fb0-acc1-94bb06dddd9f";
    src -> addr.line = evaluate(address, addressEntry2) "230ea997-a1c4-4520-a74b-bda57942b40a";
    src -> addr.line = evaluate(address, addressEntry3) "d53bedf2-3d20-4576-a6fb-678421e95711";
    src -> addr.line = evaluate(address, addressEntry4) "175e1f18-1e96-436d-bd8a-31452eef4c08";
    src -> addr.postalCode = evaluate(address, postCode) "2e57afe7-f9e9-44fb-b7e2-d7441565bb7b";
  } "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' "ea81a81e-a1d1-4aba-bbb4-c73b4597302b";
      src -> maritalStatusCoding.code = maritalStatusCode "31b17c89-b47e-4424-8f96-54314c6d3a4e";
      src -> maritalStatusCoding.display = maritalStatusDisplay "8a4d9125-153c-4e4f-9e3d-4687cf8efafb";
    } "719e12df-bcb6-440a-a824-8a3310abd470";
  } "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 "8bcafb84-c39f-49d0-9b99-afd2b938c32c";
      src -> firstLangCoding.system = 'urn:ietf:bcp:47' "3319e45f-3672-4bd7-be63-3f0a24608745";
      src -> firstLangCoding.code = evaluate(firstLanguage, code) "b185c2a7-2e20-4fcf-a41d-56f0c3a0fa6a";
      src -> firstLangCoding.display = evaluate(firstLanguage, display) "a492a7a2-bc94-4758-8fd5-94875a4cb249";
    } "bab7fe1e-e443-45fb-944f-33e7a6bc5c18";
  } "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' "bfb8ef2f-dda0-419a-953c-b917522934d9";
      src -> otherLangCoding.code = evaluate(otherLanguage, code) "90e4b958-f9fd-4434-92b3-1c3731643b60";
      src -> otherLangCoding.display = evaluate(otherLanguage, display) "72be7dbc-95d8-46a7-b3ce-4ae9e355c6d0";
    } "8bb14833-b446-42ff-b831-4cc5cbe5bd6b";
  } "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' "c1bbfd21-8074-4e58-85d5-64ba2f88c200";
      src -> interpreterRequiredExt.valueBoolean = evaluate(interpreterRequired, toBoolean()) "8d1b1714-463f-4122-b8b4-fc273ba4a190";
    } "81bb92b9-06c2-48c4-b8c0-180a830c2d22";
  } "setInterpreterRequired";
  src.contactDetails as emailContactDetails then {
    emailContactDetails.emailAddressDetails as emailAddressDetails -> tgt.telecom as telecom then {
      src -> telecom.system = 'email' "c301c6be-241d-41fc-b1b5-35939a7036b8";
      src -> telecom.value = evaluate(emailAddressDetails, emailAddress) "e7dad971-1ad5-4110-b08e-c00175412f28";
      src -> telecom.rank = evaluate(emailAddressDetails, preferredOrder) "1958cc0c-5f7f-4238-8eb8-161b519b3599";
      src -> src.emailAddressType = create('Coding') as etvt then {
        src -> etvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type' "6b9a1c74-20a5-4062-b117-0d560193ead3";
        src -> etvt.code = evaluate(emailAddressDetails, type.code) "be2e17ac-d9e2-4536-9f0a-04b1c7e1593d";
        src -> telecom.use = translate(etvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIREmailContactPointUse-1', 'code') "a863f196-2274-4851-9ffc-961db11f5aeb";
        src -> telecom.extension as emailTypeExt then {
          src -> emailTypeExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType' "aaeb3b7c-41da-4852-8b0b-ee22cdcd389b";
          src -> emailTypeExt.valueCoding as emailTypeValueCoding then {
            src -> emailTypeValueCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-EmailAddressType-1' "3a986017-a255-4566-acde-41c1fa36a758";
            src -> emailTypeValueCoding.code = evaluate(emailAddressDetails, type.code) "813d641f-2a7e-4ca0-916d-7816a8abb167";
            src -> emailTypeValueCoding.display = evaluate(emailAddressDetails, type.display) "43df7e65-b2ec-46c7-b563-2587eb68b2eb";
          } "6cb4fd31-6d2b-4ed5-ae11-9e3f70bc17b4";
        } "1ef8f4b3-e83d-467e-9cc9-ab7842b48bc5";
      } "63afde21-bf55-4473-afa6-3fd1a073acdc";
    } "setPatientEmailAddress";
    src.contactDetails as telephoneContactDetails then {
      telephoneContactDetails.telephoneDetails as telephoneNumberDetails -> tgt.telecom as telecom then {
        src -> telecom.system = 'phone' "673040b9-71db-4cd5-8ef0-03d3d5ba4d5b";
        src -> telecom.value = evaluate(telephoneNumberDetails, telephoneNumber) "09a9f13c-7267-4013-873a-400ddd9fe81b";
        src -> telecom.rank = evaluate(telephoneNumberDetails, preferredOrder) "6a4ede90-2c20-4ee7-a6c7-07c86d7aea27";
        src -> src.telephoneType = create('Coding') as ttvt then {
          src -> ttvt.system = 'https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type' "4582df12-fba9-4251-b544-d5af326959a0";
          src -> ttvt.code = evaluate(telephoneNumberDetails, type.code) "83eb04be-b829-4965-a360-32620e21da29";
          src -> telecom.use = translate(ttvt, 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRTelephoneContactPointUse-1', 'code') "e06bc9ce-8efd-40d7-8ec8-ec38ec451050";
        } "50f23718-4e56-4b68-85ac-9a8b1cdcdf8d";
        src -> telecom.extension as telephoneTypeExt then {
          src -> telephoneTypeExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType' "631ad7e6-a7ff-4892-b03a-eaf2859d379d";
          src -> telephoneTypeExt.valueCoding as telephoneNumberTypeCoding then {
            src -> telephoneNumberTypeCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-TelephoneNumberType-1' "ca5152cb-688f-4af4-8aba-8b5f430f7fcb";
            src -> telephoneNumberTypeCoding.code = evaluate(telephoneNumberDetails, type.code) "0733666f-3e6e-4e4f-b52b-c3e6f8a1212c";
            src -> telephoneNumberTypeCoding.display = evaluate(telephoneNumberDetails, type.display) "289819be-40be-4b1d-af6b-c2ed220db250";
          } "62cc5297-f86c-45cc-985f-bfc7ef59ff04";
        } "24ef7b25-f318-4446-91c5-44ea990fc714";
      } "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' "9972e00d-6641-442b-9eea-23b58033e1c9";
          src -> deathDetailsExt.extension as deathCauseIdentificationMethodExt then {
            src -> deathCauseIdentificationMethodExt.url = 'deathCauseIdentificationMethod' "fd71846e-5177-44fa-8f1c-ea4b9ac538a9";
            src -> deathCauseIdentificationMethodExt.valueCoding as deathCauseIdentificationMethodCoding then {
              src -> deathCauseIdentificationMethodCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-DeathCauseIdentificationMethod-1' "92a0d131-939e-4fa6-998e-1ed6d551a172";
              src -> deathCauseIdentificationMethodCoding.code = evaluate(deathDetails, deathCauseIdentificationMethod.code) "1548d1e4-91cf-47e8-8f0a-bfc13e4e06ff";
              src -> deathCauseIdentificationMethodCoding.display = evaluate(deathDetails, deathCauseIdentificationMethod.display) "caa88820-b7a3-47b8-955a-aefccae424ae";
            } "d34695ad-13f2-43a3-ba4b-acd9052ad4b2";
          } "setDeathCauseIdentificationMethod";
          src -> deathDetailsExt.extension as deathLocationTypeExt then {
            src -> deathLocationTypeExt.url = 'deathLocationType' "5d7a5bdc-a746-4e47-9d24-02b8dd36af51";
            src -> deathLocationTypeExt.valueCoding as deathLocationTypeCoding then {
              src -> deathLocationTypeCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-DeathLocationTypeCode-1' "ecf847ef-2dbb-467e-bf23-488a69bb9227";
              src -> deathLocationTypeCoding.code = evaluate(deathDetails, deathLocationType.code) "076f6949-e3be-496a-9a7b-f2972c69ea95";
              src -> deathLocationTypeCoding.display = evaluate(deathDetails, deathLocationType.display) "989fe831-3422-4ae6-9c58-582055e39c12";
            } "6994b1a5-a05c-4ace-ae3c-17e5ca3821fd";
          } "setDeathLocationType";
          src -> deathDetailsExt.extension as personDeathLocationDiscussedExt then {
            src -> personDeathLocationDiscussedExt.url = 'preferredLocationOfDeathDiscussed' "f917a510-9220-4b1d-bc2c-92bccd73bc68";
            src -> personDeathLocationDiscussedExt.valueCoding as personDeathLocationDiscussedCoding then {
              src -> personDeathLocationDiscussedCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-PersonDeathLocationDiscussedIndicator-1' "27f5ab6c-090b-4a59-a697-736f2acaf2b5";
              src -> personDeathLocationDiscussedCoding.code = evaluate(deathDetails, preferredDeathLocationDiscussed.code) "1c0839e7-28cd-440e-bc14-673832042a1d";
              src -> personDeathLocationDiscussedCoding.display = evaluate(deathDetails, preferredDeathLocationDiscussed.display) "b5724294-9c87-4038-8563-0b6e5ced2e83";
            } "59f2f70c-501a-48d3-8ba4-ba903f552d5f";
          } "setPersonDeathLocationDiscussed";
          src -> deathDetailsExt.extension as deathNotAtPreferredLocationReasonExt then {
            src -> deathNotAtPreferredLocationReasonExt.url = 'deathNotAtPreferredLocationReason' "620567f7-7b0a-436f-83ac-1fe971409651";
            src -> deathNotAtPreferredLocationReasonExt.valueCoding as deathNotAtPreferredLocationReasonCoding then {
              src -> deathNotAtPreferredLocationReasonCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-DeathNotAtPreferredLocationReasonCode-1' "c4a833bf-c801-4385-abac-fff690cd45e3";
              src -> deathNotAtPreferredLocationReasonCoding.code = evaluate(deathDetails, deathNotAtPreferredLocationReason.code) "6911199e-6d28-4c0d-b97b-9ebc54e7b617";
              src -> deathNotAtPreferredLocationReasonCoding.display = evaluate(deathDetails, deathNotAtPreferredLocationReason.display) "a5837e3f-4689-413a-beb6-9edc60cd39d5";
            } "29bd0e26-e1c4-46db-bbe7-57dd8f9a9bb5";
          } "setDeathNotAtPreferredLocationReason";
          src -> deathDetailsExt.extension as personAtRiskOfUnexpectedDeathExt then {
            src -> personAtRiskOfUnexpectedDeathExt.url = 'personAtRiskOfUnexpectedDeath' "dca3eeee-2856-45fe-b4da-94498ab776b2";
            src -> personAtRiskOfUnexpectedDeathExt.valueCoding as personAtRiskOfUnexpectedDeathCoding then {
              src -> personAtRiskOfUnexpectedDeathCoding.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-PersonAtRiskOfUnexpectedDeathIndicator-1' "865a4391-9122-48f5-bf87-e82006e76467";
              src -> personAtRiskOfUnexpectedDeathCoding.code = evaluate(deathDetails, personAtRiskOfUnexpectedDeath.code) "76c068be-2abd-4a24-b0e0-1f9fa4f082f1";
              src -> personAtRiskOfUnexpectedDeathCoding.display = evaluate(deathDetails, personAtRiskOfUnexpectedDeath.display) "e5f24e41-f103-4d87-9f0e-de7eba4b21ed";
            } "e0654cb8-f15a-4ab9-87a3-4d3dc76d67fe";
          } "setPersonAtRiskOfUnexpectedDeath";
          src -> deathDetailsExt.extension as personDateOfDeathExt then {
            src -> personDateOfDeathExt.url = 'personDateOfDeath' "52b5b175-f5d5-4dd7-8f64-d023f4e49694";
            src -> personDateOfDeathExt.valueDate = evaluate(deathDetails, personDeathDate) "5da28dbf-6dda-4279-9b8e-1e6c5e16608c";
          } "setPersonDateOfDeath";
          src -> deathDetailsExt.extension as personTimeOfDeathExt then {
            src -> personTimeOfDeathExt.url = 'personTimeOfDeath' "4ee42d7d-4fad-4a21-add3-2318152f52dd";
            src -> personTimeOfDeathExt.valueTime = evaluate(deathDetails, personDeathTime) "1e2bb85b-cfd4-48bd-ac4b-4444669ab406";
          } "setPersonDateOfTime";
        } "1e1e0bb4-d66f-4d5a-9ebd-91227109c85b";
        src -> tgt.deceasedDateTime = evaluate(deathDetails, personDateOfDeath) "0e7f99ba-faed-4f69-b85b-6c760d994c48";
      } "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' "0ccde468-4fbd-41f4-b778-5ce3a69b8e48";
        src -> careProviderExt.valueReference as careProviderReference then {
          src -> careProviderReference.reference = evaluate(careProvider, 'Organization/'+id) "312cf8da-420f-40a2-98d3-093381e9bca3";
          src -> careProviderReference.display = evaluate(careProvider, display) "429b64a1-322c-4082-815e-cd6705546345";
          src -> careProviderReference.identifier as careProviderReferenceIdentifier then {
            src -> careProviderReferenceIdentifier.value = evaluate(careProvider, id) "d6f31548-25fe-47f8-a37a-4fde4b696b04";
          } "da680d23-c572-4d32-86ac-87fe0213f203";
        } "3f028d07-0e07-4b39-b42c-b52cc84cc880";
      } "setPatientManagingOrganization";
      src.generalPractice as generalPractice -> tgt.generalPractitioner as generalPractitioner then {
        src -> generalPractitioner.identifier as gpIdentifier then {
          src -> gpIdentifier.use = 'official' "23e7ca11-f644-4fd0-b39d-426225173642";
          src -> gpIdentifier.system = 'https://fhir.nhs.uk/Id/ods-organization-code' "9282dd98-9686-4716-a6f5-09b3cb7f4e8c";
          src -> gpIdentifier.value = evaluate(generalPractice, id) "a2392b45-3b80-451e-aa23-28e13a86f3e1";
        } "setPatientGeneralPractitionerIdentifier";
        src -> generalPractitioner.display = evaluate(generalPractice, display) "e34490bb-55ac-4b5b-82c9-b9cd2da26be9";
      } "setPatientGeneralPractitioner";
    };
  };
}