Situational Awareness for Novel Epidemic Response
1.0.1 - CI Build International flag

Situational Awareness for Novel Epidemic Response, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 1.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-saner/ and changes regularly. See the Directory of published versions

Example Measure: Patients By Risk Factor

Draft as of 2024-01-25

Generated Narrative: Measure

Resource Measure "PatientsByRiskFactorWithSupplementalData"

Profile: Public Health Measure

Enables specification of proposed measure reporting: Once per 1 days

wg: pher

url: http://hl7.org/fhir/uv/saner/Measure/PatientsByRiskFactorWithSupplementalData

version: 1.0.1

name: PatientsByRiskFactor

title: COVID-19 Patients By Risk Factor

status: draft

experimental: true

date: 2024-01-25 13:42:59+0000

publisher: HL7 International / Public Health

contact: http://www.hl7.org/Special/committees/pher, pher@lists.hl7.org, Keith W. Boone: mailto:kboone@ainq.com

description: This measure demonstrates automated reporting of patients with COVID-19 stratified by condition, and reporting supplemental data

UseContexts

-CodeValue[x]
*Clinical Focus (Details: http://terminology.hl7.org/CodeSystem/usage-context-type code focus = 'Clinical Focus', stated as 'null')COVID-19 (SNOMED CT#840539006)

jurisdiction: World (m49.htm#001)

author: Centers for Disease Control/National Healthcare Safety Network (CDC/NHSN): mailto:nhsn@cdc.gov

relatedArtifact

type: documentation

label: NHSN COVID-19 Reporting

display: CDC/NHSN COVID-19 Patient Impact & Hospital Capacity Module Home Page

url: https://web.archive.org/web/20200501215043/https://www.cdc.gov/nhsn/acute-care-hospital/covid19/

document

relatedArtifact

type: documentation

label: How to import COVID-19 Summary Data

display: Importing COVID-19 Patient Module Denominator data for Patient Safety Component

url: https://web.archive.org/web/20200501215043/https://www.cdc.gov/nhsn/pdfs/covid19/import-covid19-data-508.pdf

document

relatedArtifact

type: documentation

label: Table of Instructions

display: Instructions for Completion of the COVID-19 Patient Impact and Hospital Capacity Module Form (CDC 57.130)

url: https://web.archive.org/web/20200501215043/https://www.cdc.gov/nhsn/pdfs/covid19/57.130-toi-508.pdf

document

relatedArtifact

type: documentation

label: CSV File Template

display: CDC/NHSN COVID-19 Reporting CSV File Template

url: https://web.archive.org/web/20200501215043/https://www.cdc.gov/nhsn/pdfs/covid19/covid19-test-csv-import.csv

document

library: Computable NHSN Patient Impact and Hospital Capacity Measure Library

group

Attributes describing a group of measures

url

subject

value: Patient in room (ResourceType#Encounter; SNOMED CT#398284004)

url

scoring

value: Queue Length (Public Health Measure Scoring#queue-length)

url

type

value: Structure (MeasureType#structure)

url

improvementNotation

value: Decreased score indicates improvement (MeasureImprovementNotation#decrease)

url

rateAggregation

value: point-in-time

code: Hospital COVID-19 Patient Encounters Reporting (Measure Group System#Encounters "Encounters")

population

code: Patients with confirmed COVID-19 in any location. (Measured Values in Sample Measures#confirmedC19Pats "All Confirmed COVID-19 Patients"; MeasurePopulationType#initial-population)

description: Active encounters where the encounter diagnosis is suspected or confirmed COVID-19, or a Condition of confirmed COVID-19 was created during that encounter. This includes the patients with laboratory-confirmed or clinically diagnosed COVID-19.

Criteria

-DescriptionNameLanguageExpression
*This expression finds encounters that were active or finished in the reporting period, and their referenced Patient, Condition and Observation resources. It filters these based on cases where Encounter reports a reason or condition in the ConfirmedCOVID19Diagnoses value set, or where a positive lab test from the Covid19Labs valueset, or where the patient has any such associated Condition or Observation resources in the prior two weeks.ConfirmedC19Patstext/fhirpathfindAll('Encounter', including('subject','condition','reasonReference'), with('status').equalTo('in-progress,finished'), with('date').within(%ReportingPeriod) ).onServers(%Base). where( iif( (Encounter.reasonCode | Condition.code).member0f(%ConfirmedCOVID19Diagnoses.url) | Observation.where(code.member0f(%Covid19Labs.url) and value.member0f(%PositiveResults.url)), true, iif( Patient.distinct() .whereExists('Observation', for('patient', $this.id), with('status').equalTo( 'registered,preliminary,final,amended,corrected'), with('date').greaterThan(%ReportingPeriod.start - 1 'year'), with('code').in(%Covid19Labs), with('value-concept').in(%PositiveResults) ).onServers(%Base), true, Patient.distinct() .whereExists('Condition', for('patient', $this.id), with('verification-status').notEqualTo('refuted,entered-in-error'). with('date').greaterThan(%ReportingPeriod.start - 1 'year'), with('code').in(%ConfirmedCOVID19Diagnoses.url) ).onServers(%Base) ) ) ) .ofType(Encounter) .distinct() .aggregate( iif($total.subject contains $this.subject, $total, $total | $this ) )

stratifier

code: By Risk Factor ()

description: Stratifies the population by Condition/RiskFactor

Criteria

-DescriptionLanguageExpression
*Final all conditions for each patient in the AllCOVID19RiskFactors ValueSet and stratify by membership in subsets of that value set. NOTE: A patient can belong to multiple strata in this example.text/fhirpathfindAll('Condition', for('patient', $this.subject), with('code').in(%AllCOVID19RiskFactors.url), with('onset-date').greaterThan(%ReportingPeriod.start - 1 'year') ).onServers(%Base).select( iif(code.member0f(%NeoplasticCOVID19RiskFactors.url), 'Neoplastic Disease', {}) | iif(code.member0f(%COPDCOVID19RiskFactors.url), 'COPD', {}) | iif(code.member0f(%TobaccoCOVID19RiskFactors.url), 'Tobacco User', {}) | iif(code.member0f(%HypertensionCOVID19RiskFactors.url), 'Hypertension', {}) | // Calling out Hypertension separately for reasons iif(code.member0f(%CardiovascularCOVID19RiskFactors.url), 'Cardiovascular Disease', {}) | // Even though it isa Cardiovascular disease iif(code.member0f(%ObesityCOVID19RiskFactors.url), 'Obesity', {}) | iif(code.member0f(%SickleCellCOVID19RiskFactors.url), 'Sickle cell Disease', {}) | iif(code.member0f(%KidneyDiseaseCOVID19RiskFactors.url), 'Chronic Kidney Disease', {}) | iif(code.member0f(%PregnancyCOVID19RiskFactors.url), 'Pregnant', {}) | iif(code.member0f(%DiabetesCOVID19RiskFactors.url), 'Diabetes', {}) )

supplementalData

code: Encounter (ResourceType#Encounter)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: The patient encounter

Criteria

-DescriptionNameLanguageExpression
*Encounter dates, reason (e.g., Chief Complaint), discharge dispositionEncountertext/fhirpathEncounter

supplementalData

code: Patient (ResourceType#Patient)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: The patient

Criteria

-DescriptionNameLanguageExpression
*The Patient, including sex, dob, race and ethnicityPatienttext/fhirpathEncounter.subject.resolve()

supplementalData

code: Location (ResourceType#Location)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: The patient location

Criteria

-DescriptionNameLanguageExpression
*The Patient LocationPatientLocationtext/fhirpathEncounter.location.location.resolve()

supplementalData

code: Condition (ResourceType#Condition)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: The encounter and other diagnosis

Criteria

-DescriptionNameLanguageExpression
*Retrieves all conditions associated with the encounterEncounterDiagnosistext/fhirpath(Encounter.reasonReference|Encounter.diagnosis.condition).resolve() | findAll('Condition', for('patient', $this.subject), with('encounter').equalTo($this.id) ).onServers(%Base)

supplementalData

code: MedicationRequest (ResourceType#MedicationRequest; ResourceType#MedicationAdministration; ResourceType#Immunization)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: Medications/Immunizations given during the encounter

Criteria

-DescriptionNameLanguageExpression
*Retrieves all medications/immunizations associated with the encounterEncounterMedstext/fhirpathfindAll('MedicationRequest', for('patient', $this.subject), with('encounter').equalTo($this.id) // alternately, this could be within encounter dates ).onServers(%Base) | findAll('MedicationAdministration', for('patient', $this.subject), with('effective-time').within(%ReportingPeriod) ).onServers(%Base) | findAll('Immunization', for('patient', $this.subject), with('date').within(%ReportingPeriod) ).onServers(%Base)

supplementalData

code: Observation (ResourceType#Observation)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: COVID-19 Lab Results

Criteria

-DescriptionNameLanguageExpression
*Retrieves all Observations associated with COVID-19 LabsCOVID19Labstext/fhirpathfindAll('Observation', for('patient', $this.subject), with('code').in(%Covid19Labs.url), with('date').greaterThan(%ReportingPeriod.start - 1 'year') ).onServers(%Base)

supplementalData

code: DiagnosticReport (ResourceType#DiagnosticReport; ResourceType#DocumentReference; ResourceType#Observation; ResourceType#ServiceRequest)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: VTE Diagnostic Results

Criteria

-DescriptionNameLanguageExpression
*Retrieves diagnostics associated with VTEVTEDiagnosticstext/fhirpathfindAll('DiagnosticReport', for('patient', $this.subject), including('result', 'media'), // what else? with('date').greaterThan(%ReportingPeriod.start - 1 'year'), with('code').in(%VTEReports.url) ).onServers(%Base) | findAll('DocumentReference', for('patient', $this.subject), including('related'), // what else? with('date').greaterThan(%ReportingPeriod.start - 1 'year'), with('type').in(%VTEReports.url) ).onServers(%Base) | findAll('Observation', for('patient', $this.subject), including('based-on'), // what else? with('date').greaterThan(%ReportingPeriod.start - 1 'year'), with('code').in(%VTEReports.url) ).onServers(%Base) | findAll('ServiceRequest', for('patient', $this.subject), including('based-on'), // what else? with('date').greaterThan(%ReportingPeriod.start - 1 'year'), with('code').in(%VTEReports.url) ).onServers(%Base)

supplementalData

code: Procedure (ResourceType#Procedure; ResourceType#ServiceRequest)

usage: Supplemental Data (MeasureDataUsage#supplemental-data)

description: Isolation Precautions

Criteria

-DescriptionNameLanguageExpression
*Retrieves orders or procedures associated with Isolation PrecautionsIsolationOrderstext/fhirpathfindAll('ServiceRequest', for('patient', $this.subject), for('encounter', $this.id), with('code').in(%IsolationPrecautions.url) ).onServers(%Base) | findAll('Procedure', for('patient', $this.subject), for('encounter', $this.id), with('code').in(%IsolationPrecautions.url) ).onServers(%Base)