{
  "resourceType": "StructureDefinition",
  "url": "http://mrdm.nl/fhir/StructureDefinition/mrdm-patient",
  "name": "mrdm-patient",
  "status": "draft",
  "fhirVersion": "3.0.2",
  "mapping": [
    {
      "identity": "hcim-patient-v2.0.1-2015EN",
      "uri": "https://zibs.nl/wiki/Patient-v2.0.1(2015EN)",
      "name": "HCIM Patient-v2.0.1(2015EN)"
    },
    {
      "identity": "hcim-maritalstatus-v1.2.1-2015EN",
      "uri": "https://zibs.nl/wiki/MaritalStatus-v1.2.1(2015EN)",
      "name": "HCIM MaritalStatus-v1.2.1(2015EN)"
    },
    {
      "identity": "hcim-contactperson-v1.2-2015EN",
      "uri": "https://zibs.nl/wiki/ContactPerson-v1.2(2015EN)",
      "name": "HCIM ContactPerson-v1.2(2015EN)"
    },
    {
      "identity": "hcim-healthcareprovider-v1.2-2015EN",
      "uri": "https://zibs.nl/wiki/HealthcareProvider-v1.2(2015EN)",
      "name": "HCIM HealthcareProvider-v1.2(2015EN)"
    },
    {
      "identity": "hcim-healthprofessional-v1.2.1-2015EN",
      "uri": "https://zibs.nl/wiki/HealthProfessional-v1.2.1(2015EN)",
      "name": "HCIM HealthProfessional-v1.2.1(2015EN)"
    },
    {
      "identity": "hcim-nationality-v2.0-2015EN",
      "uri": "https://zibs.nl/wiki/Nationality-v2.0(2015EN)",
      "name": "HCIM Nationality-v2.0(2015EN)"
    },
    {
      "identity": "hcim-payer-v1.2-2015EN",
      "uri": "https://zibs.nl/wiki/Payer-v1.2(2015EN)",
      "name": "HCIM Payer-v1.2(2015EN)"
    },
    {
      "identity": "hcim-patient-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/Patient-v3.0(2016EN)",
      "name": "HCIM Patient-v3.0(2016EN)"
    },
    {
      "identity": "hcim-maritalstatus-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/MaritalStatus-v3.0(2016EN)",
      "name": "HCIM MaritalStatus-v3.0(2016EN)"
    },
    {
      "identity": "hcim-contactperson-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/ContactPerson-v3.0(2016EN)",
      "name": "HCIM ContactPerson-v3.0(2016EN)"
    },
    {
      "identity": "hcim-healthcareprovider-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/HealthcareProvider-v3.0(2016EN)",
      "name": "HCIM HealthcareProvider-v3.0(2016EN)"
    },
    {
      "identity": "hcim-healthprofessional-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/HealthProfessional-v3.0(2016EN)",
      "name": "HCIM HealthProfessional-v3.0(2016EN)"
    },
    {
      "identity": "hcim-nationality-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/Nationality-v3.0(2016EN)",
      "name": "HCIM Nationality-v3.0(2016EN)"
    },
    {
      "identity": "hcim-payer-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/Payer-v3.0(2016EN)",
      "name": "HCIM Payer-v3.0(2016EN)"
    },
    {
      "identity": "hcim-patient-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/Patient-v3.1(2017EN)",
      "name": "HCIM Patient-v3.1(2017EN)"
    },
    {
      "identity": "hcim-maritalstatus-v3.0-2017EN",
      "uri": "https://zibs.nl/wiki/MaritalStatus-v3.0(2017EN)",
      "name": "HCIM MaritalStatus-v3.0(2017EN)"
    },
    {
      "identity": "hcim-contactperson-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/ContactPerson-v3.1(2017EN)",
      "name": "HCIM ContactPerson-v3.1(2017EN)"
    },
    {
      "identity": "hcim-healthcareprovider-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/HealthcareProvider-v3.1(2017EN)",
      "name": "HCIM HealthcareProvider-v3.1(2017EN)"
    },
    {
      "identity": "hcim-healthprofessional-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/HealthProfessional-v3.1(2017EN)",
      "name": "HCIM HealthProfessional-v3.1(2017EN)"
    },
    {
      "identity": "hcim-nationality-v3.0-2017EN",
      "uri": "https://zibs.nl/wiki/Nationality-v3.0(2017EN)",
      "name": "HCIM Nationality-v3.0(2017EN)"
    },
    {
      "identity": "hcim-payer-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/Payer-v3.1(2017EN)",
      "name": "HCIM Payer-v3.1(2017EN)"
    },
    {
      "identity": "hcim-contactinformation-v1.0-2017EN",
      "uri": "https://zibs.nl/wiki/ContactInformation-v1.0(2017EN)",
      "name": "HCIM ContactInformation-v1.0(2017EN)",
      "comment": "ContactInformation has become an independent information model as of release 2017 of the HCIMs."
    },
    {
      "identity": "hcim-languageproficiency-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/LanguageProficiency-v3.1(2017EN)",
      "name": "HCIM LanguageProficiency-v3.1(2017EN)"
    },
    {
      "identity": "hcim-freedomrestrictingmeasures-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/FreedomRestrictingMeasures-v3.1(2017EN)",
      "name": "HCIM FreedomRestrictingMeasures-v3.1(2017EN)",
      "comment": "Concerns only LegalStatus concept. This will become an independent information model as of release 2018 of the HCIMs."
    },
    {
      "identity": "hcim-basicelements-v1.0-2017EN",
      "uri": "https://zibs.nl/wiki/BasicElements-v1.0(2017EN)",
      "name": "HCIM BasicElements-v1.0(2017EN)"
    },
    {
      "identity": "hcim-familysituation-v1.0-2015EN",
      "uri": "https://zibs.nl/wiki/FamilySituation-v1.0(2015EN)",
      "name": "HCIM FamilySituation-v1.0(2015EN)"
    },
    {
      "identity": "hcim-familysituation-v3.0-2016EN",
      "uri": "https://zibs.nl/wiki/FamilySituation-v3.0(2016EN)",
      "name": "HCIM FamilySituation-v3.0(2016EN)"
    },
    {
      "identity": "hcim-familysituation-v3.0-2017EN",
      "uri": "https://zibs.nl/wiki/FamilySituation-v3.0(2017EN)",
      "name": "HCIM FamilySituation-v3.0(2017EN)"
    },
    {
      "identity": "hcim-LifeStance-v3.1-2017EN",
      "uri": "https://zibs.nl/wiki/LifeStance-v3.1(2017EN)",
      "name": "HCIM LifeStance-v3.1(2017EN)"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Patient",
  "baseDefinition": "http://fhir.nl/fhir/StructureDefinition/nl-core-patient",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Patient",
        "path": "Patient",
        "constraint": [
          {
            "key": "upn-missing",
            "severity": "error",
            "human": "A single type=MR Identifier is required.",
            "expression": "identifier.where(system != 'http://fhir.nl/fhir/NamingSystem/bsn' and  type.coding.system = 'http://hl7.org/fhir/v2/0203' and type.coding.code = 'MR').exists()"
          }
        ]
      },
      {
        "id": "Patient.identifier",
        "path": "Patient.identifier",
        "min": 1
      },
      {
        "id": "Patient.identifier:BSN",
        "path": "Patient.identifier",
        "sliceName": "BSN",
        "alias": [
          "idcode"
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.name",
        "path": "Patient.name",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Patient.name.family",
        "path": "Patient.name.family",
        "min": 1
      },
      {
        "id": "Patient.name.family.extension:humannameOwnPrefix",
        "path": "Patient.name.family.extension",
        "sliceName": "humannameOwnPrefix",
        "mustSupport": true
      },
      {
        "id": "Patient.name.family.extension:humannameOwnName",
        "path": "Patient.name.family.extension",
        "sliceName": "humannameOwnName",
        "mustSupport": true
      },
      {
        "id": "Patient.name.family.extension:humannamePartnerPrefix",
        "path": "Patient.name.family.extension",
        "sliceName": "humannamePartnerPrefix",
        "mustSupport": true
      },
      {
        "id": "Patient.name.family.extension:humannamePartnerName",
        "path": "Patient.name.family.extension",
        "sliceName": "humannamePartnerName",
        "mustSupport": true
      },
      {
        "id": "Patient.name.given",
        "path": "Patient.name.given",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Patient.gender",
        "path": "Patient.gender",
        "min": 1
      },
      {
        "id": "Patient.gender.extension",
        "path": "Patient.gender.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        },
        "max": "1"
      },
      {
        "id": "Patient.gender.extension:GeslachtCodelijst",
        "path": "Patient.gender.extension",
        "sliceName": "MRDM GeslachtCodelijst",
        "max": "1"
      },
      {
        "id": "Patient.gender.extension:GeslachtCodelijst.valueCodeableConcept:valueCodeableConcept",
        "path": "Patient.gender.extension.valueCodeableConcept",
        "sliceName": "GeslachtCodelijst_waarde",
        "binding": {
          "strength": "required",
          "valueSetReference": {
            "reference": "http://mrdm.nl/fhir/ValueSet/administrative-gender",
            "display": "MRDM GeslachtCodelijst"
          }
        }
      },
      {
        "id": "Patient.birthDate",
        "path": "Patient.birthDate",
        "min": 1
      },
      {
        "id": "Patient.deceased[x]",
        "path": "Patient.deceased",
        "max": "1"
      },
      {
        "id": "Patient.deceased[x].extension",
        "path": "Patient.deceased.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        },
        "max": "1"
      },
      {
        "id": "Patient.deceased[x].extension:DeceasedStatusCodes",
        "path": "Patient.deceased.extension",
        "sliceName": "DeceasedStatusCodes",
        "max": "1"
      },
      {
        "id": "Patient.deceased[x].extension:DeceasedStatusCodes.valueCodeableConcept:valueCodeableConcept",
        "path": "Patient.deceased.extension.valueCodeableConcept",
        "sliceName": "DeceasedStatusCodes_waarde",
        "binding": {
          "strength": "required",
          "valueSetReference": {
            "reference": "http://mrdm.nl/fhir/ValueSet/dhfa-deceased-status",
            "display": "dhfa-deceased-status"
          }
        }
      },
      {
        "id": "Patient.deceased[x]:deceasedDateTime",
        "path": "Patient.deceasedDateTime",
        "sliceName": "deceasedDateTime",
        "definition": "Indicates if the individual is deceased or not, and when. MRDM will only use the date part of the dateTime.",
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.managingOrganization",
        "path": "Patient.managingOrganization",
        "min": 1
      },
      {
        "id": "Patient.managingOrganization.identifier",
        "path": "Patient.managingOrganization.identifier",
        "min": 1
      },
      {
        "id": "Patient.managingOrganization.identifier.system",
        "path": "Patient.managingOrganization.identifier.system",
        "min": 1,
        "fixedUri": "http://mrdm.nl/fhir/CodeSystem/mrdm-HealthcareProvidersNL"
      },
      {
        "id": "Patient.managingOrganization.identifier.value",
        "path": "Patient.managingOrganization.identifier.value",
        "min": 1
      }
    ]
  }
}