This page is part of the SMART Health Cards Vaccination and Testing, Release 1 | STU 1 (v0.6.2: STU 1 Ballot 1) based on FHIR R4. . For a full list of available versions, see the Directory of published versions
Defining URL: | http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-us-dm |
Version: | 0.6.2 |
Name: | SHCPatientUnitedStatesDM |
Title: | Patient Profile - United States - Data Minimization |
Status: | Active as of 2021-08-13T13:26:56+00:00 |
Definition: | Only elements necessary for Verifiers can be populated. For use in the United States. |
Publisher: | HL7 International - Public Health Work Group |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-us-dm
For representing the minimal information needed to identify a patient in a SMART Health Card.
Implementation instructions ← Start here!
Primary profile (DM) | Fallback Profiles (AD) | Scope |
---|---|---|
Patient - General | Fallback | For general use where no geographic-specific profile exists |
Patient - United States | Fallback | United States only |
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from SHCPatientGeneralDM
This structure is derived from SHCPatientGeneralDM
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | 0..* | SHCPatientGeneralDM | Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test | |
identifier | 0..0 | |||
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | 0..* | SHCPatientGeneralDM | Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test | |
name | SΣI | 1..1 | HumanName | Official name (i.e., legal name) of patient |
Slices for extension | 0..0 | |||
text | Σ | 0..1 | string | Use instead of `family` and `given` if the patient's name cannot be easily split these elements |
family | SΣ | 0..1 | string | Family name (often called 'Surname') |
given | SΣ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name |
prefix | Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name |
suffix | Σ | 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 |
birthDate | SΣ | 0..1 | date | The date of birth for the individual |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | 0..* | SHCPatientGeneralDM | Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test | |
name | ΣI | 1..1 | HumanName | Official name (i.e., legal name) of patient |
family | Σ | 0..1 | string | Family name (often called 'Surname') |
given | Σ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name |
birthDate | Σ | 0..1 | date | The date of birth for the individual |
Documentation for this format |
This structure is derived from SHCPatientGeneralDM
Differential View
This structure is derived from SHCPatientGeneralDM
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | 0..* | SHCPatientGeneralDM | Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test | |
identifier | 0..0 | |||
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Patient | 0..* | SHCPatientGeneralDM | Information about an individual receiving an individual receiving a vaccination or infectious disease-related laboratory test | |
name | SΣI | 1..1 | HumanName | Official name (i.e., legal name) of patient |
Slices for extension | 0..0 | |||
text | Σ | 0..1 | string | Use instead of `family` and `given` if the patient's name cannot be easily split these elements |
family | SΣ | 0..1 | string | Family name (often called 'Surname') |
given | SΣ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name |
prefix | Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name |
suffix | Σ | 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 |
birthDate | SΣ | 0..1 | date | The date of birth for the individual |
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
Patient.telecom.system | required | ContactPointSystem |
Patient.telecom.use | required | ContactPointUse |
Patient.address.use | required | AddressUse |
Patient.address.type | required | AddressType |
Patient.contact.relationship | extensible | PatientContactRelationship |
Patient.contact.gender | required | AdministrativeGender |
Patient.communication.language | preferred | CommonLanguages Max Binding: AllLanguages |
Patient.link.type | required | LinkType |
Id | Path | Details | Requirements |
dom-2 | Patient | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Patient | If 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-4 | Patient | If 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-5 | Patient | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Patient | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | Patient.name | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
vc-name-invariant | Patient.name | Require one of the key name elements to be filled. Allows for `text` for names that cannot be cleanly categorized into `family` or `given` (https://www.nature.com/articles/d41586-020-02761-z). : (family.exists() or given.exists()) xor text.exists() | |
ele-1 | Patient.name.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.name.family | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.name.given | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.name.prefix | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.name.suffix | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.name.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.telecom.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.telecom.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.telecom.system | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.telecom.value | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
vc-should-be-omitted-privacy | Patient.telecom.value | SHOULD be omitted to protect privacy and for data minimization. : $this.length() = 0 | |
ele-1 | Patient.telecom.use | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.telecom.rank | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.telecom.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.birthDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.address.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.address.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.address.use | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.address.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.address.city | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
vc-should-be-omitted-privacy | Patient.address.city | SHOULD be omitted to protect privacy and for data minimization. : $this.length() = 0 | |
ele-1 | Patient.address.district | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
vc-should-be-omitted-privacy | Patient.address.district | SHOULD be omitted to protect privacy and for data minimization. : $this.length() = 0 | |
ele-1 | Patient.address.state | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
vc-should-be-omitted-privacy | Patient.address.state | SHOULD be omitted to protect privacy and for data minimization. : $this.length() = 0 | |
ele-1 | Patient.address.postalCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
vc-should-be-omitted-privacy | Patient.address.postalCode | SHOULD be omitted to protect privacy and for data minimization. : $this.length() = 0 | |
ele-1 | Patient.address.country | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.address.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.contact.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.contact.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.contact.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.contact.relationship | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.name | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.telecom | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.address | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.gender | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.organization | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.contact.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.communication.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.communication.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.communication.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.communication.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.communication.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.communication.preferred | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.link.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.link.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.link.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Patient.link.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Patient.link.other | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Patient.link.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |