Case Based Surveillance Implementation Guide
0.2.1 - ci-build
Case Based Surveillance Implementation Guide - Local Development build (v0.2.1). See the Directory of published versions
Official URL: http://cbsig.chai.gatech.edu/StructureDefinition/us-cbs-condition | Version: 0.2.1 | |||
Active as of 2021-01-01 | Computable Name: USCaseBasedSurveillanceCondition |
This profile sets minimum expectations for the Condition resource to represent data requested as part of the U.S. Public Health Case Based Surveillance messaging guides. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile. This profile is built on top of the ECR US PH Condition profile and US Core Condition profile.
Example Usage Scenarios:
The following are example usage scenarios for the US CBS Condition of Interest profile:
The US CBS Condition profile is based on the ECR (Electronic Case Reporting) IG US PH Condition profile. The US PH Condition profile captures conditions of interest to public health. The US CBS Condition profile covers a narrower sub domain of public health, adding additional constraints and extensions to support Case Based Surveillance programs.
The Center for Disease Control’s (CDC) Message Mapping Guides (MMGs) provide guidance on the transmission of records from jurisdictions to case based surveillance programs. MMG documents are publicly available through the CDC’s website. In addition to generic information captured by the Gen V2 guide, there are program specific guides tied to specific conditions or groups of condition.
The US CBS Condition of Interest profile represents the core reported condition of interest (as defined by the Nationally Notifiable Disease Surveillance System & Other Conditions of Public Health Importance valueset) which is reported in the Gen V2 message mapping guide. It should be considered the resource which determines the recipient case surveillance program which oversees surveillance for the specified condition of interest.
The following data-elements must always be present (Mandatory definition]) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Condition must have:
Each Condition must support:
Additional US Case Based Surveillance Requirements
Profile specific implementation guidance:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from USPublicHealthCondition
This structure is derived from USPublicHealthCondition
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Condition | I | 0..* | USPublicHealthCondition | US Public Health Condition |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
Slices for extension | 1..* | Extension | Extension Slice: Unordered, Open by value:url | |
condition-assertedDate | S | 0..1 | dateTime | Date the condition was first asserted URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate |
cbs-case-class-status | S | 1..1 | CodeableConcept | Case Based Surveillance Case Class Status URL: http://cbsig.chai.gatech.edu/StructureDefinition/cbs-case-class-status Binding: Case Classification Status (required): A code indicating the case class status. |
cbs-illness-duration | S | 0..1 | Quantity | Case Based Surveillance Illness Duration URL: http://cbsig.chai.gatech.edu/StructureDefinition/cbs-illness-duration |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | External Ids for this condition |
clinicalStatus | ?!SΣI | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required) |
verificationStatus | ?!SΣI | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required) |
category | SI | 1..* | CodeableConcept | problem-list-item | encounter-diagnosis | health-concern Binding: US Core Condition Category Codes (extensible) |
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. | |
code | SΣ | 1..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: Nationally Notifiable Disease Surveillance System (NNDSS) & Other Conditions of Public Health Importance (required) |
bodySite | SΣ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: Body site (extensible) |
subject | SΣ | 1..1 | Reference(US Case Based Surveillance Patient Profile) | Who has the condition? |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of |
Slices for onset[x] | SΣ | 0..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Closed by type:$this |
onset[x]:onsetDateTime | SΣ | 0..1 | dateTime | Estimated or actual date, date-time, or age |
Slices for abatement[x] | I | 0..1 | dateTime | When in resolution/remission Slice: Unordered, Closed by type:$this |
abatement[x]:abatementDateTime | SI | 0..1 | dateTime | When in resolution/remission |
recordedDate | Σ | 0..1 | dateTime | Date record was first recorded |
recorder | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who recorded the condition |
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Person who asserts this condition |
stage | I | 0..* | BackboneElement | Stage/grade, usually assessed formally con-1: Stage SHALL have summary or assessment |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
summary | I | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages). |
assessment | I | 0..* | Reference(ClinicalImpression | DiagnosticReport | Observation) | Formal record of assessment |
type | 0..1 | CodeableConcept | Kind of staging Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological). | |
evidence | SI | 0..* | BackboneElement | Signs and Symptoms of the Condition of Interest |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | ΣI | 0..* | CodeableConcept | Manifestation/symptom Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition. |
detail | ΣI | 0..* | Reference(Resource) | Supporting information found elsewhere |
note | 0..* | Annotation | Additional information about the Condition | |
Documentation for this format |
This structure is derived from USPublicHealthCondition
Differential View
This structure is derived from USPublicHealthCondition
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Condition | I | 0..* | USPublicHealthCondition | US Public Health Condition |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
Slices for extension | 1..* | Extension | Extension Slice: Unordered, Open by value:url | |
condition-assertedDate | S | 0..1 | dateTime | Date the condition was first asserted URL: http://hl7.org/fhir/StructureDefinition/condition-assertedDate |
cbs-case-class-status | S | 1..1 | CodeableConcept | Case Based Surveillance Case Class Status URL: http://cbsig.chai.gatech.edu/StructureDefinition/cbs-case-class-status Binding: Case Classification Status (required): A code indicating the case class status. |
cbs-illness-duration | S | 0..1 | Quantity | Case Based Surveillance Illness Duration URL: http://cbsig.chai.gatech.edu/StructureDefinition/cbs-illness-duration |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | External Ids for this condition |
clinicalStatus | ?!SΣI | 0..1 | CodeableConcept | active | recurrence | relapse | inactive | remission | resolved Binding: ConditionClinicalStatusCodes (required) |
verificationStatus | ?!SΣI | 0..1 | CodeableConcept | unconfirmed | provisional | differential | confirmed | refuted | entered-in-error Binding: ConditionVerificationStatus (required) |
category | SI | 1..* | CodeableConcept | problem-list-item | encounter-diagnosis | health-concern Binding: US Core Condition Category Codes (extensible) |
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. | |
code | SΣ | 1..1 | CodeableConcept | Identification of the condition, problem or diagnosis Binding: Nationally Notifiable Disease Surveillance System (NNDSS) & Other Conditions of Public Health Importance (required) |
bodySite | SΣ | 0..* | CodeableConcept | Anatomical location, if relevant Binding: Body site (extensible) |
subject | SΣ | 1..1 | Reference(US Case Based Surveillance Patient Profile) | Who has the condition? |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of |
Slices for onset[x] | SΣ | 0..1 | dateTime | Estimated or actual date, date-time, or age Slice: Unordered, Closed by type:$this |
onset[x]:onsetDateTime | SΣ | 0..1 | dateTime | Estimated or actual date, date-time, or age |
Slices for abatement[x] | I | 0..1 | dateTime | When in resolution/remission Slice: Unordered, Closed by type:$this |
abatement[x]:abatementDateTime | SI | 0..1 | dateTime | When in resolution/remission |
recordedDate | Σ | 0..1 | dateTime | Date record was first recorded |
recorder | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who recorded the condition |
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Person who asserts this condition |
stage | I | 0..* | BackboneElement | Stage/grade, usually assessed formally con-1: Stage SHALL have summary or assessment |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
summary | I | 0..1 | CodeableConcept | Simple summary (disease specific) Binding: ConditionStage (example): Codes describing condition stages (e.g. Cancer stages). |
assessment | I | 0..* | Reference(ClinicalImpression | DiagnosticReport | Observation) | Formal record of assessment |
type | 0..1 | CodeableConcept | Kind of staging Binding: ConditionStageType (example): Codes describing the kind of condition staging (e.g. clinical or pathological). | |
evidence | SI | 0..* | BackboneElement | Signs and Symptoms of the Condition of Interest |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | ΣI | 0..* | CodeableConcept | Manifestation/symptom Binding: ManifestationAndSymptomCodes (example): Codes that describe the manifestation or symptoms of a condition. |
detail | ΣI | 0..* | Reference(Resource) | Supporting information found elsewhere |
note | 0..* | Annotation | Additional information about the Condition | |
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
Condition.language | preferred | CommonLanguages Max Binding: AllLanguages |
Condition.clinicalStatus | required | ConditionClinicalStatusCodes |
Condition.verificationStatus | required | ConditionVerificationStatus |
Condition.category | extensible | USCoreConditionCategoryCodes |
Condition.severity | preferred | Condition/DiagnosisSeverity |
Condition.code | required | PHVS_NotifiableEvent_Disease_Condition_CDC_NNDSS |
Condition.bodySite | extensible | PHVS_BodySite_CDC |
Condition.stage.summary | example | ConditionStage |
Condition.stage.type | example | ConditionStageType |
Condition.evidence.code | example | ManifestationAndSymptomCodes |
Id | Grade | Path | Details | Requirements |
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() | |
us-core-1 | Best Practice | Condition | A code in Condition.category SHOULD be from US Core Condition Category Codes value set. : where(category.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-condition-category')).exists() | |
ele-1 | error | Condition.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.extension:sliceAssertedDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.extension:sliceAssertedDate | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.extension:case-class-status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.extension:case-class-status | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.extension:illness-duration | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.extension:illness-duration | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.clinicalStatus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.verificationStatus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.severity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.bodySite | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.onset[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.onset[x]:onsetDateTime | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.abatement[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.abatement[x]:abatementDateTime | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.recordedDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.recorder | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.asserter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
con-1 | error | Condition.stage | Stage SHALL have summary or assessment : summary.exists() or assessment.exists() | |
ele-1 | error | Condition.stage | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.stage.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.stage.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.stage.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.stage.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.stage.summary | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.stage.assessment | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.stage.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
con-2 | error | Condition.evidence | evidence SHALL have code or details : code.exists() or detail.exists() | |
ele-1 | error | Condition.evidence | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.evidence.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.evidence.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.evidence.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Condition.evidence.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Condition.evidence.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.evidence.detail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Condition.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |