QI-Core Implementation Guide
5.0.0-ballot - STU Ballot US

This page is part of the Quality Improvement Core Framework (v5.0.0-ballot: STU 5 Ballot 1) based on FHIR R4. The current version which supercedes this version is 4.1.1. For a full list of available versions, see the Directory of published versions

Resource Profile: QICore Condition Encounter Diagnosis

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis Version: 5.0.0-ballot
Active as of 2022-04-20 Computable Name: QICoreConditionEncounterDiagnosis

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

The QI Core Condition Encounter Diagnosis Profile is based upon the US Core Condition Encounter Diagnosis Profile. In version 5.0.0, The QI Core Condition Profile has been split into the QI Core Condition Encounter Diagnosis Profile and QI Core Condition Problems and Health Concerns Profile. To promote interoperability and adoption through common implementation, this profile defines constraints and extensions on the Condition resource for the minimal set of data to record, search, and fetch information about an encounter diagnosis. It Defines the core set of elements and extensions for quality rule and measure authors.

Usage

See the patterns page for implementation and usage patterns.

define "Absence of Cervix":
	[Condition : "Congenital absence of cervix (disorder)"] NoCervixBirth
		where NoCervixBirth.onset.toInterval() starts before end of "Measurement Period"
      and NoCervixBirth.clinicalStatus ~ Global."active"

Examples

Severe Burn Example
Appendicitis Example

Usage:

Formal Views of Profile Content

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

This structure is derived from USCoreConditionEncounterDiagnosisProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition 0..*USCoreConditionEncounterDiagnosisProfileDetailed information about conditions, problems or diagnoses
... severity S0..1CodeableConceptSubjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): Codes describing anatomical locations. May include laterality.

... bodySite S0..*CodeableConceptAnatomical location, if relevant
Binding: SNOMEDCTBodyStructures (preferred): Codes describing anatomical locations. May include laterality.

... subject S1..1Reference(QICorePatient)Who has the condition?
... onset[x] S0..1Estimated or actual date, date-time, or age
.... onsetDateTimedateTime S
.... onsetAgeAge S
.... onsetPeriodPeriod S
.... onsetRangeRange S
... abatement[x] S0..1When in resolution/remission
.... abatementDateTimedateTime S
.... abatementAgeAge S
.... abatementPeriodPeriod S
.... abatementRangeRange S
... asserter 0..1Reference(QICorePatient | QICore Practitioner | QICoreRelatedPerson)Person who asserts this condition
... stage S0..*BackboneElementStage/grade, usually assessed formally
.... summary S0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (preferred): Codes describing condition stages (e.g. Cancer stages).

.... assessment 0..*Reference(ClinicalImpression | QICore DiagnosticReport Profile for Laboratory Results Reporting | QICore Observation)Formal record of assessment

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition I0..*USCoreConditionEncounterDiagnosisProfileDetailed information about conditions, problems or diagnoses
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... assertedDate S0..1dateTimeDate the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Ids for this condition
... clinicalStatus ?!SΣI0..1CodeableConceptactive | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus ?!SΣI0..1CodeableConceptunconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
... Slices for category S1..*CodeableConceptcategory codes
Slice: Unordered, Open by pattern:$this
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


.... category:us-core S1..1CodeableConceptencounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: encounter-diagnosis
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
... severity S0..1CodeableConceptSubjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): Codes describing anatomical locations. May include laterality.

... code SΣ1..1CodeableConceptIdentification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): Valueset to describe the actual problem experienced by the patient

... bodySite SΣ0..*CodeableConceptAnatomical location, if relevant
Binding: SNOMEDCTBodyStructures (preferred): Codes describing anatomical locations. May include laterality.


... subject SΣ1..1Reference(QICorePatient)Who has the condition?
... encounter SΣ0..1Reference(QICore Encounter)Encounter created as part of
... onset[x] SΣ0..1Estimated or actual date, date-time, or age
.... onsetDateTimedateTime S
.... onsetAgeAge S
.... onsetPeriodPeriod S
.... onsetRangeRange S
... abatement[x] SI0..1When in resolution/remission
.... abatementDateTimedateTime S
.... abatementAgeAge S
.... abatementPeriodPeriod S
.... abatementRangeRange S
... recordedDate SΣ0..1dateTimeDate record was first recorded
... recorder Σ0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... asserter Σ0..1Reference(QICorePatient | QICore Practitioner | QICoreRelatedPerson)Person who asserts this condition
... stage SI0..*BackboneElementStage/grade, usually assessed formally
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... summary SI0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (preferred): Codes describing condition stages (e.g. Cancer stages).

.... assessment I0..*Reference(ClinicalImpression | QICore DiagnosticReport Profile for Laboratory Results Reporting | QICore Observation)Formal record of assessment
.... type 0..1CodeableConceptKind of staging
Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological).

... evidence I0..*BackboneElementSupporting evidence
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code ΣI0..*CodeableConceptManifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.


.... detail ΣI0..*Reference(Resource)Supporting information found elsewhere
... note 0..*AnnotationAdditional information about the Condition

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition I0..*USCoreConditionEncounterDiagnosisProfileDetailed information about conditions, problems or diagnoses
... assertedDate 0..1dateTimeDate the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... clinicalStatus ?!ΣI0..1CodeableConceptactive | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus ?!ΣI0..1CodeableConceptunconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
.... category:us-core 1..1CodeableConceptencounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: encounter-diagnosis
... severity 0..1CodeableConceptSubjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): Codes describing anatomical locations. May include laterality.

... code Σ1..1CodeableConceptIdentification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): Valueset to describe the actual problem experienced by the patient

... bodySite Σ0..*CodeableConceptAnatomical location, if relevant
Binding: SNOMEDCTBodyStructures (preferred): Codes describing anatomical locations. May include laterality.


... subject Σ1..1Reference(QICorePatient)Who has the condition?
... encounter Σ0..1Reference(QICore Encounter)Encounter created as part of
... onset[x] Σ0..1Estimated or actual date, date-time, or age
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
... abatement[x] I0..1When in resolution/remission
.... abatementDateTimedateTime
.... abatementAgeAge
.... abatementPeriodPeriod
.... abatementRangeRange
... recordedDate Σ0..1dateTimeDate record was first recorded
... stage I0..*BackboneElementStage/grade, usually assessed formally
.... summary I0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (preferred): Codes describing condition stages (e.g. Cancer stages).


doco Documentation for this format

Differential View

This structure is derived from USCoreConditionEncounterDiagnosisProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition 0..*USCoreConditionEncounterDiagnosisProfileDetailed information about conditions, problems or diagnoses
... severity S0..1CodeableConceptSubjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): Codes describing anatomical locations. May include laterality.

... bodySite S0..*CodeableConceptAnatomical location, if relevant
Binding: SNOMEDCTBodyStructures (preferred): Codes describing anatomical locations. May include laterality.

... subject S1..1Reference(QICorePatient)Who has the condition?
... onset[x] S0..1Estimated or actual date, date-time, or age
.... onsetDateTimedateTime S
.... onsetAgeAge S
.... onsetPeriodPeriod S
.... onsetRangeRange S
... abatement[x] S0..1When in resolution/remission
.... abatementDateTimedateTime S
.... abatementAgeAge S
.... abatementPeriodPeriod S
.... abatementRangeRange S
... asserter 0..1Reference(QICorePatient | QICore Practitioner | QICoreRelatedPerson)Person who asserts this condition
... stage S0..*BackboneElementStage/grade, usually assessed formally
.... summary S0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (preferred): Codes describing condition stages (e.g. Cancer stages).

.... assessment 0..*Reference(ClinicalImpression | QICore DiagnosticReport Profile for Laboratory Results Reporting | QICore Observation)Formal record of assessment

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Condition I0..*USCoreConditionEncounterDiagnosisProfileDetailed information about conditions, problems or diagnoses
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... assertedDate S0..1dateTimeDate the condition was first asserted
URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Ids for this condition
... clinicalStatus ?!SΣI0..1CodeableConceptactive | recurrence | relapse | inactive | remission | resolved
Binding: ConditionClinicalStatusCodes (required)
... verificationStatus ?!SΣI0..1CodeableConceptunconfirmed | provisional | differential | confirmed | refuted | entered-in-error
Binding: ConditionVerificationStatus (required)
... Slices for category S1..*CodeableConceptcategory codes
Slice: Unordered, Open by pattern:$this
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.


.... category:us-core S1..1CodeableConceptencounter-diagnosis
Binding: ConditionCategoryCodes (extensible): A category assigned to the condition.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/condition-category
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: encounter-diagnosis
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
... severity S0..1CodeableConceptSubjective severity of condition
Binding: Condition/DiagnosisSeverity (preferred): Codes describing anatomical locations. May include laterality.

... code SΣ1..1CodeableConceptIdentification of the condition, problem or diagnosis
Binding: US Core Condition Codes (extensible): Valueset to describe the actual problem experienced by the patient

... bodySite SΣ0..*CodeableConceptAnatomical location, if relevant
Binding: SNOMEDCTBodyStructures (preferred): Codes describing anatomical locations. May include laterality.


... subject SΣ1..1Reference(QICorePatient)Who has the condition?
... encounter SΣ0..1Reference(QICore Encounter)Encounter created as part of
... onset[x] SΣ0..1Estimated or actual date, date-time, or age
.... onsetDateTimedateTime S
.... onsetAgeAge S
.... onsetPeriodPeriod S
.... onsetRangeRange S
... abatement[x] SI0..1When in resolution/remission
.... abatementDateTimedateTime S
.... abatementAgeAge S
.... abatementPeriodPeriod S
.... abatementRangeRange S
... recordedDate SΣ0..1dateTimeDate record was first recorded
... recorder Σ0..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson)Who recorded the condition
... asserter Σ0..1Reference(QICorePatient | QICore Practitioner | QICoreRelatedPerson)Person who asserts this condition
... stage SI0..*BackboneElementStage/grade, usually assessed formally
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... summary SI0..1CodeableConceptSimple summary (disease specific)
Binding: ConditionStage (preferred): Codes describing condition stages (e.g. Cancer stages).

.... assessment I0..*Reference(ClinicalImpression | QICore DiagnosticReport Profile for Laboratory Results Reporting | QICore Observation)Formal record of assessment
.... type 0..1CodeableConceptKind of staging
Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological).

... evidence I0..*BackboneElementSupporting evidence
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code ΣI0..*CodeableConceptManifestation/symptom
Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition.


.... detail ΣI0..*Reference(Resource)Supporting information found elsewhere
... note 0..*AnnotationAdditional information about the Condition

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Condition.languagepreferredCommonLanguages
Max Binding: AllLanguages
Condition.clinicalStatusrequiredConditionClinicalStatusCodes
Condition.verificationStatusrequiredConditionVerificationStatus
Condition.categoryextensibleConditionCategoryCodes
Condition.category:us-coreextensiblePattern: encounter-diagnosis
Condition.severitypreferredCondition/DiagnosisSeverity
Condition.codeextensibleUSCoreConditionCodes
Condition.bodySitepreferredSNOMEDCTBodyStructures
Condition.stage.summarypreferredConditionStage
Condition.stage.typeexampleConditionStageType
Condition.evidence.codeexampleManifestationAndSymptomCodes

Constraints

IdGradePathDetailsRequirements
con-3Best PracticeConditionCondition.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-4errorConditionIf 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-5errorConditionCondition.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-2errorConditionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorConditionIf 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-4errorConditionIf 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-5errorConditionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeConditionA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorCondition.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.extension:assertedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.extension:assertedDateMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.clinicalStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.verificationStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.category:us-coreAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.severityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.onset[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.abatement[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.recordedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.recorderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.asserterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
con-1errorCondition.stageStage SHALL have summary or assessment
: summary.exists() or assessment.exists()
ele-1errorCondition.stageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.stage.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.stage.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.stage.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.stage.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.stage.summaryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.stage.assessmentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.stage.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
con-2errorCondition.evidenceevidence SHALL have code or details
: code.exists() or detail.exists()
ele-1errorCondition.evidenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.evidence.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.evidence.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.evidence.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCondition.evidence.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCondition.evidence.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.evidence.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCondition.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())