SMART Health Cards: Vaccination & Testing Implementation Guide
1.0.0 - STU1 Release International flag

SMART Health Cards: Vaccination & Testing Implementation Guide, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-shc-vaccination-ig/ and changes regularly. See the Directory of published versions

Resource Profile: Patient Profile - General - Allowable Data

Official URL: http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-ad Version: 1.0.0
Draft as of 2024-12-04 Computable Name: SHCPatientGeneralAD

Defines a fallback (AD) profile representing a patient in a health card related to infectious disease vaccination and testing issued in jurisdictions where no jurisdiction-specific profile is available.

See here for implementation details.

Start here!
Profile Group: Patient

Description:

For representing the minimal information needed to identify a patient in a SMART Health Card.

Primary profile (DM) Fallback profile (AD) Scope of profile pair
Patient - General Fallback For general use where no geographic-specific profile exists
Patient - United States Fallback United States only
For more information about the types of profiles in this IG, see the profiles page.

Note! This is a fallback "allowable data" (AD) profile. Implementers should validate against the primary "data minimization" (DM) profile if possible.

Usage:

Formal Views of Profile Content

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

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test
... id 0..1 id Should not be populated
... name SC 1..* HumanName Official name (i.e., legal name) of patient
vc-name-invariant: Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
.... text 0..1 string Use instead of `family` and `given` if the patient's name cannot be easily split into these elements
.... family S 0..1 string Family name (often called 'Surname')
.... given S 0..* string Parts of patient's name other than their family name that appear on photo ID; e.g., first and middle names
.... prefix S 0..* string Parts that come before the name
.... suffix S 0..* string Parts that come after the name
... telecom
.... value C 0..1 string The actual contact point details
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
... birthDate S 0..1 date The date of birth for the individual
... address
.... text 0..0
.... line 0..0
.... city C 0..1 string Name of city, town etc.
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... district C 0..1 string District name (aka county)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... state C 0..1 string Sub-unit of country (abbreviations ok)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... postalCode C 0..1 string Postal code for area
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
... photo 0..0
... contact 0..0

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
use-only-if-required-by-lawwarningPatient.genderSHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
: $this.length() = 0
vc-name-invarianterrorPatient.nameRequire one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
: (family.exists() and given.exists()) xor text.exists()
vc-should-be-omitted-privacywarningPatient.telecom.value, Patient.address.city, Patient.address.district, Patient.address.state, Patient.address.postalCodeSHOULD be omitted to protect privacy and for data minimization.
: $this.length() = 0
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test
... id Σ 0..1 id Should not be populated
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... name SΣC 1..* HumanName Official name (i.e., legal name) of patient
vc-name-invariant: Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
.... use ?!Σ 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.

.... text Σ 0..1 string Use instead of `family` and `given` if the patient's name cannot be easily split into these elements
.... family SΣ 0..1 string Family name (often called 'Surname')
.... given SΣ 0..* string Parts of patient's name other than their family name that appear on photo ID; e.g., first and middle names
This repeating element order: Given Names appear in the correct order for presenting the name
.... prefix SΣ 0..* string Parts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
.... suffix SΣ 0..* string Parts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
... gender ΣC 0..1 code Administrative gender
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.


use-only-if-required-by-law: SHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
... birthDate SΣ 0..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... link ?!Σ 0..* BackboneElement Link to another patient resource that concerns the same actual person
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Patient.name.userequiredNameUse
http://hl7.org/fhir/ValueSet/name-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPatientIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
use-only-if-required-by-lawwarningPatient.genderSHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
: $this.length() = 0
vc-name-invarianterrorPatient.nameRequire one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
: (family.exists() and given.exists()) xor text.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test
... id Σ 0..1 id Should not be populated
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier An identifier for this patient
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... name SΣC 1..* HumanName Official name (i.e., legal name) of patient
vc-name-invariant: Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.

.... text Σ 0..1 string Use instead of `family` and `given` if the patient's name cannot be easily split into these elements
.... family SΣ 0..1 string Family name (often called 'Surname')
.... given SΣ 0..* string Parts of patient's name other than their family name that appear on photo ID; e.g., first and middle names
This repeating element order: Given Names appear in the correct order for presenting the name
.... prefix SΣ 0..* string Parts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
.... suffix SΣ 0..* string Parts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
.... period Σ 0..1 Period Time period when name was/is in use
... telecom Σ 0..* ContactPoint A contact detail for the individual
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... system ΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value ΣC 0..1 string The actual contact point details
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
.... period Σ 0..1 Period Time period when the contact point was/is in use
... gender ΣC 0..1 code Administrative gender
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.


use-only-if-required-by-law: SHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
... birthDate SΣ 0..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... address Σ 0..* Address An address for the individual
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code home | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ 0..1 code postal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... city ΣC 0..1 string Name of city, town etc.
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
Example General: Erewhon
.... district ΣC 0..1 string District name (aka county)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
Example General: Madison
.... state ΣC 0..1 string Sub-unit of country (abbreviations ok)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... postalCode ΣC 0..1 string Postal code for area
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
Example General: 9132
.... country Σ 0..1 string Country (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ 0..1 Period Time period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... maritalStatus 0..1 CodeableConcept Marital (civil) status of a patient
Binding: Marital Status Codes (extensible): The domestic partnership status of a person.

... multipleBirth[x] 0..1 Whether patient is part of a multiple birth
.... multipleBirthBoolean boolean
.... multipleBirthInteger integer
... communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
.... preferred 0..1 boolean Language preference indicator
... generalPractitioner 0..* Reference(Organization | Practitioner | PractitionerRole) Patient's nominated primary care provider
... managingOrganization Σ 0..1 Reference(Organization) Organization that is the custodian of the patient record
... link ?!Σ 0..* BackboneElement Link to another patient resource that concerns the same actual person
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Patient.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.name.userequiredNameUse
http://hl7.org/fhir/ValueSet/name-use|4.0.1
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
from the FHIR Standard
Patient.address.typerequiredAddressType
http://hl7.org/fhir/ValueSet/address-type|4.0.1
from the FHIR Standard
Patient.maritalStatusextensibleMarital Status Codes
http://hl7.org/fhir/ValueSet/marital-status
from the FHIR Standard
Patient.contact.relationshipextensiblePatientContactRelationship
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPatientIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
use-only-if-required-by-lawwarningPatient.genderSHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
: $this.length() = 0
vc-name-invarianterrorPatient.nameRequire one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
: (family.exists() and given.exists()) xor text.exists()
vc-should-be-omitted-privacywarningPatient.telecom.value, Patient.address.city, Patient.address.district, Patient.address.state, Patient.address.postalCodeSHOULD be omitted to protect privacy and for data minimization.
: $this.length() = 0

This structure is derived from Patient

Summary

Mandatory: 1 element
Must-Support: 6 elements
Prohibited: 4 elements

Differential View

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test
... id 0..1 id Should not be populated
... name SC 1..* HumanName Official name (i.e., legal name) of patient
vc-name-invariant: Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
.... text 0..1 string Use instead of `family` and `given` if the patient's name cannot be easily split into these elements
.... family S 0..1 string Family name (often called 'Surname')
.... given S 0..* string Parts of patient's name other than their family name that appear on photo ID; e.g., first and middle names
.... prefix S 0..* string Parts that come before the name
.... suffix S 0..* string Parts that come after the name
... telecom
.... value C 0..1 string The actual contact point details
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
... birthDate S 0..1 date The date of birth for the individual
... address
.... text 0..0
.... line 0..0
.... city C 0..1 string Name of city, town etc.
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... district C 0..1 string District name (aka county)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... state C 0..1 string Sub-unit of country (abbreviations ok)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... postalCode C 0..1 string Postal code for area
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
... photo 0..0
... contact 0..0

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
use-only-if-required-by-lawwarningPatient.genderSHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
: $this.length() = 0
vc-name-invarianterrorPatient.nameRequire one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
: (family.exists() and given.exists()) xor text.exists()
vc-should-be-omitted-privacywarningPatient.telecom.value, Patient.address.city, Patient.address.district, Patient.address.state, Patient.address.postalCodeSHOULD be omitted to protect privacy and for data minimization.
: $this.length() = 0

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test
... id Σ 0..1 id Should not be populated
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... name SΣC 1..* HumanName Official name (i.e., legal name) of patient
vc-name-invariant: Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
.... use ?!Σ 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.

.... text Σ 0..1 string Use instead of `family` and `given` if the patient's name cannot be easily split into these elements
.... family SΣ 0..1 string Family name (often called 'Surname')
.... given SΣ 0..* string Parts of patient's name other than their family name that appear on photo ID; e.g., first and middle names
This repeating element order: Given Names appear in the correct order for presenting the name
.... prefix SΣ 0..* string Parts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
.... suffix SΣ 0..* string Parts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
... gender ΣC 0..1 code Administrative gender
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.


use-only-if-required-by-law: SHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
... birthDate SΣ 0..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... link ?!Σ 0..* BackboneElement Link to another patient resource that concerns the same actual person
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Patient.name.userequiredNameUse
http://hl7.org/fhir/ValueSet/name-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPatientIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
use-only-if-required-by-lawwarningPatient.genderSHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
: $this.length() = 0
vc-name-invarianterrorPatient.nameRequire one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
: (family.exists() and given.exists()) xor text.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test
... id Σ 0..1 id Should not be populated
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier An identifier for this patient
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... name SΣC 1..* HumanName Official name (i.e., legal name) of patient
vc-name-invariant: Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.

.... text Σ 0..1 string Use instead of `family` and `given` if the patient's name cannot be easily split into these elements
.... family SΣ 0..1 string Family name (often called 'Surname')
.... given SΣ 0..* string Parts of patient's name other than their family name that appear on photo ID; e.g., first and middle names
This repeating element order: Given Names appear in the correct order for presenting the name
.... prefix SΣ 0..* string Parts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
.... suffix SΣ 0..* string Parts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
.... period Σ 0..1 Period Time period when name was/is in use
... telecom Σ 0..* ContactPoint A contact detail for the individual
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... system ΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value ΣC 0..1 string The actual contact point details
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
.... period Σ 0..1 Period Time period when the contact point was/is in use
... gender ΣC 0..1 code Administrative gender
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.


use-only-if-required-by-law: SHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
... birthDate SΣ 0..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... address Σ 0..* Address An address for the individual
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code home | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ 0..1 code postal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... city ΣC 0..1 string Name of city, town etc.
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
Example General: Erewhon
.... district ΣC 0..1 string District name (aka county)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
Example General: Madison
.... state ΣC 0..1 string Sub-unit of country (abbreviations ok)
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
.... postalCode ΣC 0..1 string Postal code for area
vc-should-be-omitted-privacy: SHOULD be omitted to protect privacy and for data minimization.
Example General: 9132
.... country Σ 0..1 string Country (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ 0..1 Period Time period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... maritalStatus 0..1 CodeableConcept Marital (civil) status of a patient
Binding: Marital Status Codes (extensible): The domestic partnership status of a person.

... multipleBirth[x] 0..1 Whether patient is part of a multiple birth
.... multipleBirthBoolean boolean
.... multipleBirthInteger integer
... communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
.... preferred 0..1 boolean Language preference indicator
... generalPractitioner 0..* Reference(Organization | Practitioner | PractitionerRole) Patient's nominated primary care provider
... managingOrganization Σ 0..1 Reference(Organization) Organization that is the custodian of the patient record
... link ?!Σ 0..* BackboneElement Link to another patient resource that concerns the same actual person
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Patient.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.name.userequiredNameUse
http://hl7.org/fhir/ValueSet/name-use|4.0.1
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
from the FHIR Standard
Patient.address.typerequiredAddressType
http://hl7.org/fhir/ValueSet/address-type|4.0.1
from the FHIR Standard
Patient.maritalStatusextensibleMarital Status Codes
http://hl7.org/fhir/ValueSet/marital-status
from the FHIR Standard
Patient.contact.relationshipextensiblePatientContactRelationship
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPatientIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
use-only-if-required-by-lawwarningPatient.genderSHALL be omitted UNLESS required by law in jurisdiction where SHC is issued
: $this.length() = 0
vc-name-invarianterrorPatient.nameRequire one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` and `given` (https://www.nature.com/articles/d41586-020-02761-z).
: (family.exists() and given.exists()) xor text.exists()
vc-should-be-omitted-privacywarningPatient.telecom.value, Patient.address.city, Patient.address.district, Patient.address.state, Patient.address.postalCodeSHOULD be omitted to protect privacy and for data minimization.
: $this.length() = 0

This structure is derived from Patient

Summary

Mandatory: 1 element
Must-Support: 6 elements
Prohibited: 4 elements

 

Other representations of profile: CSV, Excel, Schematron