Common Data Models Harmonization
1.0.0 - STU 1 Publication

Common Data Models Harmonization, published by HL7 International - Biomedical Research and Regulation Work Group. This is not an authorized publication; it is the continuous build for version 1.0.0). This version is based on the current content of https://github.com/HL7/cdmh/ and changes regularly. See the Directory of published versions

Resource Profile: CdmhPatient

Defining URL:http://hl7.org/fhir/us/cdmh/StructureDefinition/cdmh-patient
Version:1.0.0
Name:CdmhPatient
Title:CDMH Patient
Status:Draft as of 9/1/19
Definition:

This is the Patient Resource profile for the IG.

Publisher:HL7 International - Biomedical Research and Regulation Work Group
Copyright:

Used by permission of HL7, all rights reserved Creative Commons License

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/us/cdmh/StructureDefinition/cdmh-patient

Formal Views of Profile Content

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

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
Patient.languagepreferredCommonLanguages
Max Binding: AllLanguages
Patient.identifier.userequiredIdentifierUse
Patient.identifier.typeextensibleIdentifier Type Codes
Patient.name.userequiredNameUse
Patient.telecom.systemrequiredContactPointSystem
Patient.telecom.userequiredContactPointUse
Patient.genderrequiredAdministrativeGender
Patient.address.userequiredAddressUse
Patient.address.typerequiredAddressType
Patient.address.stateextensibleUspsTwoLetterAlphabeticCodes
Patient.maritalStatusextensibleMarital Status Codes
Patient.contact.relationshipextensiblePatientContactRelationship
Patient.contact.genderrequiredAdministrativeGender
Patient.communication.languageextensibleLanguageCodesWithLanguageAndOptionallyARegionModifier
Patient.link.typerequiredLinkType

Constraints

IdPathDetailsRequirements
dom-2PatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3PatientIf 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-4PatientIf 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-5PatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6PatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1Patient.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:raceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:raceMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:ethnicityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:ethnicityMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:birthsexAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:birthsexMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:genderIdentityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:genderIdentityMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:sexualOrientationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:sexualOrientationMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:pcornet-raceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:pcornet-raceMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:pcornet-ethnicityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:pcornet-ethnicityMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.extension:birthTimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.extension:birthTimeMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.identifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.identifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.identifier.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.identifier.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.identifier.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.identifier.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.identifier.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.identifier.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.activeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
us-core-8Patient.nameEither Patient.name.given and/or Patient.name.family SHALL be present or a Data Absent Reason Extension SHALL be present.
: (family.exists() or given.exists()) xor extension.where(url='http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()
ele-1Patient.name.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.name.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.name.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.name.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.name.familyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.name.givenAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.name.prefixAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.name.suffixAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.name.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.telecomAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.telecom.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.telecom.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.telecom.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.telecom.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.telecom.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.telecom.rankAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.telecom.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.genderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.birthDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.deceased[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.address.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.address.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.lineAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.cityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.districtAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.stateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.postalCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.countryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.address.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.maritalStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.multipleBirth[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.photoAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
pat-1Patient.contactSHALL at least contain a contact's details or a reference to an organization
: name.exists() or telecom.exists() or address.exists() or organization.exists()
ele-1Patient.contact.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.contact.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.contact.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.contact.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.contact.relationshipAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contact.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contact.telecomAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contact.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contact.genderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contact.organizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.contact.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.communicationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.communication.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.communication.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.communication.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.communication.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.communication.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.communication.preferredAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.generalPractitionerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.managingOrganizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.link.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.link.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.link.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Patient.link.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Patient.link.otherAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Patient.link.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())