Your User Friendly Name for MyContentIG Here
0.4.6 - CI Build International flag

Your User Friendly Name for MyContentIG Here, published by HL7 International - [Some] Work Group. This guide is not an authorized publication; it is the continuous build for version 0.4.6 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/sample-content-ig/ and changes regularly. See the Directory of published versions

Measure: Core Clinical Data Elements for the Hybrid Hospital-Wide (All-Condition, All-Procedure) Risk-Standardized Mortality Measure (HWM) FHIR Example

Official URL: http://somewhere.org/fhir/uv/mycontentig/Measure/HybridHospitalWideMortalityFHIRExample Version: 0.4.6
Draft as of 2024-05-06 Computable Name: HybridHospitalWideMortalityFHIRExample
Other Identifiers: Short Name (use: usual, ), UUID:965255e9-dfeb-42d0-8416-2c4b7ecc5109 (use: official, ), UUID:2c92808482113ece0182c5d4fc662f1a (use: official, ), Endorser (use: official, ), Publisher (use: official, )

Copyright/Legal: Limited proprietary coding is contained in these specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets.

This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2021 International Health Terminology Standards Development Organisation. All rights reserved.

LOINC(R) copyright 2004-2021 Regenstrief Institute, Inc.

This logic is intended to extract electronic clinical data. This is not an electronic clinical quality measure and this logic will not produce measure results. Instead, it will produce a file containing the data that CMS will link with administrative claims to risk adjust the Hybrid HWM outcome measure. It is designed to extract the first resulted set of vital signs and basic laboratory results obtained from encounters for adult Medicare Fee-For-Service patients admitted to acute care short stay hospitals.

UNKNOWN

Knowledge Artifact Metadata
Name (machine-readable) HybridHospitalWideMortalityFHIRExample
Title (human-readable) Core Clinical Data Elements for the Hybrid Hospital-Wide (All-Condition, All-Procedure) Risk-Standardized Mortality Measure (HWM) FHIR Example
Status Draft
Experimental false
Description

This logic is intended to extract electronic clinical data. This is not an electronic clinical quality measure and this logic will not produce measure results. Instead, it will produce a file containing the data that CMS will link with administrative claims to risk adjust the Hybrid HWM outcome measure. It is designed to extract the first resulted set of vital signs and basic laboratory results obtained from encounters for adult Medicare Fee-For-Service patients admitted to acute care short stay hospitals.

Purpose

UNKNOWN

Clinical Usage This FHIR-based measure has been derived from the QDM-based measure: CMS844v3.1 (QDM 5.6). Please refer to the HL7 QI-Core Implementation Guide (http://hl7.org/fhir/us/qicore/index.html) for more information on QI-Core and mapping recommendations from QDM to QI-Core 4.1.1 (http://hl7.org/fhir/us/qicore/qdm-to-qicore.html). These specifications are for use for data with discharges that occur between July 1, 2023 and June 30, 2024. This logic guides the user to extract the FIRST resulted HWM-specific core clinical data elements for all Medicare Fee-For-Service encounters for patients age 65 to 94 (Initial Population) directly admitted to the hospital or admitted to the same facility after being treated in another area, such as the emergency department or hospital outpatient location. The logic supports extraction of the FIRST set of HWM-specific core clinical data elements in two different ways, depending on if the patient was a direct admission, meaning that the patient was admitted directly to an inpatient unit without first receiving care in the emergency department or other hospital outpatient locations within the same admitting facility: 1. If the patient was a direct admission, the logic supports extraction of the FIRST resulted vital signs within 2 hours (120 minutes) after the start of the inpatient admission, and the FIRST resulted laboratory tests within 24 hours (1440 minutes) after the start of the inpatient admission. 2. If the patient has values captured prior to admission, for example from the emergency department, pre-operative, or other outpatient area within the hospital, the logic supports extraction of the FIRST resulted vital signs and laboratory tests within 24 hours (1440 minutes) PRIOR to the start of the inpatient admission. All clinical systems used in inpatient and outpatient locations within the hospital facility should be queried when looking for core clinical data element values related to a patient who is subsequently admitted. Value sets for the laboratory tests represent the LOINC codes currently available for these tests. If the institution is using local codes to capture and store relevant laboratory test data, those sites should map that information to the LOINC code for reporting of the core clinical data elements. NOTE: Do not report ALL values on an encounter during their entire admission. Only report the FIRST resulted value for EACH core clinical data element collected in the appropriate timeframe, if available. For each core clinical data element, please report values using one of the appropriate units of measurement listed below, which represent valid UCUM codes: Core Clinical Data Element UCUM Unit Bicarbonate-----------------------------------meq/L mmol/L Creatinine-------------------------------------mg/dL umol/L Heart rate------------------------------------{Beats}/min Hematocrit -----------------------------------% Oxygen saturation (by pulse oximetry)-----%{Oxygen} Platelet----------------------------------------10*3/uL 10*9/L /mm3 Sodium----------------------------------------meq/L mmol/L Systolic blood pressure----------------------mm[Hg] Temperature----------------------------------Cel [degF] White blood cell count ----------------------{Cells}/uL 10*3/uL 10*9/L /mm3 For each encounter please also submit the following Linking Variables: CMS Certification Number; Health Insurance Claim Number (HICN) or Medicare Beneficiary Identifier (MBI); Date of Birth; Sex; Inpatient Admission Date; and, Discharge Date. The initial population includes patients with inpatient hospitalizations and patients from Acute Hospital Care at Home programs, who are treated and billed as inpatients but receive care in their home.
Approval Date 2023-08-14
Effective Period 2024-07-01..2025-06-30
Measure Developer Mathematica: https://www.mathematica.org/
Measure Developer Yale New Haven Health Service Corporation/ Center for Outcomes Research and Evaluation: https://medicine.yale.edu/core/
Measure Steward HL7 International - [Some] Work Group
Steward Contact Details http://hl7.org/Special/committees/[something]
Copyright

Limited proprietary coding is contained in these specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets.

This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2021 International Health Terminology Standards Development Organisation. All rights reserved.

LOINC(R) copyright 2004-2021 Regenstrief Institute, Inc.

Measure Metadata
Short Name Identifier CMS844FHIR
Version Independent Identifier urn:uuid:965255e9-dfeb-42d0-8416-2c4b7ecc5109
Version Specific Identifier urn:uuid:2c92808482113ece0182c5d4fc662f1a
Publisher (CMS) Identifier 844FHIR
Identifier Endorser/3502 (use: official, )
Version Number 0.4.6
Rationale

The intent of this logic is to extract the FIRST set of clinical data elements from hospital electronic health records (EHRs) for all qualifying encounters. The data will be linked with administrative claims to risk adjust the Hybrid HWM outcome measure. This work addresses stakeholder concerns that clinical data garnered from patients, and used by clinicians to guide diagnostic decisions and treatment, are preferable to administrative claims data when profiling hospitals’ case mix. We are calling the list of data elements for extraction the "HWM-specific core clinical data elements". The core clinical data elements are the first set of vital signs and basic laboratory tests resulted from encounters for adult Medicare Fee-For-Service patients, age 65 to 94 (Initial Population), after they arrive at the hospital to which they are subsequently admitted. For example, this first set of data values are often captured in the emergency department or in the pre-operative area, sometimes hours before a patient is admitted to that same facility. Encounters over the age of 94 are not included to avoid holding hospitals responsible for the survival of the oldest elderly patients, who may be less likely to have survival as a primary goal. While we acknowledge that many elderly patients do have survival beyond 30 days as a primary goal for their hospitalization, with input from our Technical Expert Panel and work groups, we decided to only include encounters between 65 and 94 years of age.

These core clinical data elements were selected because they: 1. reflect patients' clinical status when they first present to the hospital; 2. are clinically and statistically relevant to patient outcomes; 3. are consistently obtained on adult inpatient encounters based on current clinical practice; 4. are captured with a standard definition and recorded in a standard format across providers; and 5. are entered in structured fields that are feasibly retrieved from current EHR systems (YNHHSC/CORE, 2015).

Additional data called Linking Variables are used to link EHR data files with administrative claims data for CMS to calculate results for the Hybrid HWM measure, which are: CMS Certification Number; Health Insurance Claim Number (HICN) or Medicare Beneficiary Identifier (MBI); date of birth; sex; admission date; and discharge date.

Clinical Recommendation Statement

The logic is not meant to guide or alter the care patients receive. The purpose of this core clinical data elements logic is to extract clinical data that are already routinely captured in EHRs from encounters for hospitalized adult patients. It is not intended to require that clinical staff perform additional measurements or tests that are not needed for diagnostic assessment or treatment of patients.

Measure Population Criteria (ID: 6385011c4ba3d47c885c02aa)
Initial Population ID: 24BB5BA9-820F-4958-B8AA-AA8962E9E398
Description:

All Medicare Fee-For-Service encounters age 65 to 94 years at the start of an inpatient admission, who are discharged during the measurement period (length of stay <365 days). NOTE: All Medicare Fee-For-Service encounters meeting the above criteria should be included, regardless if Medicare Fee-For-Service is the primary, secondary, or tertiary payer.

Logic Definition: Initial Population
Population Basis Encounter
Scoring Cohort
Type Outcome
Supplemental Data Elements
Supplemental Data Element ID: results
Usage Code: Supplemental Data
Description: Results
Logic Definition: Results
Supplemental Data Element ID: sde-ethnicity
Usage Code: Supplemental Data
Description: SDE Ethnicity
Logic Definition: SDE Ethnicity
Supplemental Data Element ID: sde-payer
Usage Code: Supplemental Data
Description: SDE Payer
Logic Definition: SDE Payer
Supplemental Data Element ID: sde-race
Usage Code: Supplemental Data
Description: SDE Race
Logic Definition: SDE Race
Supplemental Data Element ID: sde-sex
Usage Code: Supplemental Data
Description: SDE Sex
Logic Definition: SDE Sex
Measure Logic
Primary Library Hybrid Hospital-Wide Mortality FHIR Example
Dependency Description: Library SDE
Resource: Supplemental Data Elements Example
Canonical URL: http://somewhere.org/fhir/uv/mycontentig/Library/SupplementalDataElementsExample
Dependency Description: Library FHIRHelpers
Resource: http://hl7.org/fhir/Library/FHIRHelpers|4.0.1
Canonical URL: http://hl7.org/fhir/Library/FHIRHelpers|4.0.1
Dependency Description: Library CQMCommon
Resource: CQM Common Example
Canonical URL: http://somewhere.org/fhir/uv/mycontentig/Library/CQMCommonExample
Dependency Description: Library QICoreCommon
Resource: QICore Common Example
Canonical URL: http://somewhere.org/fhir/uv/mycontentig/Library/QICoreCommonExample
Dependency Description: Code system ActCode
Resource: ActCode
Canonical URL: http://terminology.hl7.org/CodeSystem/v3-ActCode
Dependency Description: Value set Encounter Inpatient
Resource: Encounter Inpatient
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307
Dependency Description: Value set Medicare payer
Resource: Medicare payer
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1104.10
Dependency Description: Value set Observation Services
Resource: Observation Services
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143
Dependency Description: Value set Emergency Department Visit
Resource: Emergency Department Visit
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292
Dependency Description: Value set Heart Rate
Resource: Heart Rate
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.149
Dependency Description: Value set Systolic Blood Pressure
Resource: Systolic Blood Pressure
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.163
Dependency Description: Value set Body temperature
Resource: Body temperature
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.152
Dependency Description: Value set Oxygen Saturation by Pulse Oximetry
Resource: Oxygen Saturation by Pulse Oximetry
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.151
Dependency Description: Value set Hematocrit lab test
Resource: Hematocrit lab test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.114
Dependency Description: Value set Platelet count lab test
Resource: Platelet count lab test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.127
Dependency Description: Value set White blood cells count lab test
Resource: White blood cells count lab test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.129
Dependency Description: Value set Sodium lab test
Resource: Sodium lab test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.119
Dependency Description: Value set Bicarbonate lab test
Resource: Bicarbonate lab test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.139
Dependency Description: Value set Creatinine lab test
Resource: Creatinine lab test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.2363
Dependency Description: Value set Payer Type
Resource: Payer
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591
Direct Reference Code Display: Inpatient
Code: IMP
System: http://terminology.hl7.org/CodeSystem/v3-ActCode
Direct Reference Code Display: Acute
Code: ACUTE
System: http://terminology.hl7.org/CodeSystem/v3-ActCode
Direct Reference Code Display: Nonacute
Code: NONAC
System: http://terminology.hl7.org/CodeSystem/v3-ActCode
Direct Reference Code Display: Observation Encounter
Code: OBSENC
System: http://terminology.hl7.org/CodeSystem/v3-ActCode
Parameter Name: Measurement Period
Use: In
Min Cardinality: 0
Max Cardinality: 1
Type: Period
Parameter Name: SDE Sex
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Coding
Parameter Name: Results
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: string
Parameter Name: SDE Payer
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Resource
Parameter Name: Initial Population
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Resource
Parameter Name: SDE Ethnicity
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Resource
Parameter Name: SDE Race
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Resource
Measure Logic Data Requirements
Data Requirement Type: Patient
Profile(s): QICore Patient
Must Support Elements: url, extension
Data Requirement Type: Encounter
Profile(s): QICore Encounter
Must Support Elements: type, status, status.value, period, id, id.value
Code Filter(s):
Path: type
ValueSet: Observation Services
Data Requirement Type: Encounter
Profile(s): QICore Encounter
Must Support Elements: type, status, status.value, period, id, id.value
Code Filter(s):
Path: type
ValueSet: Emergency Department Visit
Data Requirement Type: Encounter
Profile(s): QICore Encounter
Must Support Elements: type, status, status.value, class, period, id, id.value
Code Filter(s):
Path: type
ValueSet: Encounter Inpatient
Data Requirement Type: Coverage
Profile(s): QICore Coverage
Must Support Elements: type
Code Filter(s):
Path: type
ValueSet: Medicare payer
Data Requirement Type: Coverage
Profile(s): QICore Coverage
Must Support Elements: type, period
Code Filter(s):
Path: type
ValueSet: Payer
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Heart Rate
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Systolic Blood Pressure
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Body temperature
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Oxygen Saturation by Pulse Oximetry
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Hematocrit lab test
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Platelet count lab test
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: White blood cells count lab test
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Sodium lab test
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Bicarbonate lab test
Data Requirement Type: Observation
Profile(s): QICore Observation
Must Support Elements: code, effective, status, status.value, value, issued, issued.value
Code Filter(s):
Path: code
ValueSet: Creatinine lab test
Measure Logic Definitions
Logic Definition Library Name: SupplementalDataElementsExample
define "SDE Sex":
  case
      when Patient.gender = 'male' then Code { code: 'M', system: 'http://hl7.org/fhir/v3/AdministrativeGender', display: 'Male' }
      when Patient.gender = 'female' then Code { code: 'F', system: 'http://hl7.org/fhir/v3/AdministrativeGender', display: 'Female' }
      else null
    end
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define "SDE Sex":
  SDE."SDE Sex"
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define "Inpatient Encounters":
  from
    ["Encounter": "Encounter Inpatient"] InpatientEncounter,
    ["Coverage": "Medicare payer"] Payer
    where InpatientEncounter.status = 'finished'
      and ( InpatientEncounter.class ~ "IMP"
          or InpatientEncounter.class ~ "ACUTE"
          or InpatientEncounter.class ~ "NONAC"
          or InpatientEncounter.class ~ "OBSENC"
      )
      and AgeInYearsAt(date from start of InpatientEncounter.period) in Interval[65, 94]
      and InpatientEncounter.hospitalizationWithObservationLengthofStay ( ) < 365
      and InpatientEncounter.period ends during day of "Measurement Period"
    return InpatientEncounter
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
/*Inpatient encounter initially listed as AMB class; changed this to inpatient classes as discussed with CORE team- AM*/


define "Results":
  flatten {
    //First physical exams (vital signs)       
  "FirstPhysicalExamWithEncounterId"([Observation: "Heart Rate"], 'FirstHeartRate'), "FirstPhysicalExamWithEncounterId"([Observation: "Systolic Blood Pressure"], 'FirstSystolicBP'), "FirstPhysicalExamWithEncounterId"([Observation: "Body temperature"], 'FirstTemperature'), "FirstPhysicalExamWithEncounterId"([Observation: "Oxygen Saturation by Pulse Oximetry"], 'FirstO2Saturation'),
    //First lab tests
  "FirstLabTestWithEncounterId"([Observation: "Hematocrit lab test"], 'FirstHematocrit'), "FirstLabTestWithEncounterId"([Observation: "Platelet count lab test"], 'FirstPlateletCount'), "FirstLabTestWithEncounterId"([Observation: "White blood cells count lab test"], 'FirstWhiteBloodCell'), "FirstLabTestWithEncounterId"([Observation: "Sodium lab test"], 'FirstSodium'), "FirstLabTestWithEncounterId"([Observation: "Bicarbonate lab test"], 'FirstBicarbonate'), "FirstLabTestWithEncounterId"([Observation: "Creatinine lab test"], 'FirstCreatinine') }
Logic Definition Library Name: SupplementalDataElementsExample
define "SDE Payer":
  [Coverage: type in "Payer Type"] Payer
    return {
      code: Payer.type,
      period: Payer.period
    }
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define "SDE Payer":
  SDE."SDE Payer"
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define "Initial Population":
  "Inpatient Encounters"
Logic Definition Library Name: SupplementalDataElementsExample
define "SDE Ethnicity":
  Patient.ethnicity E
    return Tuple {
      codes: { E.ombCategory } union E.detailed,
      display: E.text
    }
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define "SDE Ethnicity":
  SDE."SDE Ethnicity"
Logic Definition Library Name: SupplementalDataElementsExample
define "SDE Race":
  Patient.race R
    return Tuple {
      codes: R.ombCategory union R.detailed,
      display: R.text
    }
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define "SDE Race":
  SDE."SDE Race"
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define function "FirstPhysicalExamWithEncounterId"(ExamList List<Observation>, CCDE String):
  "Inpatient Encounters" Encounter
    let firstexam: First(ExamList Exam
        where start of QICoreCommon."ToInterval"(Exam.effective) is not null
          and start of QICoreCommon."ToInterval"(Exam.effective) during Interval[start of Encounter.period - 1440 minutes, start of Encounter.period + 120 minutes]
          and Exam.status in { 'final', 'amended', 'preliminary' }
          and Exam.value is not null
        sort by start of QICoreCommon."ToInterval"(effective)
    )
    return '\r\n' & CCDE & ',' & Encounter.id & ' , ' & ( ToString(firstexam.value as Quantity) ) & ',' & ToString(start of QICoreCommon."ToInterval"(firstexam.effective))
Logic Definition Library Name: CQMCommonExample
/*
@description: Hospitalization with Observation Length of Stay returns the length in days from the start of any immediately prior emergency department visit through the observation visit to the discharge of the given encounter
*/
define fluent function hospitalizationWithObservationLengthofStay(TheEncounter "Encounter" ):
  ((TheEncounter."hospitalizationWithObservation"(). "lengthInDays"()))
Logic Definition Library Name: CQMCommonExample
/*
@description: Calculates the difference in calendar days between the start and end of the given interval.
*/
define fluent function lengthInDays(Value Interval<DateTime> ):
  difference in days between start of Value and end of Value
Logic Definition Library Name: CQMCommonExample
/*
@description: Hospitalization with Observation returns the total interval from the start of any immediately prior emergency department visit through the observation visit to the discharge of the given encounter
*/
define fluent function hospitalizationWithObservation(TheEncounter Encounter ):
  TheEncounter Visit
  		let ObsVisit: Last([Encounter: "Observation Services"] LastObs
  				where LastObs.status = 'finished'
            and LastObs.period ends 1 hour or less on or before start of Visit.period
  				sort by end of period
  			),
  			VisitStart: Coalesce(start of ObsVisit.period, start of Visit.period),
  			EDVisit: Last([Encounter: "Emergency Department Visit"] LastED
  				where LastED.status = 'finished'
            and LastED.period ends 1 hour or less on or before VisitStart
  				sort by end of period
  			)
  		return Interval[Coalesce(start of EDVisit.period, VisitStart), end of Visit.period]
Logic Definition Library Name: QICoreCommonExample
/*
@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
@comment: Normalizes a choice type of DateTime, Quanitty, Interval<DateTime>, or Interval<Quantity> types
to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
representations for timing-valued elements in QICore, allowing this function to be used across any resource.
The input can be provided as a DateTime, Quantity, Interval<DateTime> or Interval<Quantity>.
The intent of this function is to provide a clear and concise mechanism to treat single
elements that have multiple possible representations as intervals so that logic doesn't have to account
for the variability. More complex calculations (such as medication request period or dispense period
calculation) need specific guidance and consideration. That guidance may make use of this function, but
the focus of this function is on single element calculations where the semantics are unambiguous.
If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
If the input is a DateTime Interval, the result is the input.
If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
Any other input will reslt in a null DateTime Interval
@deprecated: This function is deprecated. Use the fluent function `toInterval()` instead
*/
define function ToInterval(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>>):
  case
	  when choice is DateTime then
    	Interval[choice as DateTime, choice as DateTime]
		when choice is Interval<DateTime> then
  		choice as Interval<DateTime>
		when choice is Quantity then
		  Interval[Patient.birthDate + (choice as Quantity),
			  Patient.birthDate + (choice as Quantity) + 1 year)
		when choice is Interval<Quantity> then
		  Interval[Patient.birthDate + (choice.low as Quantity),
			  Patient.birthDate + (choice.high as Quantity) + 1 year)
		when choice is QICore.Timing then
            null as Interval<DateTime>
		else
			null as Interval<DateTime>
	end
Logic Definition Library Name: HybridHospitalWideMortalityFHIRExample
define function "FirstLabTestWithEncounterId"(LabList List<Observation>, CCDE String):
  "Inpatient Encounters" Encounter
    let firstlab: First(LabList Lab
        where Lab.issued is not null
          and Lab.issued during Interval[start of Encounter.period - 1440 minutes, start of Encounter.period + 1440 minutes]
          and Lab.status in { 'final', 'amended', 'preliminary' }
          and Lab.value is not null
        sort by issued
    )
    return '\r\n' & CCDE & ',' & Encounter.id & ',' & ( ToString(firstlab.value as Quantity) ) & ',' & ToString(firstlab.issued)
Logic Definition Library Name: FHIRHelpers
define function ToString(value uri): value.value
Logic Definition Library Name: FHIRHelpers
define function ToCode(coding FHIR.Coding):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }
Generated using version 0.4.6 of the sample-content-ig Liquid templates