{
  "resourceType": "StructureDefinition",
  "id": "profile-patient",
  "meta": {
    "lastUpdated": "2026-03-04T16:45:53.0073792+00:00"
  },
  "url": "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-patient",
  "version": "2.0.0",
  "name": "Patient",
  "title": "MHA Patient Profile",
  "status": "active",
  "date": "2024-10-03T13:43:06.889914+00:00",
  "publisher": "HL7 Canada",
  "description": "Proposed constraints and extensions on the Patient Resource. This represents client information.",
  "purpose": "The Patient Profile will serve to exchange client related data including but not limited to identifiers and demographics.",
  "fhirVersion": "4.0.1",
  "mapping": [
    {
      "identity": "MHA-PDS-Mapping",
      "name": "MHA PDS Mapping"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Patient",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Patient",
        "path": "Patient",
        "short": "Patient Profile",
        "definition": "The Patient Profile is based upon the core FHIR Patient Resource",
        "mustSupport": true,
        "isModifier": false
      },
      {
        "id": "Patient.meta",
        "path": "Patient.meta",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.meta.profile",
        "path": "Patient.meta.profile",
        "min": 1,
        "max": "1",
        "fixedCanonical": "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-patient"
      },
      {
        "id": "Patient.identifier",
        "path": "Patient.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "type"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.identifier.type",
        "path": "Patient.identifier.type",
        "min": 1,
        "binding": {
          "strength": "required",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/client-identifier-type-code"
        },
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Identifier Type"
          }
        ]
      },
      {
        "id": "Patient.identifier.system",
        "path": "Patient.identifier.system",
        "isModifier": false
      },
      {
        "id": "Patient.identifier.value",
        "path": "Patient.identifier.value",
        "short": "The value that is unique within the system.",
        "isModifier": false
      },
      {
        "id": "Patient.identifier:MRN",
        "path": "Patient.identifier",
        "sliceName": "MRN",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:MRN.type",
        "path": "Patient.identifier.type",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
              "code": "MR",
              "display": "Medical record number"
            }
          ]
        },
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/client-identifier-type-code"
        }
      },
      {
        "id": "Patient.identifier:MRN.system",
        "path": "Patient.identifier.system",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "description": "MHA Patient MRN system URI values",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/mha/patient-mrn-identifier-system"
        }
      },
      {
        "id": "Patient.identifier:MRN.value",
        "path": "Patient.identifier.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:JHN",
        "path": "Patient.identifier",
        "sliceName": "JHN",
        "min": 1,
        "max": "1",
        "constraint": [
          {
            "key": "jhn-inv-1",
            "severity": "error",
            "human": "Either both system and value exists or none of them exists",
            "expression": "system.exists() = value.exists()"
          },
          {
            "key": "jhn-inv-2",
            "severity": "error",
            "human": "Healthcard must be provide either with value or data-absent-reason",
            "expression": "$this.where(type.coding.code = 'JHN').value.exists() or $this.where(type.coding.code = 'JHN').extension('http://ontariohealth.ca/fhir/StructureDefinition/ext-ca-on-mha-data-absent-reason').exists()"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:JHN.extension:mHADataAbsentReason",
        "path": "Patient.identifier.extension",
        "sliceName": "mHADataAbsentReason",
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://ontariohealth.ca/fhir/StructureDefinition/ext-ca-on-mha-data-absent-reason"
            ]
          }
        ],
        "mustSupport": true,
        "isModifier": false
      },
      {
        "id": "Patient.identifier:JHN.type",
        "path": "Patient.identifier.type",
        "min": 1,
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
              "code": "JHN",
              "display": "Jurisdictional health number"
            }
          ]
        },
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/client-identifier-type-code"
        }
      },
      {
        "id": "Patient.identifier:JHN.system",
        "path": "Patient.identifier.system",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/mha/patient-jhn-identifier-system"
        }
      },
      {
        "id": "Patient.identifier:JHN.value",
        "path": "Patient.identifier.value",
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:Anonymous",
        "path": "Patient.identifier",
        "sliceName": "Anonymous",
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:Anonymous.type",
        "path": "Patient.identifier.type",
        "min": 1,
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
              "code": "ANON"
            }
          ]
        },
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/client-identifier-type-code"
        }
      },
      {
        "id": "Patient.identifier:Anonymous.system",
        "path": "Patient.identifier.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:Anonymous.value",
        "path": "Patient.identifier.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.active",
        "path": "Patient.active",
        "definition": "Only use this field to mark a patient record is inactive.",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.name",
        "path": "Patient.name",
        "short": "A name associated with the patient(client)",
        "min": 1,
        "max": "1",
        "constraint": [
          {
            "key": "ca-baseline-name",
            "severity": "error",
            "human": "Patient.name.given  or Patient.name.family or both SHALL be present",
            "expression": "family.exists() or given.exists()",
            "xpath": "f:given or f:family",
            "source": "http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-patient"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.name.family",
        "path": "Patient.name.family",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Client Last Name"
          }
        ]
      },
      {
        "id": "Patient.name.given",
        "path": "Patient.name.given",
        "definition": "The first or given name of the client. If middle name is available, it should be provided as the second value.",
        "min": 1,
        "max": "2",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Client First Name, Client Middle Name"
          }
        ]
      },
      {
        "id": "Patient.birthDate",
        "path": "Patient.birthDate",
        "comment": "At least an estimated year should be provided as a guess if the real DOB is unknown",
        "requirements": "• Used to calculate the age of the person and which age group the person belongs to.\r\n• Used to categorize data for reporting.",
        "min": 1,
        "constraint": [
          {
            "key": "bd-1",
            "severity": "error",
            "human": "birthDate must have a date value",
            "expression": "hasValue() = true"
          },
          {
            "key": "bd-2",
            "severity": "error",
            "human": "If birthDate is \"1900-01-01\", BirthDate estimated flag must be set to 'true'",
            "expression": "$this = @1900-01-01 implies $this.extension.value = true"
          },
          {
            "key": "bd-3",
            "severity": "error",
            "human": "BirthDate must not be before '1900-01-01' or after the current date and it must be a valid date",
            "expression": "$this >= @1900-01-01 and $this < today()"
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Date of Birth"
          }
        ]
      },
      {
        "id": "Patient.birthDate.extension",
        "path": "Patient.birthDate.extension",
        "min": 1
      },
      {
        "id": "Patient.birthDate.extension:BirthDateEstimatedFlag",
        "path": "Patient.birthDate.extension",
        "sliceName": "BirthDateEstimatedFlag",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-birthdate-estimated-flag"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.address",
        "path": "Patient.address",
        "constraint": [
          {
            "key": "adr-key-1",
            "severity": "error",
            "human": "Province must be provided if 'address use' is provided",
            "expression": "use.exists() implies state.exists()"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.address.use",
        "path": "Patient.address.use",
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Address Use"
          }
        ]
      },
      {
        "id": "Patient.address.line",
        "path": "Patient.address.line",
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Address Line 1"
          }
        ]
      },
      {
        "id": "Patient.address.city",
        "path": "Patient.address.city",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "City"
          }
        ]
      },
      {
        "id": "Patient.address.state",
        "path": "Patient.address.state",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "description": "Codes to identify the provinces and territories of Canada",
          "valueSet": "http://ehealthontario.ca/fhir/ValueSet/province-code"
        },
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Province"
          }
        ]
      },
      {
        "id": "Patient.address.postalCode",
        "path": "Patient.address.postalCode",
        "min": 1,
        "constraint": [
          {
            "key": "postalcode-inv-1",
            "severity": "error",
            "human": "postal code cannot have both value and data-absent-reason present",
            "expression": "$this.hasValue() != $this.extension('http://ontariohealth.ca/fhir/StructureDefinition/ext-ca-on-mha-data-absent-reason').exists()"
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Postal Code"
          }
        ]
      },
      {
        "id": "Patient.address.postalCode.extension:mHADataAbsentReason",
        "path": "Patient.address.postalCode.extension",
        "sliceName": "mHADataAbsentReason",
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://ontariohealth.ca/fhir/StructureDefinition/ext-ca-on-mha-data-absent-reason"
            ]
          }
        ],
        "mustSupport": true,
        "isModifier": false
      },
      {
        "id": "Patient.communication",
        "path": "Patient.communication",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "extension.value.coding.code"
            }
          ],
          "rules": "open"
        },
        "mustSupport": true
      },
      {
        "id": "Patient.communication.extension",
        "path": "Patient.communication.extension",
        "min": 1
      },
      {
        "id": "Patient.communication.extension:languageUse",
        "path": "Patient.communication.extension",
        "sliceName": "languageUse",
        "min": 1,
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-ext-LanguageUse"
            ]
          }
        ]
      },
      {
        "id": "Patient.communication.language",
        "path": "Patient.communication.language",
        "mapping": [
          {
            "identity": "MHA-PDS-Mapping",
            "map": "Preferred Language"
          }
        ]
      },
      {
        "id": "Patient.communication.language.coding.system",
        "path": "Patient.communication.language.coding.system",
        "min": 1
      },
      {
        "id": "Patient.communication.language.coding.code",
        "path": "Patient.communication.language.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication.language.coding.display",
        "path": "Patient.communication.language.coding.display",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication:languageOfComfort",
        "path": "Patient.communication",
        "sliceName": "languageOfComfort",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Patient.communication:languageOfComfort.extension",
        "path": "Patient.communication.extension",
        "min": 1
      },
      {
        "id": "Patient.communication:languageOfComfort.extension:languageUse",
        "path": "Patient.communication.extension",
        "sliceName": "languageUse",
        "min": 1,
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-ext-LanguageUse"
            ]
          }
        ]
      },
      {
        "id": "Patient.communication:languageOfComfort.extension:languageUse.value[x]",
        "path": "Patient.communication.extension.value[x]",
        "min": 1
      },
      {
        "id": "Patient.communication:languageOfComfort.extension:languageUse.value[x].coding",
        "path": "Patient.communication.extension.value[x].coding"
      },
      {
        "id": "Patient.communication:languageOfComfort.extension:languageUse.value[x].coding.system",
        "path": "Patient.communication.extension.value[x].coding.system",
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Patient.communication:languageOfComfort.extension:languageUse.value[x].coding.code",
        "path": "Patient.communication.extension.value[x].coding.code",
        "fixedCode": "428996008"
      },
      {
        "id": "Patient.communication:languageOfComfort.language",
        "path": "Patient.communication.language",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "description": "Official languages of Canada.",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/human-language"
        }
      },
      {
        "id": "Patient.communication:languageOfComfort.language.coding",
        "path": "Patient.communication.language.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Patient.communication:languageOfComfort.language.coding.system",
        "path": "Patient.communication.language.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication:languageOfComfort.language.coding.code",
        "path": "Patient.communication.language.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication:languageOfComfort.language.coding.display",
        "path": "Patient.communication.language.coding.display",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication:officialLanguage",
        "path": "Patient.communication",
        "sliceName": "officialLanguage",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Patient.communication:officialLanguage.extension",
        "path": "Patient.communication.extension",
        "min": 1
      },
      {
        "id": "Patient.communication:officialLanguage.extension:languageUse",
        "path": "Patient.communication.extension",
        "sliceName": "languageUse",
        "min": 1,
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-ext-LanguageUse"
            ]
          }
        ]
      },
      {
        "id": "Patient.communication:officialLanguage.extension:languageUse.value[x]",
        "path": "Patient.communication.extension.value[x]",
        "label": "ServiceLanguage",
        "min": 1
      },
      {
        "id": "Patient.communication:officialLanguage.extension:languageUse.value[x].coding",
        "path": "Patient.communication.extension.value[x].coding"
      },
      {
        "id": "Patient.communication:officialLanguage.extension:languageUse.value[x].coding.system",
        "path": "Patient.communication.extension.value[x].coding.system",
        "fixedUri": "http://ontariohealth.ca/fhir/CodeSystem/LanguageUse"
      },
      {
        "id": "Patient.communication:officialLanguage.extension:languageUse.value[x].coding.code",
        "path": "Patient.communication.extension.value[x].coding.code",
        "fixedCode": "OFL"
      },
      {
        "id": "Patient.communication:officialLanguage.language",
        "path": "Patient.communication.language",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "description": "Languages understood or supported by Ontario clients and organizations.",
          "valueSet": "http://ontariohealth.ca/fhir/ValueSet/official-language"
        }
      },
      {
        "id": "Patient.communication:officialLanguage.language.coding",
        "path": "Patient.communication.language.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Patient.communication:officialLanguage.language.coding.system",
        "path": "Patient.communication.language.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication:officialLanguage.language.coding.code",
        "path": "Patient.communication.language.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.communication:officialLanguage.language.coding.display",
        "path": "Patient.communication.language.coding.display",
        "min": 1,
        "mustSupport": true
      }
    ]
  }
}