DRAFT - The specification is currently in development and subject to significant change. It is not ready for limited roll-out or production level use.

Patient (CA:eReC)

Structure Definition: Patient Profile

Canonical URL:http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
HealthCardNumberVersionCodeI0..*Extension(string)
ReasonForNoHCNI0..*Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ1..1string
givenS Σ0..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
id0..1string
extensionI0..*Extension
systemS Σ I0..1codeBinding
valueS Σ1..1string
useS Σ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
genderS Σ0..1codeBinding
birthDateS Σ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textS Σ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeS Σ0..1string
countryS Σ0..1string
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationshipS0..*CodeableConceptBinding
nameS0..1HumanName
telecomS I0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
modifierExtensionΣ ?! I0..*Extension
languageS1..1CodeableConceptBinding
preferredS0..1boolean
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
HealthCardNumberVersionCodeI0..*Extension(string)
ReasonForNoHCNI0..*Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ1..1string
givenS Σ0..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
id0..1string
extensionI0..*Extension
systemS Σ I0..1codeBinding
valueS Σ1..1string
useS Σ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
genderS Σ0..1codeBinding
birthDateS Σ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textS Σ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeS Σ0..1string
countryS Σ0..1string
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationshipS0..*CodeableConceptBinding
nameS0..1HumanName
telecomS I0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
modifierExtensionΣ ?! I0..*Extension
languageS1..1CodeableConceptBinding
preferredS0..1boolean
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
HealthCardNumberVersionCodeI0..*Extension(string)
ReasonForNoHCNI0..*Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ1..1string
givenS Σ0..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
id0..1string
extensionI0..*Extension
systemS Σ I0..1codeBinding
valueS Σ1..1string
useS Σ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
genderS Σ0..1codeBinding
birthDateS Σ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textS Σ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeS Σ0..1string
countryS Σ0..1string
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationshipS0..*CodeableConceptBinding
nameS0..1HumanName
telecomS I0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
modifierExtensionΣ ?! I0..*Extension
languageS1..1CodeableConceptBinding
preferredS0..1boolean
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding
Patient..
Patient.identifier1..
Patient.identifier.extensionExtension..
Patient.identifier.extensionExtension..
Patient.identifier.system1..
Patient.identifier.value1..
Patient.name1..
Patient.name.family1..
Patient.name.given..
Patient.telecom..
Patient.telecom.system..
Patient.telecom.value1..
Patient.telecom.use..
Patient.gender..
Patient.birthDate..
Patient.address..
Patient.address.text..
Patient.address.postalCode..
Patient.address.country..
Patient.maritalStatus..
Patient.contact..
Patient.contact.relationship..
Patient.contact.name..
Patient.contact.telecom..
Patient.communication..
Patient.communication.extension..
Patient.communication.extensionExtension0..*
Patient.communication.extension.value[x]..
Patient.communication.extension.value[x].code..
Patient.communication.language..
Patient.communication.preferred..
Patient.generalPractitionerReference(Practitioner | PractitionerRole | Organization)..
Patient.generalPractitioner.reference..
Patient.generalPractitioner.identifier..
Patient.generalPractitioner.identifier.system1..
Patient.generalPractitioner.identifier.value1..

{
    "resourceType": "StructureDefinition",
    "id": "CA-eReC-Patient",
    "url": "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient",
    "name": "Patient",
    "status": "draft",
    "description": "The Patient resources contain demographics and other administrative information about the individual who is the subject of the referral.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.identifier",
                "path": "Patient.identifier",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.identifier.extension:HealthCardNumberVersionCode",
                "path": "Patient.identifier.extension",
                "sliceName": "HealthCardNumberVersionCode",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-HCNV-code-EXT"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.identifier.extension:ReasonForNoHCN",
                "path": "Patient.identifier.extension",
                "sliceName": "ReasonForNoHCN",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-reason-for-no-HCN-EXT"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.identifier.system",
                "path": "Patient.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.identifier.value",
                "path": "Patient.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name.family",
                "path": "Patient.name.family",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name.given",
                "path": "Patient.name.given",
                "mustSupport": true
            },
            {
                "id": "Patient.telecom",
                "path": "Patient.telecom",
                "mustSupport": true
            },
            {
                "id": "Patient.telecom.system",
                "path": "Patient.telecom.system",
                "mustSupport": true
            },
            {
                "id": "Patient.telecom.value",
                "path": "Patient.telecom.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.telecom.use",
                "path": "Patient.telecom.use",
                "mustSupport": true
            },
            {
                "id": "Patient.gender",
                "path": "Patient.gender",
                "comment": "The gender might not match the biological sex as determined by genetics or the individual's preferred identification. Note that for both humans and particularly animals, there are other legitimate possibilities than male and female, though the vast majority of systems and contexts only support male and female.  Systems providing decision support or enforcing business rules should ideally do this on the basis of Observations dealing with the specific sex or gender aspect of interest (anatomical, chromosomal, social, etc.).  Where such defaulting occurs, rule enforcement should allow for the variation between administrative and biological, chromosomal and other gender aspects.  For example, an alert about a hysterectomy on a male should be handled as a warning or overridable error, not a \"hard\" error.",
                "mustSupport": true
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "mustSupport": true
            },
            {
                "id": "Patient.address",
                "path": "Patient.address",
                "mustSupport": true
            },
            {
                "id": "Patient.address.text",
                "path": "Patient.address.text",
                "mustSupport": true
            },
            {
                "id": "Patient.address.postalCode",
                "path": "Patient.address.postalCode",
                "mustSupport": true
            },
            {
                "id": "Patient.address.country",
                "path": "Patient.address.country",
                "mustSupport": true
            },
            {
                "id": "Patient.maritalStatus",
                "path": "Patient.maritalStatus",
                "comment": "MAY be used to identify the maritalStatus of the patient"
            },
            {
                "id": "Patient.contact",
                "path": "Patient.contact",
                "comment": "MAY be used to identify alternate contacts for the patient"
            },
            {
                "id": "Patient.contact.relationship",
                "path": "Patient.contact.relationship",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "http://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/patient-contact-relationship"
                }
            },
            {
                "id": "Patient.contact.name",
                "path": "Patient.contact.name",
                "mustSupport": true
            },
            {
                "id": "Patient.contact.telecom",
                "path": "Patient.contact.telecom",
                "mustSupport": true
            },
            {
                "id": "Patient.communication",
                "path": "Patient.communication",
                "comment": "where applicable, SHOULD be used to identify the preferred communication language for the patient"
            },
            {
                "id": "Patient.communication.extension",
                "path": "Patient.communication.extension",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "url"
                        }
                    ],
                    "ordered": false,
                    "rules": "open"
                }
            },
            {
                "id": "Patient.communication.extension:CommunicationBarrier",
                "path": "Patient.communication.extension",
                "sliceName": "CommunicationBarrier",
                "min": 0,
                "max": "*",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ext-CommunicationBarrier"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Patient.communication.extension:CommunicationBarrier.value[x]",
                "path": "Patient.communication.extension.value[x]",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "http://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/communication-barrier"
                }
            },
            {
                "id": "Patient.communication.extension:CommunicationBarrier.value[x].code",
                "path": "Patient.communication.extension.value[x].code",
                "binding": {
                    "strength": "extensible",
                    "description": "Contains codes required to identify if the patient speaks/understands an offical language (english/french), or if she/he does not and an interpretor is required.",
                    "valueSet": "http://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/communication-barrier"
                },
                "mustSupport": true
            },
            {
                "id": "Patient.communication.language",
                "path": "Patient.communication.language",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "valueSet": "http://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/human-language"
                }
            },
            {
                "id": "Patient.communication.preferred",
                "path": "Patient.communication.preferred",
                "mustSupport": true
            },
            {
                "id": "Patient.generalPractitioner",
                "path": "Patient.generalPractitioner",
                "comment": "where applicable, SHOULD be used to identify patients primary care provider",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Practitioner",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Organization"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.generalPractitioner.reference",
                "path": "Patient.generalPractitioner.reference",
                "mustSupport": true
            },
            {
                "id": "Patient.generalPractitioner.identifier",
                "path": "Patient.generalPractitioner.identifier",
                "mustSupport": true
            },
            {
                "id": "Patient.generalPractitioner.identifier.system",
                "path": "Patient.generalPractitioner.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.generalPractitioner.identifier.value",
                "path": "Patient.generalPractitioner.identifier.value",
                "min": 1,
                "mustSupport": true
            }
        ]
    }
}

Usage

The Patient resources contain demographics and other administrative information about the individual who is the subject of the referral.

Notes

.id

  • used to uniquely identify the resource
  • if a persistent identity for the resource is not available to use when constructing a message Bundle for transmission via Direct Messaging, a UUID SHOULD be used in this element (with a corresponding value in Bundle.entry.fullUrl)

.identifier

  • Business identifier(s) for the patient, multiple allowed

  • MAY include patient health card number or reason if an HCN is not provided (see: ReasonForNoHCN)

  • MAY include other business identifiers

  • where present, the business identifier MAY be pushed to reference this resource in subsequent messages

.extension:HealthCardNumberVersionCode

  • An assigned sequence code, uniquely identifying a Health Card issued (or potentially issued) to a Registered Person

.extension:ReasonForNoHCN

  • This extension is used to convey the reason for not providing the patient's health card number as a business identifier.

.name

  • The name of the patient
  • .name.family SHALL always be populated
  • .name.given use multiple instances if patient has multiple given names (e.g. first and middle names)

.telecom

  • Used to provide information to contact the patient when informing them about appointments etc.
  • SHALL be populated when available to send
  • SHOULD have multiple ways to be contacted

.gender

  • MAY be used by receivers for patient matching / identifications
  • SHOULD be populated when available to send
  • if sending an administrative gender that is not in the value set (i.e. "X" non-binary), that MAY be sent as "Other" with an appropriate extension sent with the proper value.​

.birthDate

  • MAY be used by receivers for patient matching / identifications
  • SHOULD be populated when available to send

.maritalStatus

  • MAY be populated when available to send

.contact

  • Used to identify a contact party for the patient (e.g. partner, parent, friend)
  • MAY be populated when available to send

.communication

  • Used to indicate which language the patient speaks, multiple allowed
  • SHOULD be populated when available to send
  • .language SHALL always be populated when used

.generalPractitioner

  • Identifies the patients primary care provider / family doctor
  • MAY be populated when available to send
  • SHALL be populated with a reference to a Practitioner, PractitionerRole, or Organization resource
  • If the information is being transmitted via messaging, the referenced resource SHALL be included in the message as a Bundle.entry