HRSA 2024 Uniform Data System (UDS) Patient Level Submission (PLS) (UDS+) FHIR IG
2.0.0 - STU2 Release 1 - Standard for Trial-Use International flag

HRSA 2024 Uniform Data System (UDS) Patient Level Submission (PLS) (UDS+) FHIR IG, published by HRSA BPHC. This guide is not an authorized publication; it is the continuous build for version 2.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/drajer-health/uds-plus/ and changes regularly. See the Directory of published versions

Resource Profile: De-Identified UDS Plus Diagnosis

Official URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-diagnosis Version: 2.0.0
Standards status: Trial-use Maturity Level: 2 Computable Name: UDSPlusDiagnosis

The UDS+ profile is based on the Condition resource and establishes the core elements, extensions, vocabularies and value sets for representing Diagnosis for UDS+ program.

Introduction

This profile is used to represent de-identified diagnosis 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, dates should not have a precision of more than the year. This means month and day cannot be included. This includes diagnosis dates, visit dates, onset dates etc.

In FHIR Resources, text elements and reference.display 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 Condition resource text element may contain information such as the visit date, onset date. 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.

Ids and References

The original Condition resource id should not be included in the De-identified condition 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 Condition. All resource references to the Condition submitted as part of the UDS+ report should refer to newly generated id.

Resource references cannot contain text element as it may contain PHI/PII. The text element for following references are not allowed

  • subject
  • encounter

Date Truncation

The Data Submitter has to truncate the following dates to only have a precision of year

  • onsetDate
  • abatementDate
  • recordedDate

Examples

Examples of identifiable data and its corresponding de-identifiable data is present in Reporting Guidance.

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: doco
Condition C 0..* Condition De-Identified UDS Plus Diagnosis
Constraints: con-3, con-4, con-5
Condition.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Condition identifier created by the health center to send data to UDS+ Data Receiver
Condition.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Condition.Slices for extension Content/Rules for all slices
Condition.Slices for extension.extension:uds-plus-age-extension This element must be supported. 0..1 Quantity Age of the Patient computed using birthDate.
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-age-extension
Condition.Slices for extension.extension:assertedDate This element must be supported. C 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
Constraints: uds-plus-diag-1, uds-plus-diag-1a, uds-plus-diag-1b
Condition.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Condition.clinicalStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis.
Condition.verificationStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis.
Condition.category This element must be supported. 1..1 CodeableConcept problem-list-item | encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.
Condition.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): The set of codes indicating the diagnosis
Condition.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who has the condition?
Condition.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Condition.onset[x] This element must be supported. This element is included in summaries. C 0..1 Estimated or actual date, date-time, or age
Constraints: uds-plus-diag-2, uds-plus-diag-2a, uds-plus-diag-2b, uds-plus-diag-3, uds-plus-diag-3a, uds-plus-diag-3b, uds-plus-diag-4, uds-plus-diag-4a, uds-plus-diag-4b
Condition.onset[x].onsetDateTime dateTime This target must be supported.
Condition.onset[x].onsetPeriod Period
Condition.abatement[x] This element must be supported. C 0..1 When in resolution/remission
Constraints: uds-plus-diag-5, uds-plus-diag-5a, uds-plus-diag-5b, uds-plus-diag-6, uds-plus-diag-6a, uds-plus-diag-6b, uds-plus-diag-7, uds-plus-diag-7a, uds-plus-diag-7b
Condition.abatement[x].abatementDateTime dateTime
Condition.abatement[x].abatementPeriod Period
Condition.recordedDate This element must be supported. This element is included in summaries. C 0..1 dateTime Date record was first recorded
Constraints: uds-plus-diag-8, uds-plus-diag-8a, uds-plus-diag-8b

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Condition.clinicalStatus Base required Condition Clinical Status Codes 📍4.0.1 FHIR Std.
Condition.verificationStatus Base required ConditionVerificationStatus 📍4.0.1 FHIR Std.
Condition.category Base extensible Condition Category Codes 📍4.0.1 FHIR Std.
Condition.code Base extensible US Core Condition Codes 📦6.1.0 US Core v6.1

Constraints

Id Grade Path(s) Description Expression
con-3 best practice Condition Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4 error Condition If condition is abated, then clinicalStatus must be either inactive, resolved, or remission abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5 error Condition Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2 error Condition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Condition 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 Condition 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 Condition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Condition 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()
uds-plus-diag-1 error Condition.extension:assertedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString().length() = 4
uds-plus-diag-1a error Condition.extension:assertedDate All dateTime data elements should have valid year > 1900 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() >= '1900'
uds-plus-diag-1b error Condition.extension:assertedDate All dateTime data elements should have valid year < 2030 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() <= '2030'
uds-plus-diag-2 error Condition.onset[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-2a error Condition.onset[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-2b error Condition.onset[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-3 error Condition.onset[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-3a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-3b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-4 error Condition.onset[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-4a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-4b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-5 error Condition.abatement[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-5a error Condition.abatement[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-5b error Condition.abatement[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-6 error Condition.abatement[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-6a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-6b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-7 error Condition.abatement[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-7a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-7b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-8 error Condition.recordedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.toString().length() = 4
uds-plus-diag-8a error Condition.recordedDate All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-8b error Condition.recordedDate All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Condition 0..* Condition De-Identified UDS Plus Diagnosis
Condition.id This element must be supported. 0..1 id The de-identified Condition identifier created by the health center to send data to UDS+ Data Receiver
Condition.text 0..0 Cannot include any text in the resource as part of the de-identified data.
Condition.contained 0..0 Cannot include any contained resources in the resource as part of the de-identified data.
Condition.Slices for extension.extension:uds-plus-age-extension This element must be supported. 0..1 Quantity Age of the Patient computed using birthDate.
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-age-extension
Condition.Slices for extension.extension:assertedDate This element must be supported. C 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
Constraints: uds-plus-diag-1, uds-plus-diag-1a, uds-plus-diag-1b
Condition.clinicalStatus This element must be supported. 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Condition.verificationStatus This element must be supported. 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Condition.category This element must be supported. 1..1 CodeableConcept problem-list-item | encounter-diagnosis
Condition.code This element must be supported. 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): The set of codes indicating the diagnosis
Condition.subject This element must be supported. 1..1 Reference(De-Identified UDS Plus Patient) Who has the condition?
Condition.subject.display 0..0 Text alternative for the resource
Condition.encounter This element must be supported. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Condition.encounter.display 0..0 Text alternative for the resource
Condition.onset[x] This element must be supported. C 0..1 Estimated or actual date, date-time, or age
Constraints: uds-plus-diag-2, uds-plus-diag-2a, uds-plus-diag-2b, uds-plus-diag-3, uds-plus-diag-3a, uds-plus-diag-3b, uds-plus-diag-4, uds-plus-diag-4a, uds-plus-diag-4b
Condition.onset[x].onsetDateTime dateTime This target must be supported.
Condition.onset[x].onsetPeriod Period
Condition.abatement[x] This element must be supported. C 0..1 When in resolution/remission
Constraints: uds-plus-diag-5, uds-plus-diag-5a, uds-plus-diag-5b, uds-plus-diag-6, uds-plus-diag-6a, uds-plus-diag-6b, uds-plus-diag-7, uds-plus-diag-7a, uds-plus-diag-7b
Condition.abatement[x].abatementDateTime dateTime
Condition.abatement[x].abatementPeriod Period
Condition.recordedDate This element must be supported. C 0..1 dateTime Date record was first recorded
Constraints: uds-plus-diag-8, uds-plus-diag-8a, uds-plus-diag-8b
Condition.recorder
Condition.recorder.display 0..0 Text alternative for the resource
Condition.asserter
Condition.asserter.display 0..0 Text alternative for the resource
Condition.note 0..0 Additional information about the Condition

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Condition.code Base extensible US Core Condition Codes 📦6.1.0 US Core v6.1

Constraints

Id Grade Path(s) Description Expression
uds-plus-diag-1 error Condition.extension:assertedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString().length() = 4
uds-plus-diag-1a error Condition.extension:assertedDate All dateTime data elements should have valid year > 1900 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() >= '1900'
uds-plus-diag-1b error Condition.extension:assertedDate All dateTime data elements should have valid year < 2030 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() <= '2030'
uds-plus-diag-2 error Condition.onset[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-2a error Condition.onset[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-2b error Condition.onset[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-3 error Condition.onset[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-3a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-3b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-4 error Condition.onset[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-4a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-4b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-5 error Condition.abatement[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-5a error Condition.abatement[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-5b error Condition.abatement[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-6 error Condition.abatement[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-6a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-6b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-7 error Condition.abatement[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-7a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-7b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-8 error Condition.recordedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.toString().length() = 4
uds-plus-diag-8a error Condition.recordedDate All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-8b error Condition.recordedDate All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Condition C 0..* Condition De-Identified UDS Plus Diagnosis
Constraints: con-3, con-4, con-5
Condition.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Condition identifier created by the health center to send data to UDS+ Data Receiver
Condition.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Condition.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Condition.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Condition.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Condition.Slices for extension.extension:uds-plus-age-extension This element must be supported. 0..1 Quantity Age of the Patient computed using birthDate.
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-age-extension
Condition.Slices for extension.extension:assertedDate This element must be supported. C 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
Constraints: uds-plus-diag-1, uds-plus-diag-1a, uds-plus-diag-1b
Condition.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Condition.identifier This element is included in summaries. 0..* Identifier External Ids for this condition
Condition.clinicalStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis.
Condition.verificationStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis.
Condition.category This element must be supported. 1..1 CodeableConcept problem-list-item | encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.
Condition.severity 0..1 CodeableConcept Subjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): A subjective assessment of the severity of the condition as evaluated by the clinician.
Condition.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): The set of codes indicating the diagnosis
Condition.bodySite This element is included in summaries. 0..* CodeableConcept Anatomical location, if relevant
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
Condition.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who has the condition?
Condition.subject.id 0..1 string Unique id for inter-element referencing
Condition.subject.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.subject.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.subject.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.subject.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Condition.encounter.id 0..1 string Unique id for inter-element referencing
Condition.encounter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.encounter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.encounter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.encounter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.onset[x] This element must be supported. This element is included in summaries. C 0..1 Estimated or actual date, date-time, or age
Constraints: uds-plus-diag-2, uds-plus-diag-2a, uds-plus-diag-2b, uds-plus-diag-3, uds-plus-diag-3a, uds-plus-diag-3b, uds-plus-diag-4, uds-plus-diag-4a, uds-plus-diag-4b
Condition.onset[x].onsetDateTime dateTime This target must be supported.
Condition.onset[x].onsetPeriod Period
Condition.abatement[x] This element must be supported. C 0..1 When in resolution/remission
Constraints: uds-plus-diag-5, uds-plus-diag-5a, uds-plus-diag-5b, uds-plus-diag-6, uds-plus-diag-6a, uds-plus-diag-6b, uds-plus-diag-7, uds-plus-diag-7a, uds-plus-diag-7b
Condition.abatement[x].abatementDateTime dateTime
Condition.abatement[x].abatementPeriod Period
Condition.recordedDate This element must be supported. This element is included in summaries. C 0..1 dateTime Date record was first recorded
Constraints: uds-plus-diag-8, uds-plus-diag-8a, uds-plus-diag-8b
Condition.recorder This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) Who recorded the condition
Condition.recorder.id 0..1 string Unique id for inter-element referencing
Condition.recorder.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.recorder.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.recorder.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.recorder.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.asserter This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) Person who asserts this condition
Condition.asserter.id 0..1 string Unique id for inter-element referencing
Condition.asserter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.asserter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.asserter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.asserter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.stage C 0..* BackboneElement Stage/grade, usually assessed formally
Constraints: con-1
Condition.stage.id 0..1 string Unique id for inter-element referencing
Condition.stage.extension 0..* Extension Additional content defined by implementations
Condition.stage.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Condition.stage.summary C 0..1 CodeableConcept Simple summary (disease specific)
Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages).
Condition.stage.assessment C 0..* Reference(ClinicalImpression | DiagnosticReport | Observation) Formal record of assessment
Condition.stage.type 0..1 CodeableConcept Kind of staging
Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological).
Condition.evidence C 0..* BackboneElement Supporting evidence
Constraints: con-2
Condition.evidence.id 0..1 string Unique id for inter-element referencing
Condition.evidence.extension 0..* Extension Additional content defined by implementations
Condition.evidence.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Condition.evidence.code This element is included in summaries. C 0..* CodeableConcept Manifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.
Condition.evidence.detail This element is included in summaries. C 0..* Reference(Resource) Supporting information found elsewhere

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Condition.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Condition.clinicalStatus Base required Condition Clinical Status Codes 📍4.0.1 FHIR Std.
Condition.verificationStatus Base required ConditionVerificationStatus 📍4.0.1 FHIR Std.
Condition.category Base extensible Condition Category Codes 📍4.0.1 FHIR Std.
Condition.severity Base preferred Condition/Diagnosis Severity 📍4.0.1 FHIR Std.
Condition.code Base extensible US Core Condition Codes 📦6.1.0 US Core v6.1
Condition.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.
Condition.subject.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.encounter.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.recorder.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.asserter.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.stage.summary Base example Condition Stage 📍4.0.1 FHIR Std.
Condition.stage.type Base example Condition Stage Type 📍4.0.1 FHIR Std.
Condition.evidence.code Base example Manifestation and Symptom Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
con-1 error Condition.stage Stage SHALL have summary or assessment summary.exists() or assessment.exists()
con-2 error Condition.evidence evidence SHALL have code or details code.exists() or detail.exists()
con-3 best practice Condition Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4 error Condition If condition is abated, then clinicalStatus must be either inactive, resolved, or remission abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5 error Condition Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2 error Condition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Condition 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 Condition 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 Condition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Condition 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()
uds-plus-diag-1 error Condition.extension:assertedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString().length() = 4
uds-plus-diag-1a error Condition.extension:assertedDate All dateTime data elements should have valid year > 1900 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() >= '1900'
uds-plus-diag-1b error Condition.extension:assertedDate All dateTime data elements should have valid year < 2030 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() <= '2030'
uds-plus-diag-2 error Condition.onset[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-2a error Condition.onset[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-2b error Condition.onset[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-3 error Condition.onset[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-3a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-3b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-4 error Condition.onset[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-4a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-4b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-5 error Condition.abatement[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-5a error Condition.abatement[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-5b error Condition.abatement[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-6 error Condition.abatement[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-6a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-6b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-7 error Condition.abatement[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-7a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-7b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-8 error Condition.recordedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.toString().length() = 4
uds-plus-diag-8a error Condition.recordedDate All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-8b error Condition.recordedDate All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Condition C 0..* Condition De-Identified UDS Plus Diagnosis
Constraints: con-3, con-4, con-5
Condition.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Condition identifier created by the health center to send data to UDS+ Data Receiver
Condition.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Condition.Slices for extension Content/Rules for all slices
Condition.Slices for extension.extension:uds-plus-age-extension This element must be supported. 0..1 Quantity Age of the Patient computed using birthDate.
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-age-extension
Condition.Slices for extension.extension:assertedDate This element must be supported. C 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
Constraints: uds-plus-diag-1, uds-plus-diag-1a, uds-plus-diag-1b
Condition.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Condition.clinicalStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis.
Condition.verificationStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis.
Condition.category This element must be supported. 1..1 CodeableConcept problem-list-item | encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.
Condition.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): The set of codes indicating the diagnosis
Condition.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who has the condition?
Condition.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Condition.onset[x] This element must be supported. This element is included in summaries. C 0..1 Estimated or actual date, date-time, or age
Constraints: uds-plus-diag-2, uds-plus-diag-2a, uds-plus-diag-2b, uds-plus-diag-3, uds-plus-diag-3a, uds-plus-diag-3b, uds-plus-diag-4, uds-plus-diag-4a, uds-plus-diag-4b
Condition.onset[x].onsetDateTime dateTime This target must be supported.
Condition.onset[x].onsetPeriod Period
Condition.abatement[x] This element must be supported. C 0..1 When in resolution/remission
Constraints: uds-plus-diag-5, uds-plus-diag-5a, uds-plus-diag-5b, uds-plus-diag-6, uds-plus-diag-6a, uds-plus-diag-6b, uds-plus-diag-7, uds-plus-diag-7a, uds-plus-diag-7b
Condition.abatement[x].abatementDateTime dateTime
Condition.abatement[x].abatementPeriod Period
Condition.recordedDate This element must be supported. This element is included in summaries. C 0..1 dateTime Date record was first recorded
Constraints: uds-plus-diag-8, uds-plus-diag-8a, uds-plus-diag-8b

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Condition.clinicalStatus Base required Condition Clinical Status Codes 📍4.0.1 FHIR Std.
Condition.verificationStatus Base required ConditionVerificationStatus 📍4.0.1 FHIR Std.
Condition.category Base extensible Condition Category Codes 📍4.0.1 FHIR Std.
Condition.code Base extensible US Core Condition Codes 📦6.1.0 US Core v6.1

Constraints

Id Grade Path(s) Description Expression
con-3 best practice Condition Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4 error Condition If condition is abated, then clinicalStatus must be either inactive, resolved, or remission abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5 error Condition Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2 error Condition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Condition 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 Condition 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 Condition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Condition 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()
uds-plus-diag-1 error Condition.extension:assertedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString().length() = 4
uds-plus-diag-1a error Condition.extension:assertedDate All dateTime data elements should have valid year > 1900 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() >= '1900'
uds-plus-diag-1b error Condition.extension:assertedDate All dateTime data elements should have valid year < 2030 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() <= '2030'
uds-plus-diag-2 error Condition.onset[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-2a error Condition.onset[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-2b error Condition.onset[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-3 error Condition.onset[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-3a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-3b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-4 error Condition.onset[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-4a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-4b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-5 error Condition.abatement[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-5a error Condition.abatement[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-5b error Condition.abatement[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-6 error Condition.abatement[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-6a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-6b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-7 error Condition.abatement[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-7a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-7b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-8 error Condition.recordedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.toString().length() = 4
uds-plus-diag-8a error Condition.recordedDate All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-8b error Condition.recordedDate All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'

Differential View

This structure is derived from Condition

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Condition 0..* Condition De-Identified UDS Plus Diagnosis
Condition.id This element must be supported. 0..1 id The de-identified Condition identifier created by the health center to send data to UDS+ Data Receiver
Condition.text 0..0 Cannot include any text in the resource as part of the de-identified data.
Condition.contained 0..0 Cannot include any contained resources in the resource as part of the de-identified data.
Condition.Slices for extension Content/Rules for all slices
Condition.Slices for extension.extension:uds-plus-age-extension This element must be supported. 0..1 Quantity Age of the Patient computed using birthDate.
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-age-extension
Condition.Slices for extension.extension:assertedDate This element must be supported. C 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
Constraints: uds-plus-diag-1, uds-plus-diag-1a, uds-plus-diag-1b
Condition.clinicalStatus This element must be supported. 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Condition.verificationStatus This element must be supported. 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Condition.category This element must be supported. 1..1 CodeableConcept problem-list-item | encounter-diagnosis
Condition.code This element must be supported. 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): The set of codes indicating the diagnosis
Condition.subject This element must be supported. 1..1 Reference(De-Identified UDS Plus Patient) Who has the condition?
Condition.subject.display 0..0 Text alternative for the resource
Condition.encounter This element must be supported. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Condition.encounter.display 0..0 Text alternative for the resource
Condition.onset[x] This element must be supported. C 0..1 Estimated or actual date, date-time, or age
Constraints: uds-plus-diag-2, uds-plus-diag-2a, uds-plus-diag-2b, uds-plus-diag-3, uds-plus-diag-3a, uds-plus-diag-3b, uds-plus-diag-4, uds-plus-diag-4a, uds-plus-diag-4b
Condition.onset[x].onsetDateTime dateTime This target must be supported.
Condition.onset[x].onsetPeriod Period
Condition.abatement[x] This element must be supported. C 0..1 When in resolution/remission
Constraints: uds-plus-diag-5, uds-plus-diag-5a, uds-plus-diag-5b, uds-plus-diag-6, uds-plus-diag-6a, uds-plus-diag-6b, uds-plus-diag-7, uds-plus-diag-7a, uds-plus-diag-7b
Condition.abatement[x].abatementDateTime dateTime
Condition.abatement[x].abatementPeriod Period
Condition.recordedDate This element must be supported. C 0..1 dateTime Date record was first recorded
Constraints: uds-plus-diag-8, uds-plus-diag-8a, uds-plus-diag-8b
Condition.recorder
Condition.recorder.display 0..0 Text alternative for the resource
Condition.asserter
Condition.asserter.display 0..0 Text alternative for the resource
Condition.note 0..0 Additional information about the Condition

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Condition.code Base extensible US Core Condition Codes 📦6.1.0 US Core v6.1

Constraints

Id Grade Path(s) Description Expression
uds-plus-diag-1 error Condition.extension:assertedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString().length() = 4
uds-plus-diag-1a error Condition.extension:assertedDate All dateTime data elements should have valid year > 1900 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() >= '1900'
uds-plus-diag-1b error Condition.extension:assertedDate All dateTime data elements should have valid year < 2030 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() <= '2030'
uds-plus-diag-2 error Condition.onset[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-2a error Condition.onset[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-2b error Condition.onset[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-3 error Condition.onset[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-3a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-3b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-4 error Condition.onset[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-4a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-4b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-5 error Condition.abatement[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-5a error Condition.abatement[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-5b error Condition.abatement[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-6 error Condition.abatement[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-6a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-6b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-7 error Condition.abatement[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-7a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-7b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-8 error Condition.recordedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.toString().length() = 4
uds-plus-diag-8a error Condition.recordedDate All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-8b error Condition.recordedDate All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Condition C 0..* Condition De-Identified UDS Plus Diagnosis
Constraints: con-3, con-4, con-5
Condition.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Condition identifier created by the health center to send data to UDS+ Data Receiver
Condition.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Condition.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Condition.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Condition.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Condition.Slices for extension.extension:uds-plus-age-extension This element must be supported. 0..1 Quantity Age of the Patient computed using birthDate.
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-age-extension
Condition.Slices for extension.extension:assertedDate This element must be supported. C 0..1 dateTime Date the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
Constraints: uds-plus-diag-1, uds-plus-diag-1a, uds-plus-diag-1b
Condition.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Condition.identifier This element is included in summaries. 0..* Identifier External Ids for this condition
Condition.clinicalStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept active | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required): The clinical status of the condition or diagnosis.
Condition.verificationStatus This element is a modifier element. This element must be supported. This element is included in summaries. C 0..1 CodeableConcept unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required): The verification status to support or decline the clinical status of the condition or diagnosis.
Condition.category This element must be supported. 1..1 CodeableConcept problem-list-item | encounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.
Condition.severity 0..1 CodeableConcept Subjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): A subjective assessment of the severity of the condition as evaluated by the clinician.
Condition.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): The set of codes indicating the diagnosis
Condition.bodySite This element is included in summaries. 0..* CodeableConcept Anatomical location, if relevant
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
Condition.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who has the condition?
Condition.subject.id 0..1 string Unique id for inter-element referencing
Condition.subject.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.subject.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.subject.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.subject.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Condition.encounter.id 0..1 string Unique id for inter-element referencing
Condition.encounter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.encounter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.encounter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.encounter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.onset[x] This element must be supported. This element is included in summaries. C 0..1 Estimated or actual date, date-time, or age
Constraints: uds-plus-diag-2, uds-plus-diag-2a, uds-plus-diag-2b, uds-plus-diag-3, uds-plus-diag-3a, uds-plus-diag-3b, uds-plus-diag-4, uds-plus-diag-4a, uds-plus-diag-4b
Condition.onset[x].onsetDateTime dateTime This target must be supported.
Condition.onset[x].onsetPeriod Period
Condition.abatement[x] This element must be supported. C 0..1 When in resolution/remission
Constraints: uds-plus-diag-5, uds-plus-diag-5a, uds-plus-diag-5b, uds-plus-diag-6, uds-plus-diag-6a, uds-plus-diag-6b, uds-plus-diag-7, uds-plus-diag-7a, uds-plus-diag-7b
Condition.abatement[x].abatementDateTime dateTime
Condition.abatement[x].abatementPeriod Period
Condition.recordedDate This element must be supported. This element is included in summaries. C 0..1 dateTime Date record was first recorded
Constraints: uds-plus-diag-8, uds-plus-diag-8a, uds-plus-diag-8b
Condition.recorder This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) Who recorded the condition
Condition.recorder.id 0..1 string Unique id for inter-element referencing
Condition.recorder.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.recorder.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.recorder.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.recorder.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.asserter This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) Person who asserts this condition
Condition.asserter.id 0..1 string Unique id for inter-element referencing
Condition.asserter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Condition.asserter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Condition.asserter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Condition.asserter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Condition.stage C 0..* BackboneElement Stage/grade, usually assessed formally
Constraints: con-1
Condition.stage.id 0..1 string Unique id for inter-element referencing
Condition.stage.extension 0..* Extension Additional content defined by implementations
Condition.stage.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Condition.stage.summary C 0..1 CodeableConcept Simple summary (disease specific)
Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages).
Condition.stage.assessment C 0..* Reference(ClinicalImpression | DiagnosticReport | Observation) Formal record of assessment
Condition.stage.type 0..1 CodeableConcept Kind of staging
Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological).
Condition.evidence C 0..* BackboneElement Supporting evidence
Constraints: con-2
Condition.evidence.id 0..1 string Unique id for inter-element referencing
Condition.evidence.extension 0..* Extension Additional content defined by implementations
Condition.evidence.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Condition.evidence.code This element is included in summaries. C 0..* CodeableConcept Manifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.
Condition.evidence.detail This element is included in summaries. C 0..* Reference(Resource) Supporting information found elsewhere

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Condition.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Condition.clinicalStatus Base required Condition Clinical Status Codes 📍4.0.1 FHIR Std.
Condition.verificationStatus Base required ConditionVerificationStatus 📍4.0.1 FHIR Std.
Condition.category Base extensible Condition Category Codes 📍4.0.1 FHIR Std.
Condition.severity Base preferred Condition/Diagnosis Severity 📍4.0.1 FHIR Std.
Condition.code Base extensible US Core Condition Codes 📦6.1.0 US Core v6.1
Condition.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.
Condition.subject.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.encounter.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.recorder.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.asserter.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Condition.stage.summary Base example Condition Stage 📍4.0.1 FHIR Std.
Condition.stage.type Base example Condition Stage Type 📍4.0.1 FHIR Std.
Condition.evidence.code Base example Manifestation and Symptom Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
con-1 error Condition.stage Stage SHALL have summary or assessment summary.exists() or assessment.exists()
con-2 error Condition.evidence evidence SHALL have code or details code.exists() or detail.exists()
con-3 best practice Condition Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()
con-4 error Condition If condition is abated, then clinicalStatus must be either inactive, resolved, or remission abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()
con-5 error Condition Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()
dom-2 error Condition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Condition 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 Condition 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 Condition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Condition 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()
uds-plus-diag-1 error Condition.extension:assertedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString().length() = 4
uds-plus-diag-1a error Condition.extension:assertedDate All dateTime data elements should have valid year > 1900 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() >= '1900'
uds-plus-diag-1b error Condition.extension:assertedDate All dateTime data elements should have valid year < 2030 $this.value.ofType(dateTime) implies $this.value.ofType(dateTime).toString() <= '2030'
uds-plus-diag-2 error Condition.onset[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-2a error Condition.onset[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-2b error Condition.onset[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-3 error Condition.onset[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-3a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-3b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-4 error Condition.onset[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-4a error Condition.onset[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-4b error Condition.onset[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-5 error Condition.abatement[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-diag-5a error Condition.abatement[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-5b error Condition.abatement[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-diag-6 error Condition.abatement[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-diag-6a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-diag-6b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-diag-7 error Condition.abatement[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-diag-7a error Condition.abatement[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-diag-7b error Condition.abatement[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
uds-plus-diag-8 error Condition.recordedDate All dateTime data elements should be truncated to a year only for de-identified resources. $this.toString().length() = 4
uds-plus-diag-8a error Condition.recordedDate All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-diag-8b error Condition.recordedDate All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'

 

Other representations of profile: CSV, Excel, Schematron