Profiles & Interactions > Structure Definition: Patient Profile

Profile: Patient

Canonical URL:http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-patient

Simplifier project page: patient

Derived from: Patient (R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

Differential View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ1..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ1..1uriBinding
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
mHADataAbsentReasonS C0..1Extension(Coding)
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ0..1uriBinding
valueS Σ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ1..1uri
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
activeS Σ ?!1..1boolean
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ C1..1string
givenS Σ C1..2string
prefixΣ0..*string
suffixΣ0..*string
periodΣ C0..1Period
telecomΣ C0..*ContactPoint
genderΣ0..1codeBinding
id0..1string
BirthDateEstimatedFlagS C1..1Extension(boolean)
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityS Σ0..1string
districtΣ0..1string
stateS Σ0..1stringBinding
id0..1string
mHADataAbsentReasonS C0..1Extension(Coding)
value0..1System.String
countryΣ0..1string
periodΣ C0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoC0..*Attachment
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomC0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationC0..1Reference(Organization)
periodC0..1Period
id0..1string
languageUseS C1..1Extension(CodeableConcept)
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
generalPractitionerC0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
otherΣ C1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

Hybrid View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ1..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ1..1uriBinding
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
mHADataAbsentReasonS C0..1Extension(Coding)
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ0..1uriBinding
valueS Σ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ1..1uri
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
activeS Σ ?!1..1boolean
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ C1..1string
givenS Σ C1..2string
prefixΣ0..*string
suffixΣ0..*string
periodΣ C0..1Period
telecomΣ C0..*ContactPoint
genderΣ0..1codeBinding
id0..1string
BirthDateEstimatedFlagS C1..1Extension(boolean)
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityS Σ0..1string
districtΣ0..1string
stateS Σ0..1stringBinding
id0..1string
mHADataAbsentReasonS C0..1Extension(Coding)
value0..1System.String
countryΣ0..1string
periodΣ C0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoC0..*Attachment
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomC0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationC0..1Reference(Organization)
periodC0..1Period
id0..1string
languageUseS C1..1Extension(CodeableConcept)
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
generalPractitionerC0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
otherΣ C1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

Snapshot View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ1..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ1..1uriBinding
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
mHADataAbsentReasonS C0..1Extension(Coding)
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ0..1uriBinding
valueS Σ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeS Σ1..1CodeableConceptBindingPattern
systemS Σ1..1uri
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
activeS Σ ?!1..1boolean
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ C1..1string
givenS Σ C1..2string
prefixΣ0..*string
suffixΣ0..*string
periodΣ C0..1Period
telecomΣ C0..*ContactPoint
genderΣ0..1codeBinding
id0..1string
BirthDateEstimatedFlagS C1..1Extension(boolean)
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityS Σ0..1string
districtΣ0..1string
stateS Σ0..1stringBinding
id0..1string
mHADataAbsentReasonS C0..1Extension(Coding)
value0..1System.String
countryΣ0..1string
periodΣ C0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoC0..*Attachment
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomC0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationC0..1Reference(Organization)
periodC0..1Period
id0..1string
languageUseS C1..1Extension(CodeableConcept)
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
preferred0..1boolean
generalPractitionerC0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
otherΣ C1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

Table View

Patient..
Patient.meta1..
Patient.meta.profile1..1
Patient.identifier1..
Patient.identifier.type1..
Patient.identifier.system..
Patient.identifier.value..
Patient.identifier:MRN1..1
Patient.identifier:MRN.type..
Patient.identifier:MRN.system1..
Patient.identifier:MRN.value1..
Patient.identifier:JHN1..1
Patient.identifier:JHN.extension:mHADataAbsentReasonExtension..1
Patient.identifier:JHN.type1..
Patient.identifier:JHN.system..
Patient.identifier:JHN.value..
Patient.identifier:Anonymous..
Patient.identifier:Anonymous.type1..
Patient.identifier:Anonymous.system1..
Patient.identifier:Anonymous.value1..
Patient.active1..
Patient.name1..1
Patient.name.family1..
Patient.name.given1..2
Patient.birthDate1..
Patient.birthDate.extension1..
Patient.birthDate.extension:BirthDateEstimatedFlagExtension1..1
Patient.address1..1
Patient.address.use..
Patient.address.line..
Patient.address.city..
Patient.address.state..
Patient.address.postalCode1..
Patient.address.postalCode.extension:mHADataAbsentReasonExtension..1
Patient.communication..
Patient.communication.extension1..
Patient.communication.extension:languageUseExtension1..
Patient.communication.language..
Patient.communication.language.coding..
Patient.communication.language.coding.system1..
Patient.communication.language.coding.code1..
Patient.communication.language.coding.display1..
Patient.communication:languageOfComfort..1
Patient.communication:languageOfComfort.extension1..
Patient.communication:languageOfComfort.extension:languageUseExtension1..
Patient.communication:languageOfComfort.extension:languageUse.value[x]1..
Patient.communication:languageOfComfort.extension:languageUse.value[x].coding..
Patient.communication:languageOfComfort.extension:languageUse.value[x].coding.system..
Patient.communication:languageOfComfort.extension:languageUse.value[x].coding.code..
Patient.communication:languageOfComfort.language..
Patient.communication:languageOfComfort.language.coding1..1
Patient.communication:languageOfComfort.language.coding.system1..
Patient.communication:languageOfComfort.language.coding.code1..
Patient.communication:languageOfComfort.language.coding.display1..
Patient.communication:officialLanguage..1
Patient.communication:officialLanguage.extension1..
Patient.communication:officialLanguage.extension:languageUseExtension1..
Patient.communication:officialLanguage.extension:languageUse.value[x]1..
Patient.communication:officialLanguage.extension:languageUse.value[x].coding..
Patient.communication:officialLanguage.extension:languageUse.value[x].coding.system..
Patient.communication:officialLanguage.extension:languageUse.value[x].coding.code..
Patient.communication:officialLanguage.language..
Patient.communication:officialLanguage.language.coding1..1
Patient.communication:officialLanguage.language.coding.system1..
Patient.communication:officialLanguage.language.coding.code1..
Patient.communication:officialLanguage.language.coding.display1..

JSON View

{
"resourceType": "StructureDefinition",
"id": "profile-patient",
"meta": {
"lastUpdated": "2026-06-02T14:22:55.7928726+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",
"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": {
{
"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",
"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",
{
"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 provided 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()"
},
{
"key": "jhn-inv-3",
"severity": "error",
"human": "Healthcard must contain only value or data-absent-reason, not both",
"expression": "($this.where(type.coding.code = 'JHN').value.exists() and $this.where(type.coding.code = 'JHN').extension('http://ontariohealth.ca/fhir/StructureDefinition/ext-ca-on-mha-data-absent-reason').exists()).not()"
}
],
"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,
"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,
"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",
{
"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,
{
"key": "mha-patient-name-key-1",
"severity": "error",
"human": "Patient last name cannot contain illegal characters (i.e. line breaks, tabs, <,>,{,},[,],|,^, ~,`)",
"expression": "value.matches('^[^<>{}\\\\[\\\\]|\\\\^~\\\\t\\n\\r`]*$')"
}
],
"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",
{
"key": "mha-patient-name-key-2",
"severity": "error",
"human": "Patient first name or middle name cannot contain illegal characters (i.e. line breaks, tabs, <,>,{,},[,],|,^, ~,`)",
"expression": "$this.all(matches('^[^<>{}\\\\[\\\\]|\\\\^~\\\\t\\n\\r`]*$'))"
}
],
"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.\n• Used to categorize data for reporting.",
"min": 1,
{
"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",
"min": 1,
"max": "1",
{
"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,
{
"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()"
},
{
"key": "postalcode-inv-2",
"severity": "error",
"human": "If postal code is provided, it must match the Canadian postal code format with no space or special symbols",
"expression": "$this.hasValue() implies value.matches('^[A-Za-z]\\\\d[A-Za-z]\\\\d[A-Za-z]\\\\d$')"
}
],
"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": {
{
"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
}
]
}
}

Usage

The Patient Resource is used to share demographics and other administrative information about the client, as defined by MHA PDS 2.0.

Notes

.meta.profile

  • used to declare conformance to this profile
  • populate with a fixed value: http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-patient|2.0.0

.active

  • SHALL be populated to indicate patent status. Send "true" if patient is active, "false" when the patient is inactive.

.identifier

  • SHALL contain two instances.HSPs must send one patient's medical record number and one health card number in this field. See below.

  • For MRN:

    • SHALL populate identifier.type as "MR" from system http://terminology.hl7.org/CodeSystem/v2-0203 with display "Medical record number"
    • SHALL populate the system value with a URI in the value set binded to the identifier:MRN slice.
  • For HCN:

    • If health card number is known, populate identifier.type as "JHN" from system http://terminology.hl7.org/CodeSystem/v2-0203 with display "Jurisdictional health number", and pouplate the ysstem value with a URI in the value set binded to identifier:JHN slice.
    • If health card number cannot be provided, the populate identifier.type as "JHN" from system http://terminology.hl7.org/CodeSystem/v2-0203 with display "Jurisdictional health number", and provide the "data-absent-reason" extension with a code binded to the value set indicating the reason why it cannot be provided.
  • For anonymous client submissions:

    • Populate identifier.type as "ANON" from system http://terminology.hl7.org/CodeSystem/v2-0203 with display "Anonymous Identifier"
    • SHALL populate the system value with a URI from the identifier:MRN slice

.name

  • SHALL contain the client's last name and first name (up to 2 first names)
    • If person has a middle name, it should be provided in the second instance of name.given. Only valid characters are allowed plus a hyphen, a period, and apostrophe.
    • If no first name, enter “No First Name” or “NFN” in name.given
    • Persons with only a single name: Some people do not have a family name and a given name, they have only a single name by which they are known. If the person has only a single name, record it in name.family and set name.first to ‘No First Name’ or ‘NFN’.
    • For name.family:
      • Only valid characters are allowed plus a hyphen, a period, and apostrophe
      • At least first initial of name is required - full name is recommended
      • Only 1 value is allowed in FHIR
      • If client has only a single name, populate it here and enter “No First Name” or “NFN” in the Client First Name field.

.birthDate

  • SHALL contain client's date of birth
  • If the date of birth is estimated, client system SHALL populate the extension DateofBirthEstimatedFlag with valueBoolean set to "true"
    • Cannot be earlier than 1900-01-01 or later than current date
    • If the DOB is not available, HSP will submit 1900-01-01 and "true" in the "BirthDateEstimatedFlag"
    • For Estimated year of birth, the recommended standard is to assign the month/day as 01/01
    • Reconnect vendors are following the corresponding HL7 FHIR datatype ISO format YYYY-MM-DD
    • Vendor restricted no partial dates are supported
    • Only 1 value is allowed in FHIR

_birthDate (Date of Birth Estimated Flag)

  • If a user is unsure of a client’s date of birth, they should estimate the year to facilitate age group stratification in reporting. Estimated dates of birth are not used when linking clients in the MHA repository. For estimated year of birth, assign the month/day as 01-01.
  • If blank, it's translated to false. If it is set to true, no linking will occur

.address

  • address.use SHOULD contain a code from the AddressUse value set representing the purpose of this address
  • address.city SHOULD contain the city the client resides in
  • address.state SHOULD contain a code from the presribed value set representing the province the client resides in
  • address.postalCode SHOULD contain the client's postal code
    • If postal code is not populated, the "data-absent-reason" extension SHALL be populated with a code from the value set

.maritalStatus

  • If available, SHOULD contain a code from the prescribed value set representing the client's marital status.

.communication

  • SHOULD contain the information to identify the following:

  • Official Language

    • Used to capture the client's preferred official language. If the client did not select English or French, what official language does the client prefer?
    • .extension.Use.value SHALL contain a fixed value code of OFL
    • coding.system SHALL contain a reference to one of the code systems used in the value set
    • .coding.code SHALL contain a code representing the client's preferred official language from the prescribed value set
    • .coding.display SHALL contain a string represetnation of the code
  • Language of Comfort

    • Identifies the primary or preferred language spoken or used by the client at the time of data collection.
    • .extension.Use.value SHALL contain a fixed value code of 428996008
    • .coding.system SHALL contain a reference to one of the code systems used in the value set
    • .coding.code SHALL contain a code representing the client's preferred language to receive services from the prescribed value set
    • .coding.display SHALL contain a string represetnation of the code