Da Vinci - Coverage Requirements Discovery
1.1.0-ballot - STU 1.1 United States of America flag

Da Vinci - Coverage Requirements Discovery, published by HL7 International - Financial Management Work Group. This is not an authorized publication; it is the continuous build for version 1.1.0-ballot). This version is based on the current content of https://github.com/HL7/davinci-crd/ and changes regularly. See the Directory of published versions

Resource Profile: PatientDident

Official URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient-deident Version: 1.1.0-ballot
Draft as of 2018-07-25 Computable Name: PatientDident

This profile specifies additional constraints on the US Core Patient profile to support coverage requirements discovery without revealing patient identity.

Usage


CRD Clients will use this profile to resolve references to Patient resources passed to CRD Services, including patientId context references when invoking the following CDS Hooks without patient-identifiable protected health information (PHI):

Refer to the section on PHI and Hook Invocation in the formal specification for more information.

Formal Views of Profile Content

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

This structure is derived from Patient

Summary

Mandatory: 1 element (1 nested mandatory element)
Must-Support: 8 elements
Prohibited: 15 elements

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*PatientCRD Deidentified Patient
... text 0..0
... identifier 0..0
... name 0..0
... gender S1..1codemale | female | other | unknown
... birthDate SI0..1dateThe date of birth for the individual
patient-deident-birthMonth: Birthdate can only include month if 2 years old or less
Max Length: 7
... deceased[x] 0..0
... address S0..*AddressAn address for the individual
.... type S0..1codepostal | physical | both
.... text 0..0
.... line 0..0
.... city 0..0
.... district 0..0
.... state S0..1stringSub-unit of country (abbreviations ok)
.... postalCode 0..0
.... country S0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period 0..0
... multipleBirth[x] 0..0
... photo 0..0
... contact 0..0
... communication S0..*BackboneElementA language which may be used to communicate with the patient about his or her health
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
... link 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*PatientCRD Deidentified Patient
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... active ?!Σ0..1booleanWhether this patient's record is in active use
... gender SΣ1..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate SΣI0..1dateThe date of birth for the individual
patient-deident-birthMonth: Birthdate can only include month if 2 years old or less
Max Length: 7
... address SΣ0..*AddressAn address for the individual
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


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


Example General: both
.... state SΣ0..1stringSub-unit of country (abbreviations ok)
.... country SΣ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (extensible): The domestic partnership status of a person.

... communication S0..*BackboneElementA language which may be used to communicate with the patient about his or her health
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

.... preferred 0..1booleanLanguage preference indicator
... generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*PatientCRD Deidentified Patient
... gender Σ1..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate ΣI0..1dateThe date of birth for the individual
patient-deident-birthMonth: Birthdate can only include month if 2 years old or less
Max Length: 7
... address Σ0..*AddressAn address for the individual
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).

.... state Σ0..1stringSub-unit of country (abbreviations ok)
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.


doco Documentation for this format

This structure is derived from Patient

Summary

Mandatory: 1 element (1 nested mandatory element)
Must-Support: 8 elements
Prohibited: 15 elements

Differential View

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*PatientCRD Deidentified Patient
... text 0..0
... identifier 0..0
... name 0..0
... gender S1..1codemale | female | other | unknown
... birthDate SI0..1dateThe date of birth for the individual
patient-deident-birthMonth: Birthdate can only include month if 2 years old or less
Max Length: 7
... deceased[x] 0..0
... address S0..*AddressAn address for the individual
.... type S0..1codepostal | physical | both
.... text 0..0
.... line 0..0
.... city 0..0
.... district 0..0
.... state S0..1stringSub-unit of country (abbreviations ok)
.... postalCode 0..0
.... country S0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period 0..0
... multipleBirth[x] 0..0
... photo 0..0
... contact 0..0
... communication S0..*BackboneElementA language which may be used to communicate with the patient about his or her health
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
... link 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*PatientCRD Deidentified Patient
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... active ?!Σ0..1booleanWhether this patient's record is in active use
... gender SΣ1..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate SΣI0..1dateThe date of birth for the individual
patient-deident-birthMonth: Birthdate can only include month if 2 years old or less
Max Length: 7
... address SΣ0..*AddressAn address for the individual
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


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


Example General: both
.... state SΣ0..1stringSub-unit of country (abbreviations ok)
.... country SΣ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (extensible): The domestic partnership status of a person.

... communication S0..*BackboneElementA language which may be used to communicate with the patient about his or her health
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

.... preferred 0..1booleanLanguage preference indicator
... generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
Patient.languagepreferredCommonLanguages
Max Binding: AllLanguages
Patient.genderrequiredAdministrativeGender
Patient.address.userequiredAddressUse
Patient.address.typerequiredAddressType
Patient.maritalStatusextensibleMarital Status Codes
Patient.contact.relationshipextensiblePatientContactRelationship
Patient.contact.genderrequiredAdministrativeGender
Patient.communication.languagepreferredCommonLanguages
Max Binding: AllLanguages
Patient.link.typerequiredLinkType

Constraints

IdGradePathDetailsRequirements
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-1errorPatient.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.activeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.genderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.birthDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
patient-deident-birthMontherrorPatient.birthDateBirthdate can only include month if 2 years old or less
: true or ((today() - $this) <= 24 months) or value.length()=4
ele-1errorPatient.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.address.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.address.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.address.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.address.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.address.stateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.address.countryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.maritalStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.contact.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.contact.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.contact.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.contact.relationshipAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.telecomAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.genderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.organizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.contact.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.communicationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.communication.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.communication.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.communication.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.communication.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.communication.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.communication.preferredAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.generalPractitionerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.managingOrganizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.link.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.link.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.link.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPatient.link.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPatient.link.otherAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPatient.link.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())