De-identified, Anonymized FHIR Profiles Library
1.0.0-ballot - STU 1 Ballot United States of America flag

This page is part of the De-identified, Anonymized FHIR Profiles Library (DAPL) IG (v1.0.0-ballot: STU 1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. No current official version has been published yet. For a full list of available versions, see the Directory of published versions

Resource Profile: DAPL De-identified Patient

Official URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-deidentified-patient Version: 1.0.0-ballot
Standards status: Trial-use Maturity Level: 2 Computable Name: DAPLDeIdentifiedPatient

This Patient profile represents a deidentified Patient

Introduction

This profile is used to represent de-identified patient information. The de-identification process has to remove all data elements not explicitly identified as "SUPPORTED" in the profile.

The HHS De-identification Guidance is to be followed to ensure appropriate level of de-identification is performed.

According to the HHS guidance the following data elements have to be removed or de-identified

  • Patient Name
  • Address that is more specific than a state

    • First 3 digits of Zipcodes can be included if the population of all zipcodes starting with the same 3 digits are > 20000 people, in all other cases, the zipcodes have to be masked to 00000.
  • All dates should not have a precision of more than the year. This means month and day cannot be included.
  • Demographics including birthdate, deceased indicator
  • Patient contact details such as telephone numbers, fax, email, URLs,
  • Patient personal identifiers such as SSN, Drivers License,
  • Business identifiers such as MRNs, certificate numbers, Account numbers
  • Biometrics such as fingerprints, photos

In FHIR Resources, text elements which provide human readable information to the providers may be generated using programs and tools from the data present within the resource. For e.g a Patient resource text element may contain information such as the full name, Gender and Date of Birth. This type of information will enable identification of the individuals. In order to avoid inadvertent revealing of PII/PHI, text elements cannot be included in the De-identified FHIR resource and the submission will be rejected when text elements are present by the validation process.

Age Computation

The Data Submitter has to compute the age based as of December 31st of the previous year for most use cases related to federal reporting such as UDS+.

Id Generation

The original patient resource id should not be included in the De-identified patient instance. Instead a new id should be created and provided as part of the FHIR resource. This Data Submitter should be capable of using the generated id to relink the data to the original patient. All resource references to the Patient submitted as part of the data exchange should refer to newly generated de-identified id.

Usage of Data Absent Reason Extension

For federal reporting, the patient data is de-identified and in the process zip codes may be masked to a value of "00000". In these cases the dataAbsentReason extension must be added to identify that the data is "masked". If the zip code is not known, a value of "00000" must be sent with a dataAbsentReason of "unknown". If the zip code is outside the country, a value of "00000" must be sent with a dataAbsentReason of "unsupported".

Sex Additional Constraints

NullFlavors may not allowed for sex reporting in some use cases such as UDS+ even though they are allowed in US Core.

Race and Ethnicity Additional Constraints

US Core allows Race and Ethnicity to be described as only text or rolled up to the OMB categories, however federal agencies may mandate reporting detailed race and ethnicity.

Sexual Orientation Additional Constraints

Health Centers which have not implemented the methods to capture Sexual Orientation, should use the null flavor coded value of "NASK" specifically.

Gender Identity Additional Constraints

Health Centers which have not implemented the methods to capture Gender Identity, should use the null flavor coded value of "NASK" specifically.

Examples

Examples of identifiable data and its corresponding de-identifiable data are present in the FHIR Artifacts examples

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient 0..* Patient DAPL Deidentified Patient
... id SΣ 0..1 id The patient identifier generated by DARTS deidentification service
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:us-core-race SC 0..1 (Complex) US Core Race Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
Constraints: us-core-23
.... extension:dapl-ethnicty S 0..1 (Complex) Indicates the ethnicity of the Patient.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity profiled by http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-ethnicity-extension
.... extension:dapl-sex S 0..1 code Indicates the sex of the Patient.
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-sex-extension
Binding: DAPL Sex Codes (required): The set of codes to be used for sex reporting.
.... extension:dapl-age-extension S 1..1 Quantity, Range Age of the Patient computed using birthDate and the reporting period reference
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-age-extension
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... deceased[x] ?!SΣC 0..1 Indicates if the Patient is deceased, it can be either a Boolean or a Date with a precision of year only.
Constraints: dapl-date-1, dapl-date-1a
.... deceasedDateTime dateTime S
.... deceasedBoolean boolean S
... address SΣ 1..1 Address Included only to support zip code
.... use ?!Σ 0..1 code home | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.
Example General: home
.... postalCode SΣC 1..1 string ZipCode must be included in the profile
Constraints: dapl-potalCode-1
Example General: 9132
..... Slices for extension Content/Rules for all slices
...... extension:dataAbsentReason S 0..1 (Complex) Reason why the data is not present
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/data-absent-reason"
....... value[x] S 1..1 code Value of extension
Binding: DataAbsentReason (required)
... communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... language S 1..1 CodeableConcept Language must be included in the profile
Binding: Languages (extensible): The set of languages that the patient uses

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.address.postalCode.​extension:dataAbsentReason.​value[x] Base required DataAbsentReason 📦4.0.1 FHIR Std.
Patient.communication.​language Base extensible Languages 📦1.0.0 THO v7.1
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dapl-date-1 error Patient.deceased[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is dateTime implies $this.toString().length() = 4
dapl-date-1a error Patient.deceased[x] All dateTime data elements should have valid year > 1900 $this is dateTime implies $this.toString() >= '1900'
dapl-potalCode-1 error Patient.address.postalCode De-identified Zipcodes can contain first 3 digits followed by 00 in the last two digits or have to be masked with 00000. If the extended ZipCode format is used the resulting format should be #####-####. $this.matches('^[0-9]{3}[0]{2}(-[0-9]{4})?$')
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error 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 error 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 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
us-core-23 error Patient.extension:us-core-race If "ASKU" or "UNK" are present, then no other OMB race categories can be present. extension.where(url = 'ombCategory').value.where(code in 'ASKU'|'UNK').exists() implies extension.where(url = 'ombCategory').count() = 1

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient 0..* Patient DAPL Deidentified Patient
... id S 0..1 id The patient identifier generated by DARTS deidentification service
... text 0..0 Cannot include any text in the resource as part of the deidentified data.
... contained 0..0 Cannot include any contained resources in the resource as part of the deidentified data.
.... extension:us-core-race S 0..1 (Complex) US Core Race Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
.... extension:dapl-ethnicty S 0..1 (Complex) Indicates the ethnicity of the Patient.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity profiled by http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-ethnicity-extension
.... extension:dapl-sex S 0..1 code Indicates the sex of the Patient.
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-sex-extension
Binding: DAPL Sex Codes (required): The set of codes to be used for sex reporting.
.... extension:dapl-age-extension S 1..1 Quantity, Range Age of the Patient computed using birthDate and the reporting period reference
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-age-extension
... identifier 0..0 Cannot include any identifier in the resource as part of the deidentified data.
... name 0..0 Cannot include any name in the resource as part of the deidentified data.
... telecom 0..0 Cannot include any telecom information in the resource as part of the deidentified data.
... birthDate 0..0 Cannot include any date of birth information in the resource as part of the deidentified data.
... deceased[x] SC 0..1 Indicates if the Patient is deceased, it can be either a Boolean or a Date with a precision of year only.
Constraints: dapl-date-1, dapl-date-1a
.... deceasedDateTime dateTime S
.... deceasedBoolean boolean S
... address S 1..1 Address Included only to support zip code
.... text 0..0 Text cannot be included in the profile
.... line 0..0 Street names cannot be included in the profile
.... postalCode SC 1..1 string ZipCode must be included in the profile
Constraints: dapl-potalCode-1
..... Slices for extension Content/Rules for all slices
...... extension:dataAbsentReason S 0..1 (Complex) Reason why the data is not present
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
....... value[x] S 1..1 code Value of extension
... maritalStatus 0..0 Cannot include information in deidentified resources
... multipleBirth[x] 0..0 Cannot include information in deidentified resources
... photo 0..0 Cannot include information in deidentified resources
... contact 0..0 Cannot include information in deidentified resources
... communication
.... language S 1..1 CodeableConcept Language must be included in the profile
Binding: Languages (extensible): The set of languages that the patient uses
... generalPractitioner 0..0 Cannot include information in deidentified resources
... managingOrganization 0..0 Cannot include information in deidentified resources
... link 0..0 Cannot include information in deidentified resources

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Patient.communication.​language Base extensible Languages 📦1.0.0 THO v7.1

Constraints

Id Grade Path(s) Description Expression
dapl-date-1 error Patient.deceased[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is dateTime implies $this.toString().length() = 4
dapl-date-1a error Patient.deceased[x] All dateTime data elements should have valid year > 1900 $this is dateTime implies $this.toString() >= '1900'
dapl-potalCode-1 error Patient.address.postalCode De-identified Zipcodes can contain first 3 digits followed by 00 in the last two digits or have to be masked with 00000. If the extended ZipCode format is used the resulting format should be #####-####. $this.matches('^[0-9]{3}[0]{2}(-[0-9]{4})?$')
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient 0..* Patient DAPL Deidentified Patient
... id SΣ 0..1 id The patient identifier generated by DARTS deidentification service
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:us-core-race SC 0..1 (Complex) US Core Race Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
Constraints: us-core-23
.... extension:dapl-ethnicty S 0..1 (Complex) Indicates the ethnicity of the Patient.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity profiled by http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-ethnicity-extension
.... extension:dapl-sex S 0..1 code Indicates the sex of the Patient.
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-sex-extension
Binding: DAPL Sex Codes (required): The set of codes to be used for sex reporting.
.... extension:dapl-age-extension S 1..1 Quantity, Range Age of the Patient computed using birthDate and the reporting period reference
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-age-extension
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... gender Σ 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
... deceased[x] ?!SΣC 0..1 Indicates if the Patient is deceased, it can be either a Boolean or a Date with a precision of year only.
Constraints: dapl-date-1, dapl-date-1a
.... deceasedDateTime dateTime S
.... deceasedBoolean boolean S
... address SΣ 1..1 Address Included only to support zip code
.... 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 Σ 0..1 string Name of city, town etc.
Example General: Erewhon
.... district Σ 0..1 string District name (aka county)
Example General: Madison
.... state Σ 0..1 string Sub-unit of country (abbreviations ok)
.... postalCode SΣC 1..1 string ZipCode must be included in the profile
Constraints: dapl-potalCode-1
Example General: 9132
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:dataAbsentReason S 0..1 (Complex) Reason why the data is not present
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
....... id 0..1 id Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/data-absent-reason"
....... value[x] S 1..1 code Value of extension
Binding: DataAbsentReason (required)
..... value 0..1 string Primitive value for string
Max Length:1048576
.... 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"}
... 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 S 1..1 CodeableConcept Language must be included in the profile
Binding: Languages (extensible): The set of languages that the patient uses
.... preferred 0..1 boolean Language preference indicator

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.address.type Base required AddressType 📍4.0.1 FHIR Std.
Patient.address.postalCode.​extension:dataAbsentReason.​value[x] Base required DataAbsentReason 📦4.0.1 FHIR Std.
Patient.contact.relationship Base extensible Patient Contact Relationship 📍4.0.1 FHIR Std.
Patient.contact.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Patient.communication.​language Base extensible Languages 📦1.0.0 THO v7.1
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dapl-date-1 error Patient.deceased[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is dateTime implies $this.toString().length() = 4
dapl-date-1a error Patient.deceased[x] All dateTime data elements should have valid year > 1900 $this is dateTime implies $this.toString() >= '1900'
dapl-potalCode-1 error Patient.address.postalCode De-identified Zipcodes can contain first 3 digits followed by 00 in the last two digits or have to be masked with 00000. If the extended ZipCode format is used the resulting format should be #####-####. $this.matches('^[0-9]{3}[0]{2}(-[0-9]{4})?$')
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error 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 error 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 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
us-core-23 error Patient.extension:us-core-race If "ASKU" or "UNK" are present, then no other OMB race categories can be present. extension.where(url = 'ombCategory').value.where(code in 'ASKU'|'UNK').exists() implies extension.where(url = 'ombCategory').count() = 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient 0..* Patient DAPL Deidentified Patient
... id SΣ 0..1 id The patient identifier generated by DARTS deidentification service
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:us-core-race SC 0..1 (Complex) US Core Race Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
Constraints: us-core-23
.... extension:dapl-ethnicty S 0..1 (Complex) Indicates the ethnicity of the Patient.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity profiled by http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-ethnicity-extension
.... extension:dapl-sex S 0..1 code Indicates the sex of the Patient.
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-sex-extension
Binding: DAPL Sex Codes (required): The set of codes to be used for sex reporting.
.... extension:dapl-age-extension S 1..1 Quantity, Range Age of the Patient computed using birthDate and the reporting period reference
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-age-extension
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... deceased[x] ?!SΣC 0..1 Indicates if the Patient is deceased, it can be either a Boolean or a Date with a precision of year only.
Constraints: dapl-date-1, dapl-date-1a
.... deceasedDateTime dateTime S
.... deceasedBoolean boolean S
... address SΣ 1..1 Address Included only to support zip code
.... use ?!Σ 0..1 code home | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.
Example General: home
.... postalCode SΣC 1..1 string ZipCode must be included in the profile
Constraints: dapl-potalCode-1
Example General: 9132
..... Slices for extension Content/Rules for all slices
...... extension:dataAbsentReason S 0..1 (Complex) Reason why the data is not present
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/data-absent-reason"
....... value[x] S 1..1 code Value of extension
Binding: DataAbsentReason (required)
... communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... language S 1..1 CodeableConcept Language must be included in the profile
Binding: Languages (extensible): The set of languages that the patient uses

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.address.postalCode.​extension:dataAbsentReason.​value[x] Base required DataAbsentReason 📦4.0.1 FHIR Std.
Patient.communication.​language Base extensible Languages 📦1.0.0 THO v7.1
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dapl-date-1 error Patient.deceased[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is dateTime implies $this.toString().length() = 4
dapl-date-1a error Patient.deceased[x] All dateTime data elements should have valid year > 1900 $this is dateTime implies $this.toString() >= '1900'
dapl-potalCode-1 error Patient.address.postalCode De-identified Zipcodes can contain first 3 digits followed by 00 in the last two digits or have to be masked with 00000. If the extended ZipCode format is used the resulting format should be #####-####. $this.matches('^[0-9]{3}[0]{2}(-[0-9]{4})?$')
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error 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 error 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 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
us-core-23 error Patient.extension:us-core-race If "ASKU" or "UNK" are present, then no other OMB race categories can be present. extension.where(url = 'ombCategory').value.where(code in 'ASKU'|'UNK').exists() implies extension.where(url = 'ombCategory').count() = 1

Differential View

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient 0..* Patient DAPL Deidentified Patient
... id S 0..1 id The patient identifier generated by DARTS deidentification service
... text 0..0 Cannot include any text in the resource as part of the deidentified data.
... contained 0..0 Cannot include any contained resources in the resource as part of the deidentified data.
.... extension:us-core-race S 0..1 (Complex) US Core Race Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
.... extension:dapl-ethnicty S 0..1 (Complex) Indicates the ethnicity of the Patient.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity profiled by http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-ethnicity-extension
.... extension:dapl-sex S 0..1 code Indicates the sex of the Patient.
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-sex-extension
Binding: DAPL Sex Codes (required): The set of codes to be used for sex reporting.
.... extension:dapl-age-extension S 1..1 Quantity, Range Age of the Patient computed using birthDate and the reporting period reference
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-age-extension
... identifier 0..0 Cannot include any identifier in the resource as part of the deidentified data.
... name 0..0 Cannot include any name in the resource as part of the deidentified data.
... telecom 0..0 Cannot include any telecom information in the resource as part of the deidentified data.
... birthDate 0..0 Cannot include any date of birth information in the resource as part of the deidentified data.
... deceased[x] SC 0..1 Indicates if the Patient is deceased, it can be either a Boolean or a Date with a precision of year only.
Constraints: dapl-date-1, dapl-date-1a
.... deceasedDateTime dateTime S
.... deceasedBoolean boolean S
... address S 1..1 Address Included only to support zip code
.... text 0..0 Text cannot be included in the profile
.... line 0..0 Street names cannot be included in the profile
.... postalCode SC 1..1 string ZipCode must be included in the profile
Constraints: dapl-potalCode-1
..... Slices for extension Content/Rules for all slices
...... extension:dataAbsentReason S 0..1 (Complex) Reason why the data is not present
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
....... value[x] S 1..1 code Value of extension
... maritalStatus 0..0 Cannot include information in deidentified resources
... multipleBirth[x] 0..0 Cannot include information in deidentified resources
... photo 0..0 Cannot include information in deidentified resources
... contact 0..0 Cannot include information in deidentified resources
... communication
.... language S 1..1 CodeableConcept Language must be included in the profile
Binding: Languages (extensible): The set of languages that the patient uses
... generalPractitioner 0..0 Cannot include information in deidentified resources
... managingOrganization 0..0 Cannot include information in deidentified resources
... link 0..0 Cannot include information in deidentified resources

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Patient.communication.​language Base extensible Languages 📦1.0.0 THO v7.1

Constraints

Id Grade Path(s) Description Expression
dapl-date-1 error Patient.deceased[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is dateTime implies $this.toString().length() = 4
dapl-date-1a error Patient.deceased[x] All dateTime data elements should have valid year > 1900 $this is dateTime implies $this.toString() >= '1900'
dapl-potalCode-1 error Patient.address.postalCode De-identified Zipcodes can contain first 3 digits followed by 00 in the last two digits or have to be masked with 00000. If the extended ZipCode format is used the resulting format should be #####-####. $this.matches('^[0-9]{3}[0]{2}(-[0-9]{4})?$')

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient 0..* Patient DAPL Deidentified Patient
... id SΣ 0..1 id The patient identifier generated by DARTS deidentification service
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:us-core-race SC 0..1 (Complex) US Core Race Extension
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
Constraints: us-core-23
.... extension:dapl-ethnicty S 0..1 (Complex) Indicates the ethnicity of the Patient.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity profiled by http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-ethnicity-extension
.... extension:dapl-sex S 0..1 code Indicates the sex of the Patient.
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-sex-extension
Binding: DAPL Sex Codes (required): The set of codes to be used for sex reporting.
.... extension:dapl-age-extension S 1..1 Quantity, Range Age of the Patient computed using birthDate and the reporting period reference
URL: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-age-extension
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... gender Σ 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
... deceased[x] ?!SΣC 0..1 Indicates if the Patient is deceased, it can be either a Boolean or a Date with a precision of year only.
Constraints: dapl-date-1, dapl-date-1a
.... deceasedDateTime dateTime S
.... deceasedBoolean boolean S
... address SΣ 1..1 Address Included only to support zip code
.... 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 Σ 0..1 string Name of city, town etc.
Example General: Erewhon
.... district Σ 0..1 string District name (aka county)
Example General: Madison
.... state Σ 0..1 string Sub-unit of country (abbreviations ok)
.... postalCode SΣC 1..1 string ZipCode must be included in the profile
Constraints: dapl-potalCode-1
Example General: 9132
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:dataAbsentReason S 0..1 (Complex) Reason why the data is not present
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
....... id 0..1 id Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/data-absent-reason"
....... value[x] S 1..1 code Value of extension
Binding: DataAbsentReason (required)
..... value 0..1 string Primitive value for string
Max Length:1048576
.... 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"}
... 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 S 1..1 CodeableConcept Language must be included in the profile
Binding: Languages (extensible): The set of languages that the patient uses
.... preferred 0..1 boolean Language preference indicator

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.address.type Base required AddressType 📍4.0.1 FHIR Std.
Patient.address.postalCode.​extension:dataAbsentReason.​value[x] Base required DataAbsentReason 📦4.0.1 FHIR Std.
Patient.contact.relationship Base extensible Patient Contact Relationship 📍4.0.1 FHIR Std.
Patient.contact.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Patient.communication.​language Base extensible Languages 📦1.0.0 THO v7.1
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dapl-date-1 error Patient.deceased[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is dateTime implies $this.toString().length() = 4
dapl-date-1a error Patient.deceased[x] All dateTime data elements should have valid year > 1900 $this is dateTime implies $this.toString() >= '1900'
dapl-potalCode-1 error Patient.address.postalCode De-identified Zipcodes can contain first 3 digits followed by 00 in the last two digits or have to be masked with 00000. If the extended ZipCode format is used the resulting format should be #####-####. $this.matches('^[0-9]{3}[0]{2}(-[0-9]{4})?$')
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error 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 error 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 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
us-core-23 error Patient.extension:us-core-race If "ASKU" or "UNK" are present, then no other OMB race categories can be present. extension.where(url = 'ombCategory').value.where(code in 'ASKU'|'UNK').exists() implies extension.where(url = 'ombCategory').count() = 1

 

Other representations of profile: CSV, Excel, Schematron