This table captures records about the exposure to a Drug ingested or
otherwise introduced into the body. A Drug is a biochemical substance
formulated in such a way that when administered to a Person it will
exert a certain biochemical effect on the metabolism. Drugs include
prescription and over-the-counter medicines, vaccines, and
large-molecule biologic therapies. Radiological devices ingested or
applied locally do not count as Drugs.
The purpose of records in this table is to indicate an exposure to a
certain drug as best as possible. In this context a drug is defined as
an active ingredient. Drug Exposures are defined by Concepts from the
Drug domain, which form a complex hierarchy. As a result, one
DRUG_SOURCE_CONCEPT_ID may map to multiple standard concept ids if it
is a combination product. Records in this table represent
prescriptions written, prescriptions dispensed, and drugs administered
by a provider to name a few. The DRUG_TYPE_CONCEPT_ID can be used to
find and filter on these types. This table includes additional
information about the drug products, the quantity given, and route of
administration.
Information about quantity and dose is provided in a variety of
different ways and it is important for the ETL to provide as much
information as possible from the data. Depending on the provenance of
the data fields may be captured differently i.e. quantity for drugs
administered may have a separate meaning from quantity for
prescriptions dispensed. If a patient has multiple records on the same
day for the same drug or procedures the ETL should not de-dupe them
unless there is probable reason to believe the item is a true data
duplicate. Take note on how to handle refills for prescriptions
written.
CDM Field
|
User Guide
|
ETL Conventions
|
Datatype
|
Required
|
Primary Key
|
Foreign Key
|
FK Table
|
FK Domain
|
drug_exposure_id
|
The unique key given to records of drug dispensings or
administrations for a person. Refer to the ETL for how duplicate
drugs during the same visit were handled.
|
Each instance of a drug dispensing or administration present in
the source data should be assigned this unique key. In some cases,
a person can have multiple records of the same drug within the
same visit. It is valid to keep these duplicates and assign them
individual, unique, DRUG_EXPOSURE_IDs, though it is up to the ETL
how they should be handled.
|
integer
|
Yes
|
Yes
|
No
|
|
|
person_id
|
The PERSON_ID of the PERSON for whom the drug dispensing or
administration is recorded. This may be a system generated code.
|
|
integer
|
Yes
|
No
|
Yes
|
PERSON
|
|
drug_concept_id
|
The DRUG_CONCEPT_ID field is recommended for primary use in
analyses, and must be used for network studies. This is the
standard concept mapped from the source concept id which
represents a drug product or molecule otherwise introduced to the
body. The drug concepts can have a varying degree of information
about drug strength and dose. This information is relevant in the
context of quantity and administration information in the
subsequent fields plus strength information from the DRUG_STRENGTH
table, provided as part of the standard vocabulary download.
|
The CONCEPT_ID that the DRUG_SOURCE_VALUE maps to. The concept id
should be derived either from mapping from the source concept id
or by picking the drug concept representing the most amount of
detail you have. Records whose source values map to standard
concepts with a domain of Drug should go in this table. When the
Drug Source Value of the code cannot be translated into Standard
Drug Concept IDs, a Drug exposure entry is stored with only the
corresponding SOURCE_CONCEPT_ID and DRUG_SOURCE_VALUE and a
DRUG_CONCEPT_ID of 0. The Drug Concept with the most detailed
content of information is preferred during the mapping process.
These are indicated in the CONCEPT_CLASS_ID field of the Concept
and are recorded in the following order of precedence: ‘Branded
Pack’, ‘Clinical Pack’, ‘Branded Drug’, ‘Clinical Drug’, ‘Branded
Drug Component’, ‘Clinical Drug Component’, ‘Branded Drug Form’,
‘Clinical Drug Form’, and only if no other information is
available ‘Ingredient’. Note: If only the drug class is known, the
DRUG_CONCEPT_ID field should contain 0. Accepted
Concepts.
|
integer
|
Yes
|
No
|
Yes
|
CONCEPT
|
Drug
|
drug_exposure_start_date
|
Use this date to determine the start date of the drug record.
|
Valid entries include a start date of a prescription, the date a
prescription was filled, or the date on which a Drug
administration was recorded. It is a valid ETL choice to use the
date the drug was ordered as the DRUG_EXPOSURE_START_DATE.
|
date
|
Yes
|
No
|
No
|
|
|
drug_exposure_start_datetime
|
|
This is not required, though it is in v6. If a source does not
specify datetime the convention is to set the time to midnight
(00:00:0000)
|
datetime
|
No
|
No
|
No
|
|
|
drug_exposure_end_date
|
The DRUG_EXPOSURE_END_DATE denotes the day the drug exposure ended
for the patient.
|
If this information is not explicitly available in the data, infer
the end date using the following methods:
1. Start first
with duration or days supply using the calculation drug start date
+ days supply -1 day. 2. Use quantity divided by daily dose that
you may obtain from the sig or a source field (or assumed daily
dose of 1) for solid, indivisibile, drug products. If quantity
represents ingredient amount, quantity divided by daily dose *
concentration (from drug_strength) drug concept id tells you the
dose form. 3. If it is an administration record, set drug end date
equal to drug start date. If the record is a written prescription
then set end date to start date + 29. If the record is a
mail-order prescription set end date to start date + 89. The end
date must be equal to or greater than the start date. Ibuprofen
20mg/mL oral solution concept tells us this is oral solution.
Calculate duration as quantity (200 example) * daily dose (5mL)
/concentration (20mg/mL) 200*5/20 = 50 days. Examples
by dose form
|
date
|
Yes
|
No
|
No
|
|
|
drug_exposure_end_datetime
|
|
This is not required, though it is in v6. If a source does not
specify datetime the convention is to set the time to midnight
(00:00:0000)
|
datetime
|
No
|
No
|
No
|
|
|
verbatim_end_date
|
This is the end date of the drug exposure as it appears in the
source data, if it is given
|
Put the end date or discontinuation date as it appears from the
source data or leave blank if unavailable.
|
date
|
No
|
No
|
No
|
|
|
drug_type_concept_id
|
You can use the TYPE_CONCEPT_ID to delineate between prescriptions
written vs. prescriptions dispensed vs. medication history
vs. patient-reported exposure, etc.
|
Choose the drug_type_concept_id that best represents the
provenance of the record, for example whether it came from a
record of a prescription written or physician administered drug. Accepted
Concepts. A more detailed explanation of each Type
Concept can be found on the vocabulary
wiki.
|
integer
|
Yes
|
No
|
Yes
|
CONCEPT
|
Type Concept
|
stop_reason
|
The reason a person stopped a medication as it is represented in
the source. Reasons include regimen completed, changed, removed,
etc. This field will be retired in v6.0.
|
This information is often not populated in source data and it is a
valid etl choice to leave it blank if the information does not
exist.
|
varchar(20)
|
No
|
No
|
No
|
|
|
refills
|
This is only filled in when the record is coming from a
prescription written this field is meant to represent intended
refills at time of the prescription.
|
|
integer
|
No
|
No
|
No
|
|
|
quantity
|
|
To find the dose form of a drug the RELATIONSHIP table can be used
where the relationship_id is ‘Has dose form’. If liquid, quantity
stands for the total amount dispensed or ordered of ingredient in
the units given by the drug_strength table. If the unit from the
source data does not align with the unit in the DRUG_STRENGTH
table the quantity should be converted to the correct unit given
in DRUG_STRENGTH. For clinical drugs with fixed dose forms
(tablets etc.) the quantity is the number of
units/tablets/capsules prescribed or dispensed (can be partial,
but then only 1/2 or 1/3, not 0.01). Clinical drugs with divisible
dose forms (injections) the quantity is the amount of ingredient
the patient got. For example, if the injection is 2mg/mL but the
patient got 80mL then quantity is reported as 160. Quantified
clinical drugs with divisible dose forms (prefilled syringes), the
quantity is the amount of ingredient similar to clinical drugs.
Please see how
to calculate drug dose for more
information.
|
float
|
No
|
No
|
No
|
|
|
days_supply
|
|
Days supply of the drug. This should be the verbatim days_supply
as given on the prescription. If the drug is physician
administered use duration end date if given or set to 1 as default
if duration is not available.
|
integer
|
No
|
No
|
No
|
|
|
sig
|
This is the verbatim instruction for the drug as written by the
provider.
|
Put the written out instructions for the drug as it is verbatim in
the source, if available.
|
varchar(MAX)
|
No
|
No
|
No
|
|
|
route_concept_id
|
|
The standard CONCEPT_ID that the ROUTE_SOURCE_VALUE maps to in the
route domain.
|
integer
|
No
|
No
|
Yes
|
CONCEPT
|
Route
|
lot_number
|
|
|
varchar(50)
|
No
|
No
|
No
|
|
|
provider_id
|
The Provider associated with drug record, e.g. the provider who
wrote the prescription or the provider who administered the drug.
|
The ETL may need to make a choice as to which PROVIDER_ID to put
here. Based on what is available this may or may not be different
than the provider associated with the overall VISIT_OCCURRENCE
record, for example the ordering vs administering physician on an
EHR record.
|
integer
|
No
|
No
|
Yes
|
PROVIDER
|
|
visit_occurrence_id
|
The Visit during which the drug was prescribed, administered or
dispensed.
|
To populate this field drug exposures must be explicitly initiated
in the visit.
|
integer
|
No
|
No
|
Yes
|
VISIT_OCCURRENCE
|
|
visit_detail_id
|
The VISIT_DETAIL record during which the drug exposure occurred.
For example, if the person was in the ICU at the time of the drug
administration the VISIT_OCCURRENCE record would reflect the
overall hospital stay and the VISIT_DETAIL record would reflect
the ICU stay during the hospital visit.
|
Same rules apply as for the VISIT_OCCURRENCE_ID.
|
integer
|
No
|
No
|
Yes
|
VISIT_DETAIL
|
|
drug_source_value
|
This field houses the verbatim value from the source data
representing the drug exposure that occurred. For example, this
could be an NDC or Gemscript code.
|
This code is mapped to a Standard Drug Concept in the Standardized
Vocabularies and the original code is stored here for reference.
|
varchar(50)
|
No
|
No
|
No
|
|
|
drug_source_concept_id
|
This is the concept representing the drug source value and may not
necessarily be standard. This field is discouraged from use in
analysis because it is not required to contain Standard Concepts
that are used across the OHDSI community, and should only be used
when Standard Concepts do not adequately represent the source
detail for the Drug necessary for a given analytic use case.
Consider using DRUG_CONCEPT_ID instead to enable standardized
analytics that can be consistent across the network.
|
If the DRUG_SOURCE_VALUE is coded in the source data using an OMOP
supported vocabulary put the concept id representing the source
value here.
|
integer
|
No
|
No
|
Yes
|
CONCEPT
|
|
route_source_value
|
This field houses the verbatim value from the source data
representing the drug route.
|
This information may be called something different in the source
data but the field is meant to contain a value indicating when and
how a drug was given to a patient. This source value is mapped to
a standard concept which is stored in the ROUTE_CONCEPT_ID field.
|
varchar(50)
|
No
|
No
|
No
|
|
|
dose_unit_source_value
|
This field houses the verbatim value from the source data
representing the dose unit of the drug given.
|
This information may be called something different in the source
data but the field is meant to contain a value indicating the unit
of dosage of drug given to the patient. This
is an older column and will be deprecated in an upcoming version.
|
varchar(50)
|
No
|
No
|
No
|
|
|