Skip to content

New Data Element: O2 Device (Tier 1)

KellieMarie edited this page May 12, 2022 · 2 revisions

In service of our goal to provide the richest possible dataset to support COVID-19 and long-COVID research, we are seeking sites willing to add new data elements to their common data models (and therefore N3C payloads). It is unlikely that you are supporting any of the below data elements already (though let us know if you are!); for this reason, we are providing guidance for extracting and mapping data elements and templates that you can use to store these data in your local CDMs, which will then flow through to your N3C payloads.

So that we can process everyone’s payloads consistently, we ask that you use these design templates if you are going to provide these data elements.

Have questions? Need to discuss how to apply this guidance at your site? Please reach out via the PASC Slack in the #data-enhancements channel.

Important Note on Privacy & Source/Raw Fields: These specifications require the inclusion of source/raw fields in some instances. Sites should verify these data fields do not include personally identifiable information before submitting data to N3C.

Contents

Overview

Why is this important?

This is an important element for N3C research as a significant number of hospitalized COVID patients required oxygen supplementation and/or ventilation support from an oxygen device and/or a ventilator. Current CDM data do not capture oxygen supplementation with the necessary granularity.

What sites should implement this?

Sites that have inpatient units with non-invasive and invasive O2 supplementation/ventilator capacity.

Scope and Description

  • N3C will add oxygen supplementation and ventilator in a phased approach. This guidance describes the first phase, referred to here as “Tier 1”.
  • The Tier 1 Variable of O2 device will answer the question “At a given time during an inpatient stay, which O2 device was the patient placed on to receive oxygen support?”. This encompasses any kind of O2 device used for oxygen supplementation and/or respiratory support from oxygen cannulas to invasive ventilators.
  • When a patient is on an O2 device, it is recorded at regular intervals. Please capture all of the date and time stamped values where appropriate. If the size of the resulting dataset at your site becomes a concern, please contact us for help.Sites will map O2 devices to a corresponding code in the SNOMED vocabulary or one of two custom codes. Details on the mapping process can be found below.
  • For one of the custom codes (“other oxygen device”), sites will need to bring in the raw/source value so that the N3C team can evaluate and review the mappings and to provide further guidance to sites (if need be).

Sourcing and defining O2 Device data for N3C

For sites that have Epic as their source system, much of the O2 device data will be found within flowsheets. We recommend searching for flowsheets named in the following list: '%vent %', '%O2%', '%oxy%' (or synonyms for this). Then, restrict to a flowsheet measure name of “O2 Device” (or synonyms for this at your site). However, you are not limited to this list and should investigate to make sure you are capturing most if not all of the O2 devices of interest from the table below.

Mapping O2 Devices

In order to ensure usability in the N3C Enclave, O2 devices must be mapped to standardized codes. The SNOMED class type “Physical Object” works well to describe O2 devices, and therefore SNOMED will be used as the standardized codeset for O2 devices. Two exceptions to this will require custom codes outside of SNOMED. If you have any questions along the way or are unsure about a mapping, please reach out via the PASC Slack in the #data-enhancements channel.

Each site must try to map to the most granular code possible, and we recommend the following multi-step approach to mapping:

  1. Start with the list of suggested mappings shown below and available in this spreadsheet. This list is not exhaustive, rather it is meant to be a starting place.
  2. If the source data contains values not captured in the list, sites should (a) look for alternative, valid SNOMED codes and (b) add the selected code to the spreadsheet.
    • We recommend using the Athena tool to find additional SNOMED codes. If using Athena, your search should include the following criteria in order to ensure the code is valid: Domain ID = Device, Concept = Standard, Class ID = Physical Object, Vocabulary ID = SNOMED, Validity = Valid.
  3. If, after reviewing the suggested mappings and looking for alternative SNOMED mappings, you cannot find a valid mapping, you may use the custom code for “other oxygen devices”. Sites should only resort to the “other oxygen device” code if nothing else matches. The N3C Data Harmonization team will evaluate the source/raw values mapped to this code to determine if they can be harmonized. See data model specific instructions below.
  4. Finally, “room air”, which is often captured in the context of O2 device data, particularly when a patient may be transitioning off of O2 supplementation, requires a custom code. See data model specific instructions below.

Suggested O2 SNOMED Mappings for N3C (Source: N3C Tier 1 Oxygen SNOMED Codes Spreadsheet)

O2 Device VOCAB CODE
Aerosol oxygen mask SNOMED 426851007
Aerosol Tent, adult SNOMED 468450007
Aerosol Tent, pediatric SNOMED 701256005
Air-entrainment mask SNOMED 428285009
AMBU mask SNOMED 371785003
Basic nasal oxygen cannula SNOMED 466713001
BiPAP oxygen nasal cannula SNOMED 425826004
Blow by oxygen mask SNOMED 425478008
Continuing positive airway pressure unit SNOMED 37874008
Continuous positive airway pressure/Bilevel positive airway pressure mask SNOMED 706226000
CPAP nasal oxygen cannula SNOMED 467645007
Face tent oxygen delivery device SNOMED 426294006
High Flow Nasal Cannula, HFNC SNOMED 426854004
Low Flow Nasal Cannula SNOMED 466713001
Nasal Cannula (L) SNOMED 466713001
standard nasal cannula SNOMED 466713001
Non-rebreather oxygen mask SNOMED 427591007
Non-rebreathing oxygen face mask SNOMED 463225005
Oxygen administration face tent SNOMED 464578003
Oxygen mustache cannula SNOMED 720744009
Oxygen pendant cannula SNOMED 720743003
oxygen reservoir cannula SNOMED 720742008
Oxygen Ventilator SNOMED 426160001
Oxyhood SNOMED 427594004
Oxymask SNOMED 336602003
Oxymizer SNOMED 720742008
Partial rebreather oxygen mask SNOMED 425926003
Partial-rebreathing oxygen face mask SNOMED 464233000
Oxygen mask SNOMED 336602003
T-Piece with bag SNOMED 415698007
T-Piece without bag SNOMED 415700003
Trach Collar, Tracheostomy Collar SNOMED 465839001
Tracheostomy mask, aerosol SNOMED 465256000
Tracheostomy mask, oxygen SNOMED 465839001
Transtracheal oxygen catheter SNOMED 426129001
Ventilator SNOMED 706172005
Venturi Mask SNOMED 428285009
Venturi oxygen face mask SNOMED 465433006

Example: Using the Custom Codes

The items in the table below do not have a valid matching SNOMED code. It is possible that a clinician may recognize one of these times as being substantially similar to an existing, valid SNOMED code. However, we know that not all sites will have the ability to consult with a subject matter expert, so the custom Other O2 Device code may be used.

O2 Device Code (See data model for specific instructions below )
Bag Mask Custom Other O2 Device Code
Bubble CPAP Custom Other O2 Device Code
Face Bucket Custom Other O2 Device Code
Manual Ventilation Bag Custom Other O2 Device Code
NIV (non-invasive ventilator), Non-Invasive Positive Pressure Custom Other O2 Device Code
optiflow Custom Other O2 Device Code
Vapotherm Custom Other O2 Device Code
Room Air Custom Room Air Code

How should we structure the data?

We have separate instructions for each data model below. 

OMOP

OMOP sites will follow the standard ETL process of mapping source codes extracted from the Flow Sheets to a standard vocabulary. It is the preference of the initial data enhancements for ventilation data to use terms with a Concept Class ID = Physical Object and Domain ID = Device. The table above provides guidance on the way to map Flow Sheet terms that do not map to a standard OMOP concept. In addition to the suggested mappings above, there may be additional values observed in your data that you wish to map. We suggest using the “Other oxygen device” code to start and report these values to the N3C DI&H team for consideration in this documentation. Values you map will correspond to a record in the CONCEPT table, which dictates a DOMAIN_ID. The DOMAIN_ID will tell you which domain to place the content into. Specifications for domains can be found in the OMOP CDM Wiki (https://ohdsi.github.io/CommonDataModel/cdm53.html).

We have created a custom N3C concept_id to reflect custom concepts requested by clinicians. Below is an example of the CONCEPT records for representing these codes. At a minimum, use the concept_id specified in the first column to custom map your values into your OMOP CDM. The table below can be used to amend insert into your local CONCEPT table to include these custom mappings.

concept_id concept_name domain_id vocabulary_id concept_class_id standard_concept concept_code valid_start_date valid_end_date invalid_reason
2004208004 Other oxygen device Device N3C Physical Object NULL OT_O2_DEVICE 1/1/1970 12/31/2099 NULL
2004208005 Room air (in the context of a device) Device N3C Physical Object NULL ROOM_AIR 1/1/1970 12/31/2099 NULL

This concept_id will be added to the N3C OMOP vocabulary tables inside the enclave. The ID number chosen was arbitrary. If it collides with a custom concept_id that you use locally, please let us know. Questions? Strike up a thread on the OHDSI Forum (https://forums.ohdsi.org/) and tag in the OMOP Vocabulary Team (@Dymshyts @Christian_Reich @Alexdavv @krfeeney).

A DEVICE_EXPOSURE record with a custom ROOM_AIR record would look like this:

device_exposure_id person_id device_concept_id device_exposure_start_date device_exposure_start_datetime device_exposure_end_date device_exposure_end_datetime device_type_concept_id unique_device_id quantity provider_id visit_occurence_id visit_detail_id device_source_value device_source_concept_id
123456 007007007 2004208005 01-01-2022 NULL NULL NULL 32817 NULL NULL 008008008 1234777 1234678 ROOM_AIR 2004208005

Assumption is that if populated, values in PROVIDER_ID would be information from the PROVIDER domain, VISIT_OCCURRENCE_ID would link to a record in the VISIT_OCCURRENCE domain, VISIT_DETAIL_ID would link to a record in the VISIT_DETAIL domain.

PCORnet

PCORnet sites will use the OBS_GEN table to store Tier 1- O2 device related flowsheet_ _information. To provide this data element, adjust your ETL to include the O2 device variables as described above, and use those data to fill in an OBS_GEN row as shown below. (Fields not shown in the example are not required for N3C and may be null.) Note that these visits should also appear in your ENCOUNTER table

  • If the O2 device maps to a SNOMED code, OBSGEN_TYPE should equal ‘SM’ and OBGEN_CODE should include the SNOMED code.
  • If using either of the custom codes, OBSGEN_TYPE should equal ‘UD_N3C_O2_DEVICE’ and OBSGEN_CODE should include either ‘OT_O2_DEVICE’, or ‘ROOM_AIR’.
  • Please include the source O2 device name in the RAW_OBSGEN_NAME field. We will be reviewing the source names for any O2 device that has been mapped to the Custom code for OT_O2_DEVICE and then will help sites map to a more granular SNOMED code if one is available.

OBS_GEN Template for Tier 1: O2 Devices

OBSGENID PATID ENCOUNTERID OBSGEN_START_DATE OBSGEN_START_TIME OBSGEN_STOP_DATE OBSGEN_STOP_TIME OBSGEN_TYPE OBSGEN_CODE OBSGEN_TABLE_MODIFIED OBSGEN_ID_MODIFIED OBSGEN_SOURCE RAW_OBSGEN_NAME
{generated by your ETL} {patient attached to the visit} {visit id of the clinic visit} {start date} {start time} {stop date, if available} {stop time, if available} UD_N3C_O2_DEVICE {custom type} {Custom code} ENC {whichever option is appropriate for your site} {souce value}
{generated by your ETL} {patient attached to the visit} {visit id of the clinic visit} {start date} {start time} {stop date, if available} {stop time, if available} {vocabulary used, most often will be SNOMED} {SNOMED code for O2 Device} ENC {whichever option is appropriate for your site} {souce value}

OBS_GEN Example for Tier 1: O2 Devices

OBSGENID PATID ENCOUNTERID OBSGEN_START_DATE OBSGEN_START_TIME OBSGEN_STOP_DATE OBSGEN_STOP_TIME OBSGEN_TYPE OBSGEN_CODE OBSGEN_TABLE_MODIFIED OBSGEN_ID_MODIFIED OBSGEN_SOURCE RAW_OBSGEN_NAME
1 P11 E1 5/11/2021 00:00 NULL NULL UD_N3C_O2_DEVICE ROOM_AIR ENC E1 DR None (Room air)
2 P12 E12 5/11/2021 00:00 NULL NULL UD_N3C_O2_DEVICE OT_O2_DEVICE ENC E12 DR Face Bucket
3 P25 E3 5/11/2021 06:05 NULL NULL SM 428285009 ENC E3 DR Venturi mask;Other (Comment)

i2b2/ACT

ACT sites will use the OBSERVATION_FACT table to record ventilator flowsheet facts. Follow the instructions above for mapping to SNOMED code (see Mapping O2 Devices). When mapping please place the SNOMED CT code in the concept_cd field with the namespace/prefix ‘SNOMED:’. If you are unable to find an appropriate SNOMED code to match your source value, please map to N3C specific code ‘N3C:OT_O2_DEVICE’, set the modifer_cd to RAW and place the non-PHI source value in your observation_blob field. This will help the N3C DI&H team determine if further harmonization is possible. If the source value indicates ‘Room Air’ please map to N3C specific code ‘N3C:ROOM_AIR’. Again remember for any row where you supply raw source data in the observation blob field be sure to set the modifier_cd to ‘RAW’.

 All other i2b2 ETL fact rules apply including corresponding visit_dimension and patient_dimension row entries. 

[OBSERVATION_FACT]  Template for Oxygen Supplementation and Ventilator Facts

encounter_num start_date end_date patient_num concept_cd valtype_cd valueflag_cd modifier_cd observation_blob
{visit num} {date of event} {patient attached to the visit} {ventilator type SNOMED code} T {answer LOINC code} {‘RAW’ when data is placed in the observation_blob field, otherwise NULL} {raw source value for ventilator type OTHER only}

[OBSERVATION_FACT] Example for Oxygen Supplementation and Ventilator Facts

encounter_num start_date end_date patient_num concept_cd valtype_cd valueflag_cd modifier_cd observation_blob
12345678 12-NOV-21 3456789 SNOMED:466713001 T NULL
23456789 12-NOV-21 4567890 N3C:OT_O2_DEVICE T RAW other O2 Device name from source
34567890 12-NOV-21 5678901 N3C:ROOM_AIR T NULL

TriNetX

If you are populating your TriNetX data from one of the data models above, the best approach would be to use one of the above approaches in your upstream data, and then allow those data to flow through to TriNetX. If you are populating TriNetX directly from your EHR or a custom data warehouse, please load Hospital Oxygen Supplementation and Ventilator Data into the Procedure table. The code representing the O2 Device should be stored in the Code field.

If you have any questions, please reach out to {n3c at trinetx dot com}. It is also helpful if you let the N3C team know via Slack if and when you plan to add this enriched data, so that we know to look out for it.