Documentation updates to support CDM v5.4

This commit is contained in:
Clair Blacketer 2021-09-22 15:39:44 -04:00
parent a87f9d149a
commit 46da3238af
56 changed files with 20463 additions and 2341 deletions

View File

@ -1,39 +1,85 @@
--- ---
title: "Readme" title: "Readme"
output: output:
html_document: pdf_document:
toc: TRUE toc: yes
toc_float: TRUE html_document:
toc: yes
toc_float: yes
--- ---
# How to Update the CDM # How to Use this Repository
**NOTE** This information is for the maintainers of the CDM as it is best for all information to be in one place. If you want to suggest an update or addition to the OMOP CDM please visit the [CommonDataModel repo](https://github.com/OHDSI/CommonDataModel/issues). The instructions contained herein are meant to describe the process by which new versions of the CDM are produced, should it need to be replicated in the future. These steps are also enumerated in `extras/codeToRun.R`. ## Generating the DDLs
*By John and Sam Gresh*
Typically, new CDM versions and updates are decided by the CDM working group (details to join meetings on [homepage](https://ohdsi.github.io/CommonDataModel/)). These changes are tracked as issues in the [github repo](https://github.com/OHDSI/CommonDataModel/issues). Once the working group decides which changes make up a version, all the corresponding issues should be tagged with a version number e.g. v6.1. If you prefer to generate the DDLs on your own without downloading them from the github tags, these instructions will guide you on how to do so.
### Introduction
This module will demonstrate how to individually create the DDL scripts for DDL, foreign keys, primary keys, and indexed for a single database instance at a time. This module is intended for end users that wish to generate these scripts from R without the need to clone or download the source code from github. The scripts that are created through this process are available as zip files here (TODO: NEED LINK).
#### Dependencies and prerequisites
This process required R-Studio to be installed as well as [DatabaseConnector](https://github.com/ohdsi/DatabaseConnector) and [SqlRender](https://github.com/ohdsi/SqlRender).
#### Create DDL, Foreign Keys, Primary Keys, and Indexes from R
Launch R-Studio and create a new project: File -> New Project -> New Directory -> New Project
After completing this step you should see something like the following:
![](docs/images/Rexample1.png)
For the next step, you can either open a new R script (File -> New File -> R Script), paste the text in the console, or open an R notebook (File -> New File -> New R Notebook). Whatever you choose, paste the following, replacing "output" with the name of the output file where you want the DDLs to appear and "YOUR_CDM_SCHEMA" with the name of your CDM schema. In this example we are generating the postgresql DDLs by specifying the dialect in the function calls. To determine which dialects are supported, run the `CommonDataModel::listSupportedDialects()` function.
```{r}
if (!require("devtools")) install.packages("devtools")
devtools::install_github("OHDSI/CommonDataModel", "v5.4")
CommonDataModel::writeDdl("postgresql", "5.4", "output", "YOUR_CDM_SCHEMA")
CommonDataModel::writeForeignKeys("postgresql", "5.4", "output", "YOUR_CDM_SCHEMA")
CommonDataModel::writePrimaryKeys("postgresql", "5.4", "output", "YOUR_CDM_SCHEMA")
CommonDataModel::writeIndex("postgresql", "5.4", "output", "YOUR_CDM_SCHEMA")
```
![](docs/images/Rexample2.png)
![](docs/images/Rexample3.png)
You will then see something like the below, with your output directory created and the DDLs available in the folder you specified.
## Bug Fixes/Model Updates
**NOTE** This information is for the maintainers of the CDM as well as anyone looking to submit a pull request. If you want to suggest an update or addition to the OMOP Common Data Model itself please open an [issue](https://github.com/OHDSI/CommonDataModel/issues) using the proposal template. The instructions contained herein are meant to describe the process by which bugs in the DDL code should be addressed and/or new versions of the CDM are produced.
*Just looking for the latest version of the CDM and you don't care about the R package? Please visit the [releases tab](https://github.com/OHDSI/CommonDataModel/tags) and download the latest. It will include the DDLs for all currently supported versions of the CDM for all supported SQL dialects.*
Typically, new CDM versions and updates are decided by the CDM working group (details to join meetings on [homepage](https://ohdsi.github.io/CommonDataModel/)). These changes are tracked as issues in the [github repo](https://github.com/OHDSI/CommonDataModel/issues). Once the working group decides which changes make up a version, all the corresponding issues should be tagged with a version number, e.g. v5.4, and added to a project board.
## Step 0 ## Step 0
All the issues and additions that are incorporated into the new CDM version will be handled in the [CommonDataModel repository](https://github.com/OHDSI/CommonDataModel). Changes should be made in the representative csv files and it is the job of the CdmDdlBase repo to take those files and convert them to DDLs and documentation. This README will walk through how to update and create all the relevant DDLs, constraints, indices, and documentation for the CDM utilizing both the CommonDataModel repo and the CdmDdlBase repo. **Changes to the model structure** should be made in the representative csv files by adding, subtracting, or renaming fields or tables. ETL conventions are not currently tracked by CDM version unless they are conventions specific to new fields (for example CONDITION_STATUS was added in v5.3 which specifies the way in which primary condition designations should be captured).
**Bug fixes** are made much the same way using the csv files, but they should be limited to typos, primary/foreign key relationships, and formatting (like datetime vs datetime2).
## Step 1 ## Step 1
Create a branch in the CommonDataModel repository for the new version of the CDM you are creating. If you are making **changes to the model structure** request a new branch in the CommonDataModel repository for the new version of the CDM you are creating. Then, fork the repository and clone the newly made branch. If you are **squashing bugs** fork the repository and clone the master branch.
### Step 1.1 ### Step 1.1
Rename the csv files from the current released version to the new version. For example, if the new version you are creating is v6.0 and the most recent released version is v5.3.1, rename the csv files named "OMOP_CDMv5.3.1_Field_Level.csv" and "OMOP_CDMv5.3.1_Table_Level.csv" to "OMOP_CDMv6.0_Field_Level.csv" and "OMOP_CDMv6.0_Table_Level.csv". These files serve multiple functions; they serve as the basis for the CDM DDL, CDM documentation, and Data Quality Dashboard (DQD). You can read more about the DQD [here](https://ohdsi.github.io/DataQualityDashboard/index.html). For **changes to the model structure**, rename the table level and field level inst/csv files from the current released version to the new version. For example, if the new version you are creating is v5.4 and the most recent released version is v5.3, rename the csv files named "OMOP_CDMv5.3_Field_Level.csv" and "OMOP_CDMv5.3_Table_Level.csv" to "OMOP_CDMv5.4_Field_Level.csv" and "OMOP_CDMv5.4_Table_Level.csv". These files serve multiple functions; they serve as the basis for the CDM DDL, CDM documentation, and Data Quality Dashboard (DQD). You can read more about the DQD [here](https://ohdsi.github.io/DataQualityDashboard/index.html).
For **squashing bugs** make the necessary changes in the csv file corresponding to the major.minor version you are fixing. For example, if you are working on fixes to v5.3.3 you would make changes in the v5.3 files. (skip to step 2)
### Step 1.2 ### Step 1.2
The csv files can now be updated with the changes and additions for the new CDM version. If a new table should be added, add a line to the *Table_Level.csv* with the table name and description and list it as part of the CDM schema. The remaining columns are quality checks that can be run. Details [here](https://ohdsi.github.io/DataQualityDashboard/index.html) on what those are. After adding any tables, make any changes or additions to CDM fields in the *Field_Level.csv*. The columns are meant to mimic how a DDL is structured, which is how it will eventually be generated. A yes in the field *isRequired* indicates a NOT NULL constraint and the datatype field should be filled in exactly how it would look in the DDL. Any additions or changes should also be reflected in the userGuidance and etlConventions fields, which are the basis for the documentation. **DO NOT MAKE ANY CHANGES IN THE DDL ITSELF**. The structure is set up in such a way that the csv files are the ground truth. If changes are made in the DDL instead of the csv files then the DDL will be out of sync with the documentation and the DQD. The csv files can now be updated with the changes and additions for the new CDM version. If a new table should be added, add a line to the *Table_Level.csv* with the table name and description and list it as part of the CDM schema. The remaining columns are quality checks that can be run. Details [here](https://ohdsi.github.io/DataQualityDashboard/index.html) on what those are. After adding any tables, make any changes or additions to CDM fields in the *Field_Level.csv*. The columns are meant to mimic how a DDL is structured, which is how it will eventually be generated. A yes in the field *isRequired* indicates a NOT NULL constraint and the datatype field should be filled in exactly how it would look in the DDL. Any additions or changes should also be reflected in the userGuidance and etlConventions fields, which are the basis for the documentation. **DO NOT MAKE ANY CHANGES IN THE DDL ITSELF**. The structure is set up in such a way that the csv files are the ground truth. If changes are made in the DDL instead of the csv files then the DDL will be out of sync with the documentation and the DQD.
## Step 2 ## Step 2
Push the csv files up to the branch for the new CDM version and then switch to the CdmDdlBase repository. Get the zip url for the CDM branch (on the github page for the branch, click on the green download button and then right click on download zip to get the url) in progress and use the file `packageMaintenance.R` and the instructions therein to copy the csv files over to the inst/csv folder of the CdmDdlBase package. For each CDM version represented in CdmDdlBase there should be two csv files. For example, CDM v5.3.1 has csv files "OMOP_CDMv5.3.1_Field_Level" and "OMOP_CDMv5.3.1_Table_Level" in the inst/csv folder. Once all changes are made the csvs, rebuild the package and then open `extras/codeToRun.R`. To make sure that your new version is recognized by the package run the function `listSupportedVersions()`. If you do not see it, make sure your new csv files are in inst/csv and that you have rebuilt the package. Once you have confirmed that the package recognizes your new version, run the function `buildRelease()`. You should now see a file in inst/ddl for your new version.
## Step 3 **NOTE ABOUT CDM v6.0**
Once all changes are made the csvs, open `extras/codeToRun.R` and run the `createDdlFromFile` function, setting the parameters `cdmTableCsvLoc` and `cdmFieldCsvLoc` to the locations of the csv files created in step 3. For example, the `cdmTableCsvLoc` for cdm v5.3.1 is "inst/csv/OMOP_CDMv5.3.1_Table_Level.csv". This will create a sql file in *inst/sql/sql_server* with the ddl for the current cdm version. Once the DDL is created, run the `createPkFromFile` and `createFkFromFile` functions to create the primary key and foreign key scripts. ====================
## Step 4 Please be aware that v6.0 of the OMOP CDM is **not** fully supported by the OHDSI suite of tools and methods. The major difference in CDM v5.3 and CDM v6.0 involves switching the \*_datetime fields to mandatory rather than optional. This switch radically changes the assumptions related to exposure and outcome timing. Rather than move forward with v6.0, please transform your data to [CDM v5.4](https://github.com/OHDSI/CommonDataModel/releases/tag/v5.4) until such time that we as a community have fully defined the role of dates vs datetimes both when it comes to the model and the evidence we generate.
Use the`writeDDL` function to tranlate the sql script created in the step above into oracle, postgres, and sql server dialects.
**NOTE** This documentation is a work in progress and will continue to be updated.

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>
@ -509,7 +533,7 @@ div.tocify {
<li>Develop tools and capabilities for transforming, characterizing, and analysing disparate data sources across the health care delivery spectrum</li> <li>Develop tools and capabilities for transforming, characterizing, and analysing disparate data sources across the health care delivery spectrum</li>
<li>Establish a shared resource so that the broader research community can collaboratively advance the science</li> <li>Establish a shared resource so that the broader research community can collaboratively advance the science</li>
</ul> </ul>
<p>The results of OMOPs research has been widely published and presented at scientific conferences, including <a href="https://www.ohdsi.org/events/2019-ohdsi-symposium/">annual symposia</a>.</p> <p>The results of OMOPs research has been widely published and presented at scientific conferences, including <a href="https://www.ohdsi.org/2021-ohdsi-global-symposium-info/">annual symposia</a>.</p>
<p>The OMOP Legacy continues…</p> <p>The OMOP Legacy continues…</p>
<p>The community is actively using the OMOP Common Data Model for their various research purposes. Those tools will continue to be maintained and supported, and information about this work is available in the <a href="http://www.github.com/ohdsi">public domain</a>.</p> <p>The community is actively using the OMOP Common Data Model for their various research purposes. Those tools will continue to be maintained and supported, and information about this work is available in the <a href="http://www.github.com/ohdsi">public domain</a>.</p>
<p>The OMOP Common Data Model will continue to be an open-source community standard for observational healthcare data. The model specifications and associated work products will be placed in the public domain, and the entire research community is encouraged to use these tools to support everybodys own research activities.</p> <p>The OMOP Common Data Model will continue to be an open-source community standard for observational healthcare data. The model specifications and associated work products will be placed in the public domain, and the entire research community is encouraged to use these tools to support everybodys own research activities.</p>

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -11,7 +11,7 @@
<title>cdm531.utf8</title> <title>cdm53.utf8</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script> <script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script> <script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>
@ -498,9 +522,10 @@ div.tocify {
</div> </div>
<div id="omop-cdm-v5.3.1" class="section level1"> <div id="omop-cdm-v5.3" class="section level1">
<h1><strong>OMOP CDM v5.3.1</strong></h1> <h1><strong>OMOP CDM v5.3</strong></h1>
<p>Below is the specification document for the OMOP Common Data Model, v5.3.1. Each table is represented with a high-level description and ETL conventions that should be followed. This is continued with a discussion of each field in each table, any conventions related to the field, and constraints that should be followed (like primary key, foreign key, etc). Should you have questions please feel free to visit the <a href="https://forums.ohdsi.org/">forums</a> or the <a href="https://github.com/ohdsi/CommonDataModel/issues">github issue</a> page.</p> <p>Below is the specification document for the OMOP Common Data Model, v5.3 (previously v5.3.1). Each table is represented with a high-level description and ETL conventions that should be followed. This is continued with a discussion of each field in each table, any conventions related to the field, and constraints that should be followed (like primary key, foreign key, etc). Should you have questions please feel free to visit the <a href="https://forums.ohdsi.org/">forums</a> or the <a href="https://github.com/ohdsi/CommonDataModel/issues">github issue</a> page.</p>
<p><em><strong>Special Note</strong> This documentation previously referenced v5.3.1. During the OHDSI/CommonDataModel Hack-A-Thon that occurred on August 18, 2021 the decision was made to align documentation with the minor releases. Hot fixes and minor.minor release can be found through the searching of tags.</em></p>
<p>after regeneration of DDLs link to csv of cdm link to pdf of cdm documentation link to forum on doc page</p> <p>after regeneration of DDLs link to csv of cdm link to pdf of cdm documentation link to forum on doc page</p>
<div id="clinical-data-tables" class="section level2"> <div id="clinical-data-tables" class="section level2">
<h2><strong>Clinical Data Tables</strong></h2> <h2><strong>Clinical Data Tables</strong></h2>
@ -12203,7 +12228,7 @@ No
valid_start_date valid_start_date
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The date when the Concept was first recorded. The default value is 1-Jan-1970. The date when the Concept was first recorded. The default value is &lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD:inst/csv/OMOP_CDMv5.3_Field_Level.csv 1-Jan-1970.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>

Binary file not shown.

13847
docs/cdm54.html Normal file

File diff suppressed because it is too large Load Diff

941
docs/cdm54Changes.html Normal file
View File

@ -0,0 +1,941 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>cdm54Changes.utf8</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" />
<script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script>
<script src="site_libs/jqueryui-1.11.4/jquery-ui.min.js"></script>
<link href="site_libs/tocify-1.9.1/jquery.tocify.css" rel="stylesheet" />
<script src="site_libs/tocify-1.9.1/jquery.tocify.js"></script>
<script src="site_libs/navigation-1.1/tabsets.js"></script>
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" />
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" />
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type = "text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style>
<style type="text/css">
/* padding for bootstrap navbar */
body {
padding-top: 51px;
padding-bottom: 40px;
}
/* offset scroll position for anchor links (for fixed navbar) */
.section h1 {
padding-top: 56px;
margin-top: -56px;
}
.section h2 {
padding-top: 56px;
margin-top: -56px;
}
.section h3 {
padding-top: 56px;
margin-top: -56px;
}
.section h4 {
padding-top: 56px;
margin-top: -56px;
}
.section h5 {
padding-top: 56px;
margin-top: -56px;
}
.section h6 {
padding-top: 56px;
margin-top: -56px;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
border-radius: 6px 0 6px 6px;
}
</style>
<script>
// manage active state of menu based on current page
$(document).ready(function () {
// active menu anchor
href = window.location.pathname
href = href.substr(href.lastIndexOf('/') + 1)
if (href === "")
href = "index.html";
var menuAnchor = $('a[href="' + href + '"]');
// mark it active
menuAnchor.parent().addClass('active');
// if it's got a parent navbar menu mark it active as well
menuAnchor.closest('li.dropdown').addClass('active');
});
</script>
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "&#xe258;";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- code folding -->
<style type="text/css">
#TOC {
margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
position: relative;
width: 100%;
}
}
@media print {
.toc-content {
/* see https://github.com/w3c/csswg-drafts/issues/4434 */
float: right;
}
}
.toc-content {
padding-left: 30px;
padding-right: 40px;
}
div.main-container {
max-width: 1200px;
}
div.tocify {
width: 20%;
max-width: 260px;
max-height: 85%;
}
@media (min-width: 768px) and (max-width: 991px) {
div.tocify {
width: 25%;
}
}
@media (max-width: 767px) {
div.tocify {
width: 100%;
max-width: none;
}
}
.tocify ul, .tocify li {
line-height: 20px;
}
.tocify-subheader .tocify-item {
font-size: 0.90em;
}
.tocify .list-group-item {
border-radius: 0px;
}
</style>
</head>
<body>
<div class="container-fluid main-container">
<!-- setup 3col/9col grid for toc_float and main content -->
<div class="row-fluid">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>
<div class="toc-content col-xs-12 col-sm-8 col-md-9">
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html">
<span class="fas fa-home"></span>
</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-landmark"></span>
Background
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="background.html">Model Background</a>
</li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li>
<a href="vocabulary.html">How the Vocabulary is Built</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span>
Conventions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-history"></span>
CDM Versions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm30.html">CDM v3.0</a>
</li>
<li>
<a href="cdm60.html">CDM v6.0</a>
</li>
<li>
<a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-plus-square"></span>
Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="faq.html">FAQ</a>
</li>
<li>
<a href="sqlScripts.html">SQL Scripts</a>
</li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
<div class="fluid-row" id="header">
</div>
<div id="changes-by-table" class="section level1">
<h1><strong>Changes by Table</strong></h1>
<p><em>from CDM v5.3 -&gt; CDM v5.4</em></p>
<p>For a full description of each table and field listed here, please see the <a href="http://ohdsi.github.io/CommonDataModel/cdm54.html">CDM specification</a>.</p>
<p>Notation:</p>
<ul>
<li>a <strong>+</strong> indicates an addition to the model, either a table or field</li>
<li>a <strong>-&gt;</strong> indicates an alteration either in naming or specification</li>
<li>a <strong>-</strong> indicates a subtraction from the model, either a table or field</li>
</ul>
<div id="person" class="section level2">
<h2>PERSON</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="observation_period" class="section level2">
<h2>OBSERVATION_PERIOD</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="visit_occurrence" class="section level2">
<h2>VISIT_OCCURRENCE</h2>
<ul>
<li>Admitting_source_concept_id -&gt; <strong>Admitted_from_concept_id</strong></li>
<li>Admitting_source_value -&gt; <strong>Admitted_from_source_value</strong></li>
<li>Discharge_to_concept_id -&gt; <strong>Discharged_to_concept_id</strong></li>
<li>Discharge_to_source_value -&gt; <strong>Discharged_to_concept_id</strong></li>
</ul>
</div>
<div id="visit_detail" class="section level2">
<h2>VISIT_DETAIL</h2>
<ul>
<li>Admitting_source_concept_id -&gt; <strong>Admitted_from_concept_id</strong></li>
<li>Admitting_source_value -&gt; <strong>Admitted_from_source_value</strong></li>
<li>Discharge_to_concept_id -&gt; <strong>Discharged_to_concept_id</strong></li>
<li>Discharge_to_source_value -&gt; <strong>Discharged_to_concept_id</strong></li>
<li>Visit_detail_parent_id -&gt; <strong>Parent_visit_detail_id</strong></li>
</ul>
</div>
<div id="condition_occurrence" class="section level2">
<h2>CONDITION_OCCURRENCE</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="drug_exposure" class="section level2">
<h2>DRUG_EXPOSURE</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="procedure_occurrence" class="section level2">
<h2>PROCEDURE_OCCURRENCE</h2>
<ul>
<li>+ <strong>Procedure_end_date</strong></li>
<li>+ <strong>Procedure_end_datetime</strong></li>
</ul>
</div>
<div id="device_exposure" class="section level2">
<h2>DEVICE_EXPOSURE</h2>
<ul>
<li>Unique_device_id -&gt; <strong>Changed to varchar(255)</strong></li>
<li>+ <strong>Production_id</strong></li>
<li>+ <strong>Unit_concept_id</strong></li>
<li>+ <strong>Unit_source_value</strong></li>
<li>+ <strong>Unit_source_concept_id</strong></li>
</ul>
</div>
<div id="measurement" class="section level2">
<h2>MEASUREMENT</h2>
<ul>
<li>+ <strong>Unit_source_concept_id</strong></li>
<li>+ <strong>Measurement_event_id</strong></li>
<li>+ <strong>Meas_event_field_concept_id</strong></li>
</ul>
</div>
<div id="observation" class="section level2">
<h2>OBSERVATION</h2>
<ul>
<li>+ <strong>Value_source_value</strong></li>
<li>+ <strong>Observation_event_id</strong></li>
<li>+ <strong>Obs_event_field_concept_id</strong></li>
</ul>
</div>
<div id="death" class="section level2">
<h2>DEATH</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="note" class="section level2">
<h2>NOTE</h2>
<ul>
<li>+ <strong>Note_event_id</strong></li>
<li>+ <strong>Note_event_field_concept_id</strong></li>
</ul>
</div>
<div id="note_nlp" class="section level2">
<h2>NOTE_NLP</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="specimen" class="section level2">
<h2>SPECIMEN</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="fact_relationship" class="section level2">
<h2>FACT_RELATIONSHIP</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="location" class="section level2">
<h2>LOCATION</h2>
<ul>
<li>+ <strong>Country_concept_id</strong></li>
<li>+ <strong>Country_source_value</strong></li>
<li>+ <strong>Latitude</strong></li>
<li>+ <strong>Longitude</strong></li>
</ul>
</div>
<div id="care_site" class="section level2">
<h2>CARE_SITE</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="payer_plan_period" class="section level2">
<h2>PAYER_PLAN_PERIOD</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="cost" class="section level2">
<h2>COST</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="drug_era" class="section level2">
<h2>DRUG_ERA</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="dose_era" class="section level2">
<h2>DOSE_ERA</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="condition_era" class="section level2">
<h2>CONDITION_ERA</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="episode" class="section level2">
<h2>+ <strong>EPISODE</strong></h2>
<table>
<thead>
<tr class="header">
<th>EPISODE</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>episode_id</td>
</tr>
<tr class="even">
<td>person_id</td>
</tr>
<tr class="odd">
<td>episode_concept_id</td>
</tr>
<tr class="even">
<td>episode_start_date</td>
</tr>
<tr class="odd">
<td>episode_start_datetime</td>
</tr>
<tr class="even">
<td>episode_end_date</td>
</tr>
<tr class="odd">
<td>episode_end_datetime</td>
</tr>
<tr class="even">
<td>episode_parent_id</td>
</tr>
<tr class="odd">
<td>episode_number</td>
</tr>
<tr class="even">
<td>episode_object_concept_id</td>
</tr>
<tr class="odd">
<td>episode_type_concept_id</td>
</tr>
<tr class="even">
<td>episode_source_value</td>
</tr>
<tr class="odd">
<td>episode_source_concept_id</td>
</tr>
</tbody>
</table>
</div>
<div id="episode_event" class="section level2">
<h2>+ <strong>EPISODE_EVENT</strong></h2>
<table>
<thead>
<tr class="header">
<th>EPISODE_EVENT</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>episode_id</td>
</tr>
<tr class="even">
<td>event_id</td>
</tr>
<tr class="odd">
<td>episode_event_field_concept_id</td>
</tr>
</tbody>
</table>
</div>
<div id="metadata" class="section level2">
<h2>METADATA</h2>
<ul>
<li>+ <strong>Metadata_id</strong></li>
<li>+ <strong>Value_as_number</strong></li>
</ul>
</div>
<div id="cdm_source" class="section level2">
<h2>CDM_SOURCE</h2>
<ul>
<li>Cdm_source_name -&gt; <strong>Mandatory field</strong></li>
<li>Cdm_source_abbreviation -&gt; <strong>Mandatory field</strong></li>
<li>Cdm_holder -&gt; <strong>Mandatory field</strong></li>
<li>Source_release_date -&gt; <strong>Mandatory field</strong></li>
<li>Cdm_release_date -&gt; <strong>Mandatory field</strong></li>
<li>+ <strong>Cdm_version_concept_id</strong></li>
</ul>
</div>
<div id="concept" class="section level2">
<h2>CONCEPT</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="vocabulary" class="section level2">
<h2>VOCABULARY</h2>
<ul>
<li>Vocabulary_reference -&gt; <strong>Non-mandatory field</strong></li>
<li>Vocabulary_version -&gt; <strong>Non-mandatory field</strong></li>
</ul>
</div>
<div id="domain" class="section level2">
<h2>DOMAIN</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="concept_class" class="section level2">
<h2>CONCEPT_CLASS</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="concept_relationship" class="section level2">
<h2>CONCEPT_RELATIONSHIP</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="relationship" class="section level2">
<h2>RELATIONSHIP</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="concept_synonym" class="section level2">
<h2>CONCEPT_SYNONYM</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="concept_ancestor" class="section level2">
<h2>CONCEPT_ANCESTOR</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="source_to_concept_map" class="section level2">
<h2>SOURCE_TO_CONCEPT_MAP</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="drug_strength" class="section level2">
<h2>DRUG_STRENGTH</h2>
<ul>
<li>No change</li>
</ul>
</div>
<div id="attribute_definition" class="section level2">
<h2>- <strong>ATTRIBUTE_DEFINITION</strong></h2>
</div>
<div id="cohort" class="section level2">
<h2>+ <strong>COHORT</strong></h2>
<table>
<thead>
<tr class="header">
<th>COHORT</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>cohort_definition_id</td>
</tr>
<tr class="even">
<td>subject_id</td>
</tr>
<tr class="odd">
<td>cohort_start_date</td>
</tr>
<tr class="even">
<td>cohort_end_date</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<!-- code folding -->
<script>
$(document).ready(function () {
// move toc-ignore selectors from section div to header
$('div.section.toc-ignore')
.removeClass('toc-ignore')
.children('h1,h2,h3,h4,h5').addClass('toc-ignore');
// establish options
var options = {
selectors: "h1,h2,h3",
theme: "bootstrap3",
context: '.toc-content',
hashGenerator: function (text) {
return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
},
ignoreSelector: ".toc-ignore",
scrollTo: 0
};
options.showAndHide = true;
options.smoothScroll = true;
// tocify
var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>
@ -3722,7 +3746,7 @@ It is up to the ETL to choose how to map modifiers if they exist in source data.
integer integer
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -6218,7 +6242,7 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
offset "offset"
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
Character offset of the extracted term in the input note Character offset of the extracted term in the input note
@ -9525,11 +9549,12 @@ FK Domain
cost_id cost_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A unique identifier for each COST record.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
INTEGER bigint
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes Yes
@ -9547,11 +9572,38 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
person_id
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
bigint
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
cost_event_id cost_event_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
If the Cost record is related to another record in the database, this field is the primary key of the linked record.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the primary key of the linked record, if applicable, here.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
bigint bigint
@ -9572,14 +9624,16 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
cost_domain_id cost_event_field_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
If the Cost record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the CONCEPT_ID that identifies which table and field the COST_EVENT_ID came from.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
VARCHAR(20) integer
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes Yes
@ -9591,7 +9645,34 @@ No
Yes Yes
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
DOMAIN CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
cost_concept_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key that refers to a Standard Cost Concept identifier in the Standardized Vocabularies belonging to the Cost vocabulary.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
integer
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
</td> </td>
@ -9601,6 +9682,7 @@ DOMAIN
cost_type_concept_id cost_type_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to a concept in the CONCEPT table for the provenance or the source of the COST data and belonging to the Type Concept vocabulary
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
@ -9608,7 +9690,7 @@ cost_type_concept_id
integer integer
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -9620,6 +9702,60 @@ Yes
CONCEPT CONCEPT
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Type Concept
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
cost_source_concept_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key to a Cost Concept that refers to the code used in the source.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
integer
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
cost_source_value
</td>
<td style="text-align:left;width: 3in; ">
The source value for the cost as it appears in the source data
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
varchar(50)
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -9627,6 +9763,7 @@ CONCEPT
currency_concept_id currency_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to the concept representing the 3-letter code used to delineate international currencies, such as USD for US Dollar. These belong to the Currency vocabulary
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
@ -9640,7 +9777,7 @@ No
No No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
CONCEPT CONCEPT
@ -9650,14 +9787,15 @@ CONCEPT
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
total_charge cost
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The actual financial cost amount
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
FLOAT float
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -9675,14 +9813,15 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
total_cost incurred_date
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The first date of service of the clinical event corresponding to the cost as in table capturing the information (e.g. date of visit, date of procedure, date of condition, date of drug etc).
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
FLOAT date
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -9700,14 +9839,15 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
total_paid billed_date
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The date a bill was generated for a service or encounter
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
FLOAT date
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -9725,239 +9865,15 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
paid_by_payer paid_date
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The date payment was received for a service or encounter
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
FLOAT date
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_by_patient
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_patient_copay
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_patient_coinsurance
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_patient_deductible
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_by_primary
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_ingredient_cost
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
paid_dispensing_fee
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
payer_plan_period_id
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
bigint
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
amount_allowed
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
FLOAT
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -9978,6 +9894,34 @@ No
revenue_code_concept_id revenue_code_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key referring to a Standard Concept ID in the Standardized Vocabularies for Revenue codes belonging to the Revenue Code vocabulary.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
integer
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
drg_concept_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key referring to a Standard Concept ID in the Standardized Vocabularies for DRG codes belonging to the DRG vocabulary.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
@ -10004,12 +9948,12 @@ CONCEPT
revenue_code_source_value revenue_code_source_value
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
Revenue codes are a method to charge for a class of procedures and conditions in the U.S. hospital system. The source value for the Revenue code as it appears in the source data, stored here for reference.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
VARCHAR(50) varchar(50)
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -10027,41 +9971,41 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
drg_concept_id
</td>
<td style="text-align:left;width: 3in; ">
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
integer
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
drg_source_value drg_source_value
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
Diagnosis Related Groups are US codes used to classify hospital cases into one of approximately 500 groups. The source value for the 3-digit DRG source code as it appears in the source data, stored here for reference.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
VARCHAR(3) varchar(50)
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
payer_plan_period_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key to the PAYER_PLAN_PERIOD table, where the details of the Payer, Plan and Family are stored. Record the payer_plan_id that relates to the payer who contributed to the paid_by_payer field.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
bigint
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
@ -10203,7 +10147,7 @@ Drug
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
drug_era_start_date drug_era_start_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
</td> </td>
@ -10229,7 +10173,7 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
drug_era_end_date drug_era_end_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
</td> </td>
@ -10481,7 +10425,7 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
dose_era_start_date dose_era_start_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The date the Person started on the specific dosage, with at least 31 days since any prior exposure. The date the Person started on the specific dosage, with at least 31 days since any prior exposure.
@ -10507,7 +10451,7 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
dose_era_end_date dose_era_end_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
</td> </td>
@ -10586,7 +10530,7 @@ condition_era_id
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer bigint
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes Yes
@ -10658,7 +10602,7 @@ Condition
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
condition_era_start_date condition_era_start_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The start date for the Condition Era constructed from the individual instances of Condition Occurrences. It is the start date of the very first chronologically recorded instance of the condition with at least 31 days since any prior record of the same Condition. The start date for the Condition Era constructed from the individual instances of Condition Occurrences. It is the start date of the very first chronologically recorded instance of the condition with at least 31 days since any prior record of the same Condition.
@ -10684,7 +10628,7 @@ No
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
condition_era_end_date condition_era_end_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The end date for the Condition Era constructed from the individual instances of Condition Occurrences. It is the end date of the final continuously recorded instance of the Condition. The end date for the Condition Era constructed from the individual instances of Condition Occurrences. It is the end date of the final continuously recorded instance of the Condition.
@ -13307,7 +13251,7 @@ This is the identifier given to the cohort, usually by the ATLAS application
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer bigint
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes Yes

715
docs/cdmPrivacy.html Normal file
View File

@ -0,0 +1,715 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>Preserving Privacy in an OMOP CDM Implementation</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" />
<script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script>
<script src="site_libs/jqueryui-1.11.4/jquery-ui.min.js"></script>
<link href="site_libs/tocify-1.9.1/jquery.tocify.css" rel="stylesheet" />
<script src="site_libs/tocify-1.9.1/jquery.tocify.js"></script>
<script src="site_libs/navigation-1.1/tabsets.js"></script>
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" />
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" />
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type = "text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style>
<style type="text/css">
/* padding for bootstrap navbar */
body {
padding-top: 51px;
padding-bottom: 40px;
}
/* offset scroll position for anchor links (for fixed navbar) */
.section h1 {
padding-top: 56px;
margin-top: -56px;
}
.section h2 {
padding-top: 56px;
margin-top: -56px;
}
.section h3 {
padding-top: 56px;
margin-top: -56px;
}
.section h4 {
padding-top: 56px;
margin-top: -56px;
}
.section h5 {
padding-top: 56px;
margin-top: -56px;
}
.section h6 {
padding-top: 56px;
margin-top: -56px;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
border-radius: 6px 0 6px 6px;
}
</style>
<script>
// manage active state of menu based on current page
$(document).ready(function () {
// active menu anchor
href = window.location.pathname
href = href.substr(href.lastIndexOf('/') + 1)
if (href === "")
href = "index.html";
var menuAnchor = $('a[href="' + href + '"]');
// mark it active
menuAnchor.parent().addClass('active');
// if it's got a parent navbar menu mark it active as well
menuAnchor.closest('li.dropdown').addClass('active');
});
</script>
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "&#xe258;";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- code folding -->
<style type="text/css">
#TOC {
margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
position: relative;
width: 100%;
}
}
@media print {
.toc-content {
/* see https://github.com/w3c/csswg-drafts/issues/4434 */
float: right;
}
}
.toc-content {
padding-left: 30px;
padding-right: 40px;
}
div.main-container {
max-width: 1200px;
}
div.tocify {
width: 20%;
max-width: 260px;
max-height: 85%;
}
@media (min-width: 768px) and (max-width: 991px) {
div.tocify {
width: 25%;
}
}
@media (max-width: 767px) {
div.tocify {
width: 100%;
max-width: none;
}
}
.tocify ul, .tocify li {
line-height: 20px;
}
.tocify-subheader .tocify-item {
font-size: 0.90em;
}
.tocify .list-group-item {
border-radius: 0px;
}
</style>
</head>
<body>
<div class="container-fluid main-container">
<!-- setup 3col/9col grid for toc_float and main content -->
<div class="row-fluid">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>
<div class="toc-content col-xs-12 col-sm-8 col-md-9">
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html">
<span class="fas fa-home"></span>
</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-landmark"></span>
Background
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="background.html">Model Background</a>
</li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li>
<a href="vocabulary.html">How the Vocabulary is Built</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span>
Conventions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-history"></span>
CDM Versions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm30.html">CDM v3.0</a>
</li>
<li>
<a href="cdm60.html">CDM v6.0</a>
</li>
<li>
<a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-plus-square"></span>
Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="faq.html">FAQ</a>
</li>
<li>
<a href="sqlScripts.html">SQL Scripts</a>
</li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
<div class="fluid-row" id="header">
<h1 class="title toc-ignore">Preserving Privacy in an OMOP CDM Implementation</h1>
</div>
<p><em>By Kristin Kostka</em></p>
<div id="background" class="section level1">
<h1>Background</h1>
<p>The OMOP CDM is a person-centric model. Being person-centric means the model can retain attributes that may be considered personal identified information (PII) or protected health information (PHI). There are many different ways a site may treat their OMOP CDM to uphold their privacy protocols. In this article we provide guidance on overall process and the potential fields that should be monitored to adhere to these various privacy preserving protocols.</p>
<div id="defining-pii-and-phi" class="section level3">
<h3>Defining PII and PHI</h3>
<ul>
<li>PII is defined as any representation of information that permits the identity of an individual to whom the information applies to be reasonably inferred to either direct or indirect means [1].</li>
<li>The United States Department of Health &amp; Human Services´ Office for Civil Rights has defined PHI as any Personal Identifying Information (PII) that individually or combined could potentially identify a specific individual, their past, present or future healthcare, or the method of payment. There are eighteen unique identifiers considered to be PHI: 1) names, 2) geographic data, 3) all elements of dates, 4) telephone numbers, 5) FAX numbers, 6) email addresses, 7) Social Security numbers (SSN), 8) medical record numbers (MRN), 9) health plan beneficiary numbers, 10) account numbers, 11) certificate/license numbers, 12) vehicle identifiers and serial numbers including license places, 13) device identifiers and serial numbers, 14) web URLs, 15) internet protocol addresses, 16) biometric identifiers (i.e. retinal scan, fingerprints), 17) full face photos and comparable images, and 18) any unique identifying number, characteristic or code. PHI is no longer considered PHI when it de-identified of these unique attributes. PHI is commonly referred to in relation to the Health Insurance Portability and Accountability Act (HIPAA) and associated legislation such as the Health Information Technology for Economic and Clinical Health Act (HITECH) [2].</li>
</ul>
</div>
</div>
<div id="the-data-holders-responsibility" class="section level1">
<h1>The Data Holders Responsibility</h1>
<p>In OHDSI, it is the responsibility of each data holder to know, understand and follow local data governance processes related to use of the OMOP CDM. In the United States, these processes will follow your organizations local interpretation for maintaining compliance to PII and PHI protection. In OMOP CDM implementations containing European Union citizen data, local governance processes will include measures to comply with General Data Protection Regulation (GDPR) [3]. As a community, the OHDSI data network covers more than 330 databases from 34 countries. There is extensive community knowledge on the interpretation of rule sets and exemplar IRB and local governance workflows that can be made available to institutions navigating these processes for the first time. If your organization does not have an established data governance process, please reach out on the <a href="forums.ohdsi.org">OHDSI Forums</a> under “Implementers” and the community can respond with shared guidance from their own deployments. As a community, we aim to conduct research that keeps patient-level data local and share only aggregate results.</p>
</div>
<div id="complying-with-privacy-preservation" class="section level1">
<h1>Complying with Privacy Preservation</h1>
<p>Complying with local governance processes depends on the rule set being used. There may be allowable times when data use agreements and data transfer agreements exist between collaborating institutions to facilitate sharing of PII and PHI. In this section we will discuss common rule sets that organizations adhere to.</p>
<div id="limited-data-sets" class="section level2">
<h2>Limited Data Sets</h2>
<p>A limited data set (LDS) is defined as protected health information that excludes certain direct identifiers of an individual or of relatives, employers or household members of the individual — but may include city, state, ZIP code and elements of dates. A LDS can be disclosed only for purposes of research, public health or health care operations. LDS requirements are dictated by the HIPAA Privacy Rule.</p>
</div>
<div id="de-identified-data-sets" class="section level2">
<h2>De-identified Data Sets</h2>
<p>A de-identified data, as defined by Section 164.514(a) of the HIPAA Privacy rule, is health information that does not identify an individual and with respect to which there is no reasonable basis to believe that the information can be used to identify an individual is not individually identifiable health information. There are two methods for achieving de-identification in accordance with HIPAA [4].</p>
<ol style="list-style-type: decimal">
<li>Expert Determination (§164.514(a))- Implementation specifications: requirements for de-identification of protected health information. A covered entity may determine that health information is not individually identifiable health information only if:</li>
</ol>
<ol style="list-style-type: decimal">
<li>A person with appropriate knowledge of and experience with generally accepted statistical and scientific principles and methods for rendering information not individually identifiable:</li>
</ol>
<ol style="list-style-type: lower-roman">
<li>Applying such principles and methods, determines that the risk is very small that the information could be used, alone or in combination with other reasonably available information, by an anticipated recipient to identify an individual who is a subject of the information; and</li>
<li>Documents the methods and results of the analysis that justify such determination.</li>
</ol>
<ol start="2" style="list-style-type: decimal">
<li>Safe Harbor (§164.514(b)) The eighteen unique identifiers are obfuscated. This includes processes such as:</li>
</ol>
<ol style="list-style-type: upper-alpha">
<li>Dates of service are algorithmically shifted to protect patient privacy.</li>
<li>Patient ZIP codes are truncated to the first three digits or removed entirely if the ZIP code represents fewer than 20,000 individuals.</li>
<li>Removing and, when necessary, replacing unique identifiers AND The entity does not have actual knowledge that the information could be used alone or in combination with other information to identify an individual who is a subject of the information.</li>
</ol>
</div>
<div id="field-level-implications-of-de-identification-processes" class="section level2">
<h2>Field-level Implications of De-identification Processes</h2>
<div id="person-table-attributes" class="section level3">
<h3>PERSON Table Attributes</h3>
<p>In the OMOP CDM, the PERSON table serves as the central identity management for all Persons in the database. It contains records that uniquely identify each person or patient, and some demographic information. It is a table that has a number of field-level implications for privacy preserving protocols.</p>
<p>Considerations include: - PERSON.person_id should never contain Medical Record Number, Social Security Number or similar uniquely identifiable number. This should be a number that is essentially meaningless but has the ability to be a primary key across tables. - PERSON.year_of_birth, PERSON.month_of_birth and PERSON.date_of_birth, PERSON.birth_datetime may require some redaction or modification depending on interpretation of rule set. Consult local guidance on the need to modify these fields when creating compliant views of de-identified data. - PERSON.person_source_value may contain sensitive information used to generate the person_id field. It is advised to practice caution when creating views of these data. It would be wise to obfuscate or redact this field if you are not sure what is contained in the raw information being extracted, transformed and loaded into the CDM.</p>
</div>
</div>
<div id="date-fields-across-domains" class="section level2">
<h2>Date Fields Across Domains</h2>
<p>Date fields are used across many OMOP domains including: OBSERVATION_PERIOD, VISIT_OCCURRENCE, VISIT_DETAIL, CONDITION_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE, MEASUREMENT, OBSERVATION, DEATH, NOTE, NOTE_NLP, SPECIMEN, PAYER_PLAN_PERIOD, DRUG_ERA, DOSE_ERA, and CONDITION_ERA.</p>
<p>As discussed previously, some rule sets may require algorithmically shifting dates. It is advised that when date shifting is applied, it is done holistically. This means that when shifting dates, you should not treat each record independently. Instead, a robust date shifting algorithm will link off the <em>.person_id (where </em> is the domain name such as CONDITION_OCCURRENCE, etc) and apply the same offset to all events. This allows researchers to have the ability to understand the sequence of events while preserving patient privacy.</p>
<p>The implications of not holistically shifting all events together by the same offset means that information may be out of sequence or illogical. An example would be a death record that happens prior to other event records (conditions, drugs, procedures, etc). When applying an algorithmic shift of dates, it is important to educate your OMOP CDM user group of the known offset. This is especially important in temporal studies which may be looking to make statements about disease history relative to the time when an event is observed.</p>
<p>Some rule sets do not require algorithmic shifting of dates, such as Limited Data Sets. In these situations, a user of a LDS OMOP CDM would not be expecting dates to the shifted. If a shift is applied, it should be disclosed and the offset amount (e.g. +/- 7 days, +/- 30 days, etc) should be made available to those who have received permission to use a LDS dataset. Otherwise, these data are not upholding the assumptions of the rule set applied.</p>
</div>
<div id="location-table-attributes" class="section level2">
<h2>LOCATION Table Attributes</h2>
<p>The LOCATION table represents a generic way to capture physical location or address information of Persons and Care Sites. When applying privacy preserving procedures, this table should be reviewed and scrubbed relative to the rule set. The LOCATION.zip field should be redacted relative to the type of process applied (e.g. 3-digit zip for de-identified data). The LOCATION.location_source_value should be reviewed for potential PII/PHI. It would be wise to obfuscate or redact this field if you are not sure what is contained in the raw information being extracted, transformed and loaded into the CDM.</p>
</div>
<div id="provider-table-attributes" class="section level2">
<h2>PROVIDER Table Attributes</h2>
<p>The PROVIDER table contains a list of uniquely identified healthcare providers. These are individuals providing hands-on healthcare to patients, such as physicians, nurses, midwives, physical therapists etc. In some privacy preserving processes, the PROVIDER.npi and PROVIDER.dea fields may be redacted. Please review this field and confirm that you are adhering to privacy rule sets. The PROVIDER.year_of_birth field is an optional field that may also require treatment in certain rule sets.</p>
</div>
<div id="observation-table-attributes" class="section level2">
<h2>OBSERVATION Table Attributes</h2>
<p>The OBSERVATION table captures clinical facts about a Person obtained in the context of examination, questioning or a procedure. Any data that cannot be represented by any other domains, such as social and lifestyle facts, medical history, family history, etc. are recorded here.</p>
<p>We strongly caution ETL teams to review the OBSERVATION table for potential PII/PHI. In some source systems, there can be information coming in these vocabularies that are not laboratory or clinical observations but instead are patient identifiers. If you search in ATHENA, you will find there are a number of standard terms in the SNOMED and LOINC vocabularies that can represent phone numbers, emails, and other PII information.</p>
<p>It is difficult to create an exhaustive list of terms because these ontologies do not maintain or publish lists of terms that may contain patient identifiers. It is, therefore, up to data holders to perform a review of this domain with an eye for these potential privacy issues. The National COVID Cohort Collaborative, a NIH consortium which uses the OMOP CDM, has published a resource for sites needing assistance with identifying these potentially problematic records. A “live” version of this table that will track updates over time is hosted at <a href="https://github.com/data2health/next-gen-data-sharing/blob/master/CodesWithPPIPotential.csv" class="uri">https://github.com/data2health/next-gen-data-sharing/blob/master/CodesWithPPIPotential.csv</a>. We welcome additions to this list from the community.</p>
</div>
<div id="scrutinizing-_source_value" class="section level2">
<h2>Scrutinizing *_source_value</h2>
<p>The *_source_value (where * is the domain name such as CONDITION_OCCURRENCE, etc) fields present an opportunity for sites to carry forward potential PII/PHI in ETL processes. Because the convention of the OMOP CDM has minimal boundaries on what are retained in these fields, it is important to treat all source_value fields as potentially containing PII/PHI. We highly advise all data holders to scrutinize these fields when applying privacy preserving processes. It is not uncommon for fields to be overloaded and contain potential patient identifiers. Please use caution when transmitting or making views of these fields available to users.</p>
</div>
<div id="scrutinizing-string-fields" class="section level2">
<h2>Scrutinizing String Fields</h2>
<p>Across OMOP Domains, there are many fields which permit the use of strings (e.g. DRUG_EXPOSURE.sig, MEASUREMENT.value_as_string, OBSERVATION.value_as_string, Weve discussed some of these in prior sections. It is advised that fields with strings often have the potential to contain unintentional PII/PHI. Targeted regular expressions can be built into ETL processes in order to “sniff” out any additional PII (or potential PII)such as any data in the format of a phone number, or a person or place name. (E.g., the regular expression “Mr.|Mrs.|Dr.|, M.?D.?” will find any string with an English name prefix.) Depending on risk tolerance, the expressions could err toward sensitivity or specificity, and could be tweaked over time to meet different rule sets.</p>
<p>Extensive regular expression matching during ETL may add significant processing time and should therefore not be relied upon as a sole solution, but rather an extra protection against edge cases. Other algorithmic rules may also prove useful, such as automatically quarantining records with lengthy string values (which could signal the presence of free text). If these approaches are implemented, records that match the regular expressions or rules can be quarantined in a separate table or staging area to be manually reviewed by a data broker. Thus, in addition to adding another layer of PII protection, another advantage of these approaches is the potential to uncover ways that underlying vocabularies may be contributing to unintentional sharing of PII and create awareness for future privacy preserving processes shared across the community.</p>
</div>
<div id="note-and-note_nlp-table-attributes" class="section level2">
<h2>NOTE and NOTE_NLP Table Attributes</h2>
<p>The NOTE table captures unstructured information that was recorded by a provider about a patient in free text (in ASCII, or preferably in UTF8 format) notes on a given date. The NOTE_NLP table encodes all output of NLP on clinical notes. Each row represents a single extracted term from a note. There is a high potential these tables may retain information that is considered PII/PHI. In addition to overall string searching, these tables are likely to be dropped altogether to adhere to the most stringent rule sets.</p>
<p>It is highly advised that if you are conducting a study with NOTE and NOTE_NLP table information, please consult with your local governance and privacy officers to ensure compliance with local rule sets.</p>
</div>
<div id="conclusion" class="section level2">
<h2>Conclusion</h2>
<p>Privacy preserving processes are not one-size fits all. There are many different rule sets that can be applied to datasets. Data holders are recommended to consult with their local privacy officer(s) to ensure all processes applied to a database are compliant with local interpretation of the selected rule set.</p>
</div>
</div>
<div id="references" class="section level1">
<h1>References</h1>
<ol style="list-style-type: decimal">
<li>BibText version: <span class="citation">@MISC</span>{noauthor_undated-mg, title = “Guidance on the Protection of Personal Identifiable Information”, abstract = “Personal Identifiable Information (PII) is defined as:”, howpublished = “”, note = “Accessed: 2021-8-18” }</li>
</ol>
<p>Regular citation: Guidance on the Protection of Personal Identifiable Information. [cited 18 Aug 2021]. Available: <a href="https://www.dol.gov/general/ppii" class="uri">https://www.dol.gov/general/ppii</a></p>
<ol start="2" style="list-style-type: decimal">
<li>BibText version: <span class="citation">@MISC</span>{HIPAA_Journal2017-yo, title = “What Does {PHI} Stand For?”, author = “{HIPAA Journal}”, abstract = “PHI is a term used in connection with health data, but what does PHI stand for? What information is included in the definition of PHI.”, month = dec, year = 2017, howpublished = “”, note = “Accessed: 2021-8-18”, language = “en” }</li>
</ol>
<p>Regular citation: HIPAA Journal. What Does PHI Stand For? 23 Dec 2017 [cited 18 Aug 2021]. Available: <a href="https://www.hipaajournal.com/what-does-phi-stand-for/" class="uri">https://www.hipaajournal.com/what-does-phi-stand-for/</a></p>
<ol start="3" style="list-style-type: decimal">
<li>BibText version:</li>
</ol>
<p><span class="citation">@MISC</span>{noauthor_2018-mt, title = “General Data Protection Regulation ({GDPR}) Compliance Guidelines”, abstract = “The EU General Data Protection Regulation went into effect on May 25, 2018, replacing the Data Protection Directive 95/46/EC. Designed to increase data privacy for EU citizens, the regulation levies steep fines on organizations that dont follow the law.”, month = jun, year = 2018, howpublished = “”, note = “Accessed: 2021-8-18”, language = “en” }</p>
<p>Regular citation: General Data Protection Regulation (GDPR) Compliance Guidelines. 18 Jun 2018 [cited 18 Aug 2021]. Available: <a href="https://gdpr.eu/" class="uri">https://gdpr.eu/</a></p>
<ol start="4" style="list-style-type: decimal">
<li>BibText version:</li>
</ol>
<p><span class="citation">@MISC</span>{Office_for_Civil_Rights_OCR_undated-zy, title = “Methods for De-identification of {PHI}”, author = “{Office for Civil Rights (OCR)}”, abstract = “Guidance about methods and approaches to achieve de-identification in accordance with the Health Insurance Portability and Accountability Act of 1996.”, howpublished = “”, note = “Accessed: 2021-8-19” }</p>
<p>Regular citation: Office for Civil Rights (OCR). Methods for De-identification of PHI. [cited 19 Aug 2021]. Available: <a href="https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html" class="uri">https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html</a></p>
</div>
</div>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<!-- code folding -->
<script>
$(document).ready(function () {
// move toc-ignore selectors from section div to header
$('div.section.toc-ignore')
.removeClass('toc-ignore')
.children('h1,h2,h3,h4,h5').addClass('toc-ignore');
// establish options
var options = {
selectors: "h1,h2,h3",
theme: "bootstrap3",
context: '.toc-content',
hashGenerator: function (text) {
return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
},
ignoreSelector: ".toc-ignore",
scrollTo: 0
};
options.showAndHide = true;
options.smoothScroll = true;
// tocify
var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>

601
docs/cdmRPackage.html Normal file
View File

@ -0,0 +1,601 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>cdmRPackage.utf8</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" />
<script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script>
<script src="site_libs/jqueryui-1.11.4/jquery-ui.min.js"></script>
<link href="site_libs/tocify-1.9.1/jquery.tocify.css" rel="stylesheet" />
<script src="site_libs/tocify-1.9.1/jquery.tocify.js"></script>
<script src="site_libs/navigation-1.1/tabsets.js"></script>
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" />
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" />
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type = "text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style>
<style type="text/css">
/* padding for bootstrap navbar */
body {
padding-top: 51px;
padding-bottom: 40px;
}
/* offset scroll position for anchor links (for fixed navbar) */
.section h1 {
padding-top: 56px;
margin-top: -56px;
}
.section h2 {
padding-top: 56px;
margin-top: -56px;
}
.section h3 {
padding-top: 56px;
margin-top: -56px;
}
.section h4 {
padding-top: 56px;
margin-top: -56px;
}
.section h5 {
padding-top: 56px;
margin-top: -56px;
}
.section h6 {
padding-top: 56px;
margin-top: -56px;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
border-radius: 6px 0 6px 6px;
}
</style>
<script>
// manage active state of menu based on current page
$(document).ready(function () {
// active menu anchor
href = window.location.pathname
href = href.substr(href.lastIndexOf('/') + 1)
if (href === "")
href = "index.html";
var menuAnchor = $('a[href="' + href + '"]');
// mark it active
menuAnchor.parent().addClass('active');
// if it's got a parent navbar menu mark it active as well
menuAnchor.closest('li.dropdown').addClass('active');
});
</script>
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "&#xe258;";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- code folding -->
<style type="text/css">
#TOC {
margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
position: relative;
width: 100%;
}
}
@media print {
.toc-content {
/* see https://github.com/w3c/csswg-drafts/issues/4434 */
float: right;
}
}
.toc-content {
padding-left: 30px;
padding-right: 40px;
}
div.main-container {
max-width: 1200px;
}
div.tocify {
width: 20%;
max-width: 260px;
max-height: 85%;
}
@media (min-width: 768px) and (max-width: 991px) {
div.tocify {
width: 25%;
}
}
@media (max-width: 767px) {
div.tocify {
width: 100%;
max-width: none;
}
}
.tocify ul, .tocify li {
line-height: 20px;
}
.tocify-subheader .tocify-item {
font-size: 0.90em;
}
.tocify .list-group-item {
border-radius: 0px;
}
</style>
</head>
<body>
<div class="container-fluid main-container">
<!-- setup 3col/9col grid for toc_float and main content -->
<div class="row-fluid">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>
<div class="toc-content col-xs-12 col-sm-8 col-md-9">
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html">
<span class="fas fa-home"></span>
</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-landmark"></span>
Background
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="background.html">Model Background</a>
</li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li>
<a href="vocabulary.html">How the Vocabulary is Built</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span>
Conventions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-history"></span>
CDM Versions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm30.html">CDM v3.0</a>
</li>
<li>
<a href="cdm60.html">CDM v6.0</a>
</li>
<li>
<a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-plus-square"></span>
Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="faq.html">FAQ</a>
</li>
<li>
<a href="sqlScripts.html">SQL Scripts</a>
</li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
<div class="fluid-row" id="header">
</div>
</div>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<!-- code folding -->
<script>
$(document).ready(function () {
// move toc-ignore selectors from section div to header
$('div.section.toc-ignore')
.removeClass('toc-ignore')
.children('h1,h2,h3,h4,h5').addClass('toc-ignore');
// establish options
var options = {
selectors: "h1,h2,h3",
theme: "bootstrap3",
context: '.toc-content',
hashGenerator: function (text) {
return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
},
ignoreSelector: ".toc-ignore",
scrollTo: 0
};
options.showAndHide = true;
options.smoothScroll = true;
// tocify
var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>

644
docs/cdmRefreshProcess.html Normal file
View File

@ -0,0 +1,644 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>cdmRefreshProcess.utf8</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" />
<script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script>
<script src="site_libs/jqueryui-1.11.4/jquery-ui.min.js"></script>
<link href="site_libs/tocify-1.9.1/jquery.tocify.css" rel="stylesheet" />
<script src="site_libs/tocify-1.9.1/jquery.tocify.js"></script>
<script src="site_libs/navigation-1.1/tabsets.js"></script>
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" />
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" />
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type = "text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style>
<style type="text/css">
/* padding for bootstrap navbar */
body {
padding-top: 51px;
padding-bottom: 40px;
}
/* offset scroll position for anchor links (for fixed navbar) */
.section h1 {
padding-top: 56px;
margin-top: -56px;
}
.section h2 {
padding-top: 56px;
margin-top: -56px;
}
.section h3 {
padding-top: 56px;
margin-top: -56px;
}
.section h4 {
padding-top: 56px;
margin-top: -56px;
}
.section h5 {
padding-top: 56px;
margin-top: -56px;
}
.section h6 {
padding-top: 56px;
margin-top: -56px;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
border-radius: 6px 0 6px 6px;
}
</style>
<script>
// manage active state of menu based on current page
$(document).ready(function () {
// active menu anchor
href = window.location.pathname
href = href.substr(href.lastIndexOf('/') + 1)
if (href === "")
href = "index.html";
var menuAnchor = $('a[href="' + href + '"]');
// mark it active
menuAnchor.parent().addClass('active');
// if it's got a parent navbar menu mark it active as well
menuAnchor.closest('li.dropdown').addClass('active');
});
</script>
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "&#xe258;";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- code folding -->
<style type="text/css">
#TOC {
margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
position: relative;
width: 100%;
}
}
@media print {
.toc-content {
/* see https://github.com/w3c/csswg-drafts/issues/4434 */
float: right;
}
}
.toc-content {
padding-left: 30px;
padding-right: 40px;
}
div.main-container {
max-width: 1200px;
}
div.tocify {
width: 20%;
max-width: 260px;
max-height: 85%;
}
@media (min-width: 768px) and (max-width: 991px) {
div.tocify {
width: 25%;
}
}
@media (max-width: 767px) {
div.tocify {
width: 100%;
max-width: none;
}
}
.tocify ul, .tocify li {
line-height: 20px;
}
.tocify-subheader .tocify-item {
font-size: 0.90em;
}
.tocify .list-group-item {
border-radius: 0px;
}
</style>
</head>
<body>
<div class="container-fluid main-container">
<!-- setup 3col/9col grid for toc_float and main content -->
<div class="row-fluid">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>
<div class="toc-content col-xs-12 col-sm-8 col-md-9">
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html">
<span class="fas fa-home"></span>
</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-landmark"></span>
Background
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="background.html">Model Background</a>
</li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li>
<a href="vocabulary.html">How the Vocabulary is Built</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span>
Conventions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-history"></span>
CDM Versions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm30.html">CDM v3.0</a>
</li>
<li>
<a href="cdm60.html">CDM v6.0</a>
</li>
<li>
<a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-plus-square"></span>
Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="faq.html">FAQ</a>
</li>
<li>
<a href="sqlScripts.html">SQL Scripts</a>
</li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
<div class="fluid-row" id="header">
<h1 class="title toc-ignore"><div>
<img src="ohdsi40x40.png"></img> CDM Refresh Process
</div></h1>
</div>
<p>The OMOP Common Data Model is managed by the OHDSI CDM Working Group. The formal remit of the CDM Working Group (WG) is to hear proposals for change, ratifying only those with valid use cases and data to support them. Then, once ratified, these proposals are incorporated into the next version of the CDM. In the past, this was done by the WG alone. The group would invite others from around the community to present use cases for change and suggestions for improvement. The WG would then vote on the proposals and a new CDM version would be released after a certain period of time or if enough proposals were voted in. This approach worked when the community was smaller but as it is growing rapidly the CDM WG needed to adapt the refresh cycle such that everyone has an opportunity to weigh in on the proposed changes.</p>
<div id="cdm-refresh-cycle" class="section level2">
<h2>CDM Refresh Cycle</h2>
<p><img src="images/CDM_refresh_cycle.png" /></p>
<div id="define-new-version-completed-for-v5.4" class="section level3">
<h3>1. Define New Version [Completed for v5.4]</h3>
<p>The image above describes the new CDM refresh cycle. It begins with <strong>defining a new version</strong>. This has been completed for the current cycle. Issues and proposals on the github were considered during a 4-hour workshop where it was decided the next CDM version will be CDM v5.4, building off of CDM v5.3. The group then participated in a rapid-fire voting activity to identify which changes should be incorporated into CDM v5.4. Any items that were not unanimously agreed upon were then discussed in small groups to hone the proposal and suggestions were presented back to the group. The final roadmap for CDM v5.4 can be found <a href="https://github.com/OHDSI/CommonDataModel/projects/3">here</a>.</p>
<p>Looking to open a proposal to change or augment the CDM? Please open an <a href="https://github.com/OHDSI/CommonDataModel/issues">issue</a> and use the <strong>proposal template</strong>.</p>
</div>
<div id="sign-off-from-work-groups-completed-for-v5.4" class="section level3">
<h3>2. Sign off from Work Groups [Completed for v5.4]</h3>
<p>Each member of the CDM WG is a liaison for another workgroup in the community. They are responsible for presenting the proposed changes to the CDM and collecting the feedback. This has resulted in very helpful suggestions from the EHR, Data Quality, Device, HADES, and ACHILLES groups. This outreach has proven to be very effective and should result in a very stable version.</p>
</div>
<div id="release-ddls" class="section level3">
<h3>3. Release DDLs</h3>
<p>After all changes and suggestions are agreed upon by the community and work groups the next step is to generate the DDLs. The CDM WG hosted a hackathon on August 18-19, 2021. During this time the group created an R package to automatically generate the DDLs and the code to instantiate an empty CDM instance. Changes were made to v5.3 to generate v5.4 and the repository was refactored.</p>
</div>
<div id="software-update" class="section level3">
<h3>4. Software Update</h3>
<p>There will be period of time once the DDLs are ready to allow the software and methods developers to prepare for the official release of the CDM. This is meant to serve as a buffer so that once the community starts adopting the new model, the tools and methods will be ready to support it.</p>
</div>
<div id="community-support" class="section level3">
<h3>5. Community Support</h3>
<p>This is the final stage of the CDM refresh cycle. Once the DDLs are ready and the software and tools supports the new version, the CDM WG will work to help the community convert their data to the new model.</p>
</div>
</div>
<div id="cdm-wg-meeting-information" class="section level1">
<h1>CDM WG Meeting Information</h1>
<p>The CDM working group meets the first and third Tuesday of the month. See below for links to the meetings.</p>
<p><strong>Every first Tuesday of the month at 1pm est</strong> <a href="https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1601910741972?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%2281c21b6d-448d-4634-abbc-6b0962d1138a%22%7d">Teams Meeting</a></p>
<p><strong>Every third Tuesday of the month at 1pm est</strong> <a href="https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1611000164347?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%223c193b7f-c2ab-4bcf-b88c-f89a6b1fba38%22%7d">Teams Meeting</a></p>
<p><strong>Note</strong> These were recently changed from a Skype meeting to a Microsoft Teams meeting. If you do you have access to the OHDSI Teams Tenet, please contact Clair Blacketer at <a href="mailto:mblacke@its.jnj.com" class="email">mblacke@its.jnj.com</a>.</p>
<div id="cdm-wg-important-links" class="section level3">
<h3>CDM WG Important Links</h3>
<ul>
<li><a href="https://drive.google.com/open?id=1DaNKe6ivIAZPJeI31VJ-pzNB9wS9hDqu">Google Drive Location</a></li>
<li><a href="https://docs.google.com/document/d/1WgKePjrI_cGdqn2XQCe1JdGaTzdMqU4p5ihkMt8fcAc/edit?usp=sharing">Running Agenda</a></li>
<li><a href="https://github.com/OHDSI/CommonDataModel">CDM Github</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<!-- code folding -->
<script>
$(document).ready(function () {
// move toc-ignore selectors from section div to header
$('div.section.toc-ignore')
.removeClass('toc-ignore')
.children('h1,h2,h3,h4,h5').addClass('toc-ignore');
// establish options
var options = {
selectors: "h1,h2,h3",
theme: "bootstrap3",
context: '.toc-content',
hashGenerator: function (text) {
return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
},
ignoreSelector: ".toc-ignore",
scrollTo: 0
};
options.showAndHide = true;
options.smoothScroll = true;
// tocify
var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>
@ -562,7 +586,6 @@ div.tocify {
<li>Concept Class attributes should not be confused with Classification Concepts. These are separate Concepts that have a hierarchical relationship to Standard Concepts or each other, while Concept Classes are unique Vocabulary-specific attributes for each Concept.</li> <li>Concept Class attributes should not be confused with Classification Concepts. These are separate Concepts that have a hierarchical relationship to Standard Concepts or each other, while Concept Classes are unique Vocabulary-specific attributes for each Concept.</li>
<li>For Concepts inherited from published terminologies, the source code is retained in the concept_code field and can be used to reference the source vocabulary.</li> <li>For Concepts inherited from published terminologies, the source code is retained in the concept_code field and can be used to reference the source vocabulary.</li>
<li>Standard Concepts (designated as S in the standard_concept field) may appear in CDM tables in all *_concept_id fields, whereas Classification Concepts (C) should not appear in the CDM data, but participate in the construction of the CONCEPT_ANCESTOR table and can be used to identify Descendants that may appear in the data. See CONCEPT_ANCESTOR table. Non-standard Concepts can only appear in *_source_concept_id fields and are not used in <a href="https://ohdsi.github.io/CommonDataModel/cdm531.html#concept_ancestor">CONCEPT_ANCESTOR</a> table. Please refer to the Standardized Vocabularies specifications for details of the Standard Concept designation.</li> <li>Standard Concepts (designated as S in the standard_concept field) may appear in CDM tables in all *_concept_id fields, whereas Classification Concepts (C) should not appear in the CDM data, but participate in the construction of the CONCEPT_ANCESTOR table and can be used to identify Descendants that may appear in the data. See CONCEPT_ANCESTOR table. Non-standard Concepts can only appear in *_source_concept_id fields and are not used in <a href="https://ohdsi.github.io/CommonDataModel/cdm531.html#concept_ancestor">CONCEPT_ANCESTOR</a> table. Please refer to the Standardized Vocabularies specifications for details of the Standard Concept designation.</li>
<li>All logical data elements associated with the various CDM tables (usually in the _type_concept_id field) are called Type Concepts, including defining characteristics, qualifying attributes etc. They are also stored as Concepts in the CONCEPT table. Since they are generated by OMOP, their is no meaningful concept_code.</li>
<li>The lifespan of a Concept is recorded through its valid_start_date, valid_end_date and the invalid_ reason fields. This allows Concepts to correctly reflect at which point in time were defined. Usually, Concepts get deprecated if their meaning was deemed ambiguous, a duplication of another Concept, or needed revision for scientific reason. For example, drug ingredients get updated when different salt or isomer variants enter the market. Usually, drugs taken off the market do not cause a deprecation by the terminology vendor. Since observational data are valid with respect to the time they are recorded, it is key for the Standardized Vocabularies to provide even obsolete codes and maintain their relationships to other current Concepts .</li> <li>The lifespan of a Concept is recorded through its valid_start_date, valid_end_date and the invalid_ reason fields. This allows Concepts to correctly reflect at which point in time were defined. Usually, Concepts get deprecated if their meaning was deemed ambiguous, a duplication of another Concept, or needed revision for scientific reason. For example, drug ingredients get updated when different salt or isomer variants enter the market. Usually, drugs taken off the market do not cause a deprecation by the terminology vendor. Since observational data are valid with respect to the time they are recorded, it is key for the Standardized Vocabularies to provide even obsolete codes and maintain their relationships to other current Concepts .</li>
<li>Concepts without a known instantiated date are assigned valid_start_date of 1-Jan-1970.</li> <li>Concepts without a known instantiated date are assigned valid_start_date of 1-Jan-1970.</li>
<li>Concepts that are not invalid are assigned valid_end_date of 31-Dec-2099.</li> <li>Concepts that are not invalid are assigned valid_end_date of 31-Dec-2099.</li>
@ -693,9 +716,97 @@ div.tocify {
</ul> </ul>
<p>Source Values are only provided for convenience and quality assurance (QA) purposes. Source Values and Source Concepts are optional, while Standard Concepts are mandatory. Source Values may contain information that is only meaningful in the context of a specific data source.</p> <p>Source Values are only provided for convenience and quality assurance (QA) purposes. Source Values and Source Concepts are optional, while Standard Concepts are mandatory. Source Values may contain information that is only meaningful in the context of a specific data source.</p>
</div> </div>
<div id="general-concepts-and-type-concepts" class="section level3"> <div id="type-concepts" class="section level3">
<h3>General Concepts and Type Concepts</h3> <h3>Type Concepts</h3>
<p>Type Concepts (ending in _TYPE_CONCEPT_ID) and general Concepts (ending in _CONCEPT_ID) are part of many tables. The former are special Concepts with the purpose of indicating where the data are derived from in the source. For example, the Type Concept field can be used to distinguish a DRUG_EXPOSURE record that is derived from a pharmacy-dispensing claim from one indicative of a prescription written in an electronic health record (EHR).</p> <p><em>By Mik Kallfelz and Dmitry Dymshyts</em></p>
<p>Type Concepts (ending in _TYPE_CONCEPT_ID) are present in many tables. They are special Concepts with the purpose of indicating from where the data are derived in the source. For example, the Type Concept field can be used to distinguish a DRUG_EXPOSURE record that is derived from a pharmacy-dispensing claim from one indicative of a prescription written in an electronic health record (EHR).</p>
<ul>
<li>Type concepts help determining the provenance of a record in the OMOP CDM. Many tables hold a specific _type_concept_id field for which <a href="https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&amp;standardConcept=Standard&amp;page=1&amp;pageSize=15&amp;query=">valid concepts</a> can be used to indicate a particular source of that record. For a condition it can be helpful to know, if it was derived from an EHR system or insurance claims. For a drug exposure it should be very useful to distinguish between prescriptions and actual administrations.</li>
<li>In respect to the target table, matching type concepts should be chosen during the ETL step while processing sources. There are various representations in the list of type concepts of which some are quite specific for one table and others can be applied for many tables / domains, as they are quite generic. There is however no plausibility check or dependency between type concepts and tables which means they have to be chosen correctly.</li>
<li>There is now one specific <a href="https://github.com/OHDSI/Vocabulary-v5.0/wiki/Vocab.-TYPE_CONCEPT">vocabulary</a> for type concepts which replaced a number of previously existing tables. For example, where previously there was a dedicated vocabulary for Drug Type Concepts, now we would choose the respective ones from the overall vocabulary (and ignore some of the old ones):</li>
</ul>
<table>
<colgroup>
<col width="64%" />
<col width="35%" />
</colgroup>
<thead>
<tr class="header">
<th>Drug Type</th>
<th>Type Concept</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Inpatient administration</td>
<td>EHR administration record</td>
</tr>
<tr class="even">
<td>Physician administered drug (identified from EHR problem list)</td>
<td>EHR administration record</td>
</tr>
<tr class="odd">
<td>Physician administered drug (identified from referral record)</td>
<td>EHR administration record</td>
</tr>
<tr class="even">
<td>Physician administered drug (identified from EHR observation)</td>
<td>EHR administration record</td>
</tr>
<tr class="odd">
<td>Physician administered drug (identified from EHR order)</td>
<td>EHR administration record</td>
</tr>
<tr class="even">
<td>Prescription dispensed in pharmacy</td>
<td>EHR dispensing record</td>
</tr>
<tr class="odd">
<td>Dispensed in Outpatient office</td>
<td>EHR dispensing record</td>
</tr>
<tr class="even">
<td>Medication list entry</td>
<td>EHR medication list</td>
</tr>
<tr class="odd">
<td>Prescription written</td>
<td>EHR prescription</td>
</tr>
<tr class="even">
<td></td>
<td>EHR prescription issue record</td>
</tr>
<tr class="odd">
<td>Prescription dispensed through mail order</td>
<td>Mail order record</td>
</tr>
<tr class="even">
<td>NLP derived</td>
<td>NLP</td>
</tr>
<tr class="odd">
<td>Patient Self-Reported Medication</td>
<td>Patient self-report</td>
</tr>
<tr class="even">
<td>Physician administered drug (identified as procedure)</td>
<td>Pharmacy claim</td>
</tr>
<tr class="odd">
<td>Drug era - 0 days persistence window</td>
<td></td>
</tr>
<tr class="even">
<td>Drug era - 30 days persistence window</td>
<td></td>
</tr>
<tr class="odd">
<td>Randomized Drug</td>
<td></td>
</tr>
</tbody>
</table>
</div> </div>
<div id="time-span-of-available-data" class="section level3"> <div id="time-span-of-available-data" class="section level3">
<h3>Time span of available data</h3> <h3>Time span of available data</h3>

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -306,17 +306,33 @@ $(document).ready(function () {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -331,10 +347,21 @@ $(document).ready(function () {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -348,20 +375,14 @@ $(document).ready(function () {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -370,7 +391,27 @@ $(document).ready(function () {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -378,28 +419,11 @@ $(document).ready(function () {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -407,7 +431,7 @@ $(document).ready(function () {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

559
docs/ehrObsPeriods.html Normal file
View File

@ -0,0 +1,559 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>Observation Period Considerations for EHR Data</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" />
<script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
<script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script>
<script src="site_libs/navigation-1.1/tabsets.js"></script>
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" />
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" />
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type = "text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style>
<style type="text/css">
/* padding for bootstrap navbar */
body {
padding-top: 51px;
padding-bottom: 40px;
}
/* offset scroll position for anchor links (for fixed navbar) */
.section h1 {
padding-top: 56px;
margin-top: -56px;
}
.section h2 {
padding-top: 56px;
margin-top: -56px;
}
.section h3 {
padding-top: 56px;
margin-top: -56px;
}
.section h4 {
padding-top: 56px;
margin-top: -56px;
}
.section h5 {
padding-top: 56px;
margin-top: -56px;
}
.section h6 {
padding-top: 56px;
margin-top: -56px;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
border-radius: 6px 0 6px 6px;
}
</style>
<script>
// manage active state of menu based on current page
$(document).ready(function () {
// active menu anchor
href = window.location.pathname
href = href.substr(href.lastIndexOf('/') + 1)
if (href === "")
href = "index.html";
var menuAnchor = $('a[href="' + href + '"]');
// mark it active
menuAnchor.parent().addClass('active');
// if it's got a parent navbar menu mark it active as well
menuAnchor.closest('li.dropdown').addClass('active');
});
</script>
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "&#xe258;";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- code folding -->
</head>
<body>
<div class="container-fluid main-container">
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html">
<span class="fas fa-home"></span>
</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-landmark"></span>
Background
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="background.html">Model Background</a>
</li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li>
<a href="vocabulary.html">How the Vocabulary is Built</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span>
Conventions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-history"></span>
CDM Versions
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm30.html">CDM v3.0</a>
</li>
<li>
<a href="cdm60.html">CDM v6.0</a>
</li>
<li>
<a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-plus-square"></span>
Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="faq.html">FAQ</a>
</li>
<li>
<a href="sqlScripts.html">SQL Scripts</a>
</li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
<div class="fluid-row" id="header">
<h1 class="title toc-ignore">Observation Period Considerations for EHR Data</h1>
</div>
<p><em>By Melanie Philofsky and the EHR Working Group</em></p>
<p>The EHR WG convened on July 24, August 7, and August 21, 2020 to discuss the creation of an Observation Period from EHR data. The current and future conventions are not prescriptive enough and leave room for various ways of interpretation. The goals of our discussions were to increase the standardization for the implementation of the OBSERVATION_PERIOD table by providing some general guidelines for determining the start, end, and gaps in Observation Periods. The suggestions we came up with are only “suggestions” at this point. More research should be done to understand how these choices might impact evidence generated using these data. All of these decisions should be tempered by local understanding of patients in the EHR you are ETLing.</p>
<ul>
<li><em>Note - These suggestions are not intended for HMO EHR sites since HMO EHR Observation Periods more closely resemble claims data Observation Periods.</em></li>
</ul>
<div id="observation-period-start-date" class="section level2">
<h2>Observation Period Start Date</h2>
<ul>
<li>Generally an Observation Period does NOT begin before birth, however, it might begin before birth IF the pregnant mother receives care recorded in your EHR. The childs record is then split from the mothers record at birth but may retain care given during pregnancy. For these children in your dataset, the field <strong>observation_period_start_date should be the birth date minus 9 months</strong></li>
<li>An <strong>Observation Period does NOT begin before the implementation of the EHR at your site</strong>. Any records prior to implementation are probably “history of” record types and not a complete EHR record of clinical events.</li>
<li>Special consideration should be given to migration from previous EHR, implementation at different sites within your healthcare system, implementation of different modules, etc.</li>
</ul>
</div>
<div id="observation-period-end-date" class="section level2">
<h2>Observation Period end date</h2>
<p>Set the <strong>observation_period_end_date</strong> as the first date from the following:</p>
<ul>
<li><strong>Date of death + 60 days</strong>
<ul>
<li>This is a CDM convention to allow events after death (autopsy, final notes, etc).</li>
</ul></li>
<li><strong>Last clinical event + 60 days</strong>
<ul>
<li>The assumption is that person will return to the same health provider if an adverse reaction/complication/unresolved condition occurs.</li>
</ul></li>
<li><strong>Date of the data pull from the system</strong></li>
</ul>
</div>
<div id="observation-period-gaps-and-persistence-windows" class="section level2">
<h2>Observation Period Gaps and Persistence Windows</h2>
<div id="observation-period-gaps" class="section level3">
<h3>Observation Period Gaps</h3>
<p>Periods of time when a Person does not receive care from your institution and therefore is not observed and should not have an Observation Period. These gaps are usually hard to determine because most Persons dont announce their departure from an EHR/healthcare institution. Therefore, a heuristic will need to be instituted to determine Observation Period Gaps where the information is not explicit.</p>
</div>
<div id="observation-period-persistence-window" class="section level3">
<h3>Observation Period Persistence Window</h3>
<p>Defined as the maximum time allowed between two clinical events under the assumption a Person would have a clinical event recorded, if they are not healthy and seek care.</p>
<p><strong>Example:</strong> Person 1 has a series of clinical events recorded from <strong>Jan. 1, 2010 to June 15, 2012</strong>, where the time between clinical events does not exceed 60 days. The next clinical event for Person 1 is on <strong>Oct. 1, 2018</strong>. Starting Oct. 1, 2018 Person 1 has clinical events occurring at least every 90 days up to the present date.</p>
<p>There is a 6+ year gap between groups of clinical events recorded in the CDM. After discussion in the EHR WG, we believe this 6+ year gap is indicative of a Person not being seen within our EHR/healthcare institution. Per convention #4 for Observation Period table, “As a general assumption, during an Observation Period any clinical event that happens to the patient is expected to be recorded. Conversely, the absence of data indicates that no clinical events occurred to the patient.” Person 1 has two Observation Periods.</p>
<p><strong>1st Observation Period</strong></p>
<ul>
<li>observation_period_start_date = <strong>01/01/2010</strong></li>
<li>observation_period_end_date = <strong>08/15/2012</strong> (Per the end_date guideline above)</li>
</ul>
<p><strong>2nd Observation Period</strong></p>
<ul>
<li>observation_period_start_date = <strong>10/01/2018</strong></li>
<li>observation_period_end_date = <strong>09/01/2020</strong> (Date of the data pull, per the end_date guideline above)</li>
</ul>
<p>Now, there are cases where a Person only receives care within you EHR system when absolutely necessary. And if your EHR doesnt offer primary care services, the majority of Persons who lack healthcare insurance or any other reason why Persons are only seen in urgent or emergent situations, the above heuristic might be too restrictive. This is a guideline. A question the EHR WG debated was how long between clinical events should we assume any clinical event that happens to the Person is expected to be recorded? When should we end one Observation Period and begin another? What should be the time between events for an Observation Period Persistence Window? Wellness checkups/Visits happen approximately every 12-18 months depending on a multitude of factors.</p>
<p><strong>Our recommendation: If Observation Period Gaps are 548 days or more, then the previous Observation Period should end and another Observation Period should begin on the date of the next clinical event as per the Person 1 example above.</strong></p>
</div>
</div>
<div id="additional-etl-considerations" class="section level2">
<h2>Additional ETL considerations</h2>
<ul>
<li>Implementation of your EHR, migration from previous EHR, implementation at different sites within your healthcare system, implementation of different modules</li>
<li>Coverage of your healthcare system within your area, population served by the healthcare system</li>
<li>All decisions should be tempered by local understanding of patients in the EHR you are ETLing.</li>
</ul>
<p>The Observation Period can be created by only one clinical event. However, the clinical event must NOT be from the Death table. If a Death date does not have any other clinical records 18 months before AND 18 months after the death date, then an Observation Period will not be created. We believe this logic is needed because if a Person only has a death death_date without other clinical event records, a Person is most likely not being “observed” when the death occurred. If a Person was being observed at their time of death, then other records (visit, condition, measurement, etc.) would be created. This rule is most relevant for those with death registry data since a Person who dies in the hospital has many clinical event records.</p>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<!-- code folding -->
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>

View File

@ -304,17 +304,33 @@ $(document).ready(function () {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -329,10 +345,21 @@ $(document).ready(function () {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -346,20 +373,14 @@ $(document).ready(function () {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -368,7 +389,27 @@ $(document).ready(function () {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -376,28 +417,11 @@ $(document).ready(function () {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -405,7 +429,7 @@ $(document).ready(function () {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

BIN
docs/images/cdm54.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 KiB

View File

@ -304,17 +304,33 @@ $(document).ready(function () {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -329,10 +345,21 @@ $(document).ready(function () {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -346,20 +373,14 @@ $(document).ready(function () {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -368,7 +389,27 @@ $(document).ready(function () {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -376,28 +417,11 @@ $(document).ready(function () {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -405,7 +429,7 @@ $(document).ready(function () {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>
@ -425,45 +449,29 @@ $(document).ready(function () {
</div> </div>
<p>The OMOP Common Data Model is managed by the <a href="https://www.ohdsi.org/web/wiki/doku.php?id=projects:workgroups:cdm-wg">OHDSI CDM Working Group</a>. Through the end of 2019 and into 2020 our goal was to fully update the documentation in an effort to facilitate greater understanding of the model. Almost every <a href="https://www.forums.ohdsi.org">forum post</a> relating to a question on how to map data into the CDM inevitably referenced the (now outdated) technical and difficult-to-understand explanations of the tables and fields currently on the wiki. To remedy we focused on one or two tables each month, diving fully into the user guidance and ETL specifications. The results of our efforts can be seen on the pages detailing <a href="https://ohdsi.github.io/CommonDataModel/cdm531.html">v5.3</a> and <a href="https://ohdsi.github.io/CommonDataModel/cdm60.html">v6.0</a>.</p> <p>The OMOP Common Data Model is managed by the OHDSI CDM Working Group. If you would like to join our group please fill out <a href="https://forms.office.com/Pages/ResponsePage.aspx?id=lAAPoyCRq0q6TOVQkCOy1ZyG6Ud_r2tKuS0HcGnqiQZUOVJFUzBFWE1aSVlLN0ozR01MUVQ4T0RGNyQlQCN0PWcu">this form</a> and check “Common Data Model” to be added to our Microsoft Teams environment. This working group endeavors to maintain the OMOP CDM as a living model by soliciting and responding to requests from the community based on use cases and research purposes. For more information on the CDM refresh process please see the description <a href="http://ohdsi.github.io/CommonDataModel/cdmRefreshProcess.html">here</a>. You will find information on our meetings and links to join at the end of this page.</p>
<p>In addition to documentation the formal remit of the CDM Working Group (WG) is to hear proposals for change, ratifying only those with valid use cases and data to support them. In the past, this was done by the WG alone. The group would invite others from around the community to present use cases for change and suggestions for improvement. The WG would then vote on the proposals and a new CDM version would be released after a certain period of time or if enough proposals were voted in. This approach worked when the community was smaller but as it is growing rapidly the CDM WG needed to adapt the refresh cycle such that everyone has an opportunity to weigh in on the proposed changes.</p> <div id="current-cdm-version" class="section level2">
<div id="cdm-refresh-cycle" class="section level2"> <h2>Current CDM Version</h2>
<h2>CDM Refresh Cycle</h2> <p>The current CDM version is <a href="http://ohdsi.github.io/CommonDataModel/cdm54.html">CDM v5.4</a>, depicted below. This CDM version was developed over the course of a year by considering requests that were sent via our <a href="https://github.com/OHDSI/CommonDataModel/issues">issues page</a>. The list of proposed changes was then shared with the community in multiple ways: through discussions at the weekly OHDSI Community calls, discussions with the OHDSI Steering Committee, and discussions with all potentially affected workgroups. The <a href="http://ohdsi.github.io/CommonDataModel/cdm54Changes.html">final changes</a> were then delivered to the Community through a new R package designed to dynamically generate the DDLs and documentation for all supported SQL dialects.</p>
<p><img src="images/CDM_refresh_cycle.png" /></p> <ul>
<div id="define-new-version" class="section level3"> <li><a href="https://github.com/OHDSI/CommonDataModel/tree/v5.4.0">Link to DDLs for CDM v5.4</a></li>
<h3>1. Define New Version</h3> <li><a href="https://github.com/OHDSI/CommonDataModel/tree/master#readme">Link to ReadMe for instructions on how to use the R package</a></li>
<p>The image above describes the new CDM refresh cycle. It begins with <strong>defining a new version</strong>. This has been completed for the current cycle. Issues and proposals on the github were considered during a 4-hour workshop where it was decided the next CDM version will be CDM v5.4, building off of CDM v5.3. The group then participated in a rapid-fire voting activity to identify which changes should be incorporated into CDM v5.4. Any items that were not unanimously agreed upon were then discussed in small groups to hone the proposal and suggestions were presented back to the group. The final roadmap for CDM v5.4 can be found <a href="https://github.com/OHDSI/CommonDataModel/projects/3">here</a>.</p> </ul>
<p><img src="images/cdm54.png" /></p>
</div> </div>
<div id="sign-off-from-work-groups" class="section level3"> <div id="cdm-wg-meeting-information" class="section level2">
<h3>2. Sign off from Work Groups</h3> <h2>CDM WG Meeting Information</h2>
<p>This is the current stage of the refresh cycle for CDM v5.4. Each member of the CDM WG is a liaison for another workgroup in the community. They are responsible for presenting the proposed changes to the CDM and collecting the feedback. This has resulted in very helpful suggestions from the EHR, Data Quality, Device, HADES, and ACHILLES groups. This outreach has proven to be very effective and should result in a very stable version.</p>
</div>
<div id="release-ddls" class="section level3">
<h3>3. Release DDLs</h3>
<p>After all changes and suggestions are agreed upon by the community and work groups the next step is to generate the DDLs this will be done by the CDM Development group.</p>
</div>
<div id="software-update" class="section level3">
<h3>4. Software Update</h3>
<p>There will be period of time once the DDLs are ready to allow the software and methods developers to prepare for the official release of the CDM. This is meant to serve as a buffer so that once the community starts adopting the new model, the tools and methods will be ready to support it.</p>
</div>
<div id="community-support" class="section level3">
<h3>5. Community Support</h3>
<p>This is the final stage of the CDM refresh cycle. Once the DDLs are ready and the software and tools supports the new version, the CDM WG will work to help the community convert their data to the new model.</p>
</div>
</div>
<div id="cdm-wg-meeting-information" class="section level1">
<h1>CDM WG Meeting Information</h1>
<p>The CDM working group meets the first and third Tuesday of the month. See below for links to the meetings.</p> <p>The CDM working group meets the first and third Tuesday of the month. See below for links to the meetings.</p>
<p><strong>Every first Tuesday of the month at 1pm est</strong> <a href="https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1601910741972?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%2281c21b6d-448d-4634-abbc-6b0962d1138a%22%7d">Teams Meeting</a></p> <p><strong>Every first Tuesday of the month at 1pm est</strong> <a href="https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1601910741972?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%2281c21b6d-448d-4634-abbc-6b0962d1138a%22%7d">Teams Meeting</a></p>
<p><strong>Every third Tuesday of the month at 1pm est</strong> <a href="https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1611000164347?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%223c193b7f-c2ab-4bcf-b88c-f89a6b1fba38%22%7d">Teams Meeting</a></p> <p><strong>Every third Tuesday of the month at 1pm est</strong> <a href="https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1611000164347?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%223c193b7f-c2ab-4bcf-b88c-f89a6b1fba38%22%7d">Teams Meeting</a></p>
<p><strong>Note</strong> These were recently changed from a Skype meeting to a Microsoft Teams meeting. If you do you have access to the OHDSI Teams Tenet, please contact Clair Blacketer at <a href="mailto:mblacke@its.jnj.com" class="email">mblacke@its.jnj.com</a>.</p> <p><strong>Note</strong> If you do you have access to the OHDSI Teams Tenet, either contact Clair Blacketer at <a href="mailto:mblacke@its.jnj.com" class="email">mblacke@its.jnj.com</a> or fill out [this form] (<a href="https://forms.office.com/Pages/ResponsePage.aspx?id=lAAPoyCRq0q6TOVQkCOy1ZyG6Ud_r2tKuS0HcGnqiQZUOVJFUzBFWE1aSVlLN0ozR01MUVQ4T0RGNyQlQCN0PWcu" class="uri">https://forms.office.com/Pages/ResponsePage.aspx?id=lAAPoyCRq0q6TOVQkCOy1ZyG6Ud_r2tKuS0HcGnqiQZUOVJFUzBFWE1aSVlLN0ozR01MUVQ4T0RGNyQlQCN0PWcu</a>) and check “Common Data Model”</p>
<div id="cdm-wg-important-links" class="section level3"> <div id="cdm-wg-important-links" class="section level3">
<h3>CDM WG Important Links</h3> <h3>CDM WG Important Links</h3>
<ul> <ul>
<li><a href="https://drive.google.com/open?id=1DaNKe6ivIAZPJeI31VJ-pzNB9wS9hDqu">Google Drive Location</a></li> <li><a href="https://drive.google.com/open?id=1DaNKe6ivIAZPJeI31VJ-pzNB9wS9hDqu">Google Drive Location</a></li>
<li><a href="https://docs.google.com/document/d/1WgKePjrI_cGdqn2XQCe1JdGaTzdMqU4p5ihkMt8fcAc/edit?usp=sharing">Running Agenda</a></li> <li><a href="https://docs.google.com/document/d/1WgKePjrI_cGdqn2XQCe1JdGaTzdMqU4p5ihkMt8fcAc/edit?usp=sharing">Running Agenda</a></li>
<li><a href="https://github.com/OHDSI/CommonDataModel">CDM Github</a></li> <li><a href="https://github.com/OHDSI/CommonDataModel">CDM Github</a></li>
<li><a href="https://www.ohdsi.org/web/wiki/doku.php?id=documentation:next_cdm:cdm_process">Process for adopting CDM and Vocabulary changes</a></li> <li><a href="http://ohdsi.github.io/CommonDataModel/cdmRefreshProcess.html">Process for adopting CDM and Vocabulary changes</a></li>
</ul> </ul>
</div> </div>
</div> </div>

File diff suppressed because it is too large Load Diff

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>
@ -503,12 +527,14 @@ div.tocify {
<h2>OMOP Common Data Model Oncology Extension Documentation</h2> <h2>OMOP Common Data Model Oncology Extension Documentation</h2>
<p>This documentation details the ratified proposal of adding an oncology extension to the OMOP CDM. These tables and fields will become part of the next release (v6.1) of the Common Data Model. Below are their descriptions; showing <em>additions</em> to the model only. For example, two fields were added to the MEASUREMENT table as part of this extension so only those two fields are listed below for MEASUREMENT instead of the entire table. For more information, please see the <a href="https://github.com/OHDSI/OncologyWG/wiki">OMOP Oncology wiki site</a>.</p> <p>This documentation details the ratified proposal of adding an oncology extension to the OMOP CDM. These tables and fields will become part of the next release (v6.1) of the Common Data Model. Below are their descriptions; showing <em>additions</em> to the model only. For example, two fields were added to the MEASUREMENT table as part of this extension so only those two fields are listed below for MEASUREMENT instead of the entire table. For more information, please see the <a href="https://github.com/OHDSI/OncologyWG/wiki">OMOP Oncology wiki site</a>.</p>
<p>The DDLs for these tables are located on the Oncology github, as detailed in the <a href="https://github.com/OHDSI/OncologyWG/wiki/Oncology-CDM-Extension-Installation">installation instructions</a>.</p> <p>The DDLs for these tables are located on the Oncology github, as detailed in the <a href="https://github.com/OHDSI/OncologyWG/wiki/Oncology-CDM-Extension-Installation">installation instructions</a>.</p>
<pre><code>## Warning in read.table(file = file, header = header, sep = sep, quote = quote, : incomplete final line found by readTableHeader on &#39;../inst/csv/
## OMOP_CDM_Oncology_Ex_Table_Level.csv&#39;</code></pre>
<div id="episode" class="section level3 tabset tabset-pills"> <div id="episode" class="section level3 tabset tabset-pills">
<h3 class="tabset tabset-pills">EPISODE</h3> <h3 class="tabset tabset-pills">EPISODE</h3>
<p><strong>Table Description</strong></p> <p><strong>Table Description</strong></p>
<p>The EPISODE table aggregates lower-level clinical events (VISIT_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE) into a higher-level abstraction representing clinically and analytically relevant disease phases/outcomes and treatments. The EPISODE_EVENT table connects qualifying clinical events (VISIT_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE) to the appropriate EPISODE entry.</p> <p>The EPISODE table aggregates lower-level clinical events (VISIT_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE) into a higher-level abstraction representing clinically and analytically relevant disease phases,outcomes and treatments. The EPISODE_EVENT table connects qualifying clinical events (VISIT_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE) to the appropriate EPISODE entry. For example cancers including their development over time, their treatment, and final resolution.</p>
<p><strong>ETL Conventions</strong></p> <p><strong>User Guide</strong></p>
<p>Valid Episode Concepts belong to the Episode domain.<br><br> Standard Episode Concepts are categorized by concept class:<br> Disease Episode<br> 32528 “Disease First Occurrence”<br> 32529 “Disease Recurrence”<br> 32530 “Disease Remission”<br> 32677 “Disease Progression”<br> Treatment Episode 32531 “Treatment Regimen”<br> 32532 “Treatment Cycle”<br> Episode of Care 32533 “Episode of Care”<br><br> The relationship between a disease episode and treatment episodes can be represented by the self-referencing foreign key column EPISODE.episode_parent_id.<br><br> A treatment EPISODE can be delivered at regular intervals, cycles or fractions. The parent-child relationship between a treatment episode and its constituent treatment cycles can be represented by the self-referencing foreign key column EPISODE.episode_parent_id. 5 Some episodes may not have links to any underlying clinical events. For such episodes, the EPISODE_EVENT table is not populated.</p> <p>Valid Episode Concepts belong to the Episode domain. For cancer episodes please see [article], for non-cancer episodes please see [article]. If your source data does not have all episodes that are relevant to the therapeutic area, write only those you can easily derive from the data. It is understood that that table is not currently expected to be comprehensive.</p>
<table class="table table-condensed table-hover" style="font-size: 13px; margin-left: auto; margin-right: auto;"> <table class="table table-condensed table-hover" style="font-size: 13px; margin-left: auto; margin-right: auto;">
<thead> <thead>
<tr> <tr>
@ -550,7 +576,7 @@ FK Class
episode_id episode_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A unique identifier for each Episode event. A unique identifier for each Episode.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
@ -578,7 +604,7 @@ No
person_id person_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to the Person who is experiencing the episdoe. The demographic details of that Person are stored in the PERSON table. The PERSON_ID of the PERSON for whom the episode is recorded.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
</td> </td>
@ -607,9 +633,10 @@ PERSON
episode_concept_id episode_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key that refers to a Standard Concept identifier in the Standardized Vocabularies belonging to the Episode domain. The EPISODE_CONCEPT_ID represents the kind abstraction related to the disease phase, outcome or treatment.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Choose a concept in the Episode domain that best represents the ongoing disease phase, outcome, or treatment. Please see [article] for cancers and [article] for non-cancers describing how these are defined. <a href="https://athena.ohdsi.org/search-terms/terms?domain=Episode&amp;page=1&amp;pageSize=15&amp;query=">Accepted Concepts</a>
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -633,6 +660,35 @@ Episode
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
episode_start_date
</td>
<td style="text-align:left;width: 3in; ">
The date when the Episode beings.
</td>
<td style="text-align:left;width: 4in; ">
Please see [article] for how to define an Episode start date.
</td>
<td style="text-align:left;width: 1in; ">
date
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
episode_start_datetime episode_start_datetime
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
@ -644,12 +700,35 @@ The date and time when the Episode begins.
datetime datetime
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Yes No
</td>
<td style="text-align:left;width: 1in; ">
No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
No No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
episode_end_date
</td>
<td style="text-align:left;width: 3in; ">
The date when the instance of the Episode is considered to have ended.
</td>
<td style="text-align:left;width: 4in; ">
Please see [article] for how to define an Episode end date.
</td>
<td style="text-align:left;width: 1in; ">
date
</td>
<td style="text-align:left;width: 1in; ">
No No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
@ -658,6 +737,10 @@ No
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
</td> </td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr> </tr>
<tr> <tr>
<td style="text-align:left;font-weight: bold;"> <td style="text-align:left;font-weight: bold;">
@ -692,9 +775,10 @@ No
episode_parent_id episode_parent_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key that refers to a parent Episode entry representing an entire episode if the episode spans multiple cycles. Use this field to find the Episode that subsumes the given Episode record. This is used in the case that an Episode are nested into each other.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
If there are multiple nested levels to how Episodes are represented, the EPISODE_PARENT_ID can be used to record this relationship.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
bigint bigint
@ -720,9 +804,10 @@ No
episode_number episode_number
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
An ordinal count for an Episode that spans multiple times. For sequences of episodes, this is used to indicate the order the episodes occurred. For example, lines of treatment could be indicated here.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Please see [article] for the details of how to count episodes.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -748,9 +833,10 @@ No
episode_object_concept_id episode_object_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key that refers to a concept identifier in the Standardized Vocabularies describing the disease, treatment, or other abstraction that the episode describes. Episode entries from the Disease Episode concept class should have an episode_object_concept_id that comes from the Condition domain. Episode entries from the Treatment Episode concept class should have an episode_object_concept_id that scome from the Procedure or Regimen domain. A Standard Concept representing the disease phase, outcome, or other abstraction of which the episode consists. For example, if the EPISODE_CONCEPT_ID is <a href="https://athena.ohdsi.org/search-terms/terms/32531">treatment regimen</a> then the EPISODE_OBJECT_CONCEPT_ID should contain the chemotherapy regimen concept, like <a href="https://athena.ohdsi.org/search-terms/terms/35804392">Afatinib monotherapy</a>.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Episode entries from the Disease Episode concept class should have an episode_object_concept_id that comes from the Condition domain. Episode entries from the Treatment Episode concept class should have an episode_object_concept_id that scome from the Procedure domain or Regimen concept class.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -778,9 +864,10 @@ Procedure, Regimen
episode_type_concept_id episode_type_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key to the predefined Concept identifier in the Standardized Vocabularies reflecting the source data from which the Episode was recorded, the level of standardization, and the type of occurrence. These belong to the Episode Type vocabulary This field can be used to determine the provenance of the Episode record, as in whether the episode was from an EHR system, insurance claim, registry, or other sources.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Choose the EPISODE_TYPE_CONCEPT_ID that best represents the provenance of the record. <a href="https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&amp;standardConcept=Standard&amp;page=1&amp;pageSize=15&amp;query=">Accepted Concepts</a>.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -836,9 +923,10 @@ No
episode_source_concept_id episode_source_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key to a Episdoe Concept that refers to the code used in the source. A foreign key to a Episode Concept that refers to the code used in the source.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Given that the Episodes are user-defined it is unlikely that there will be a Source Concept available. If that is the case then set this field to zero.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -866,7 +954,9 @@ CONCEPT
<div id="episode_event" class="section level3 tabset tabset-pills"> <div id="episode_event" class="section level3 tabset tabset-pills">
<h3 class="tabset tabset-pills">EPISODE_EVENT</h3> <h3 class="tabset tabset-pills">EPISODE_EVENT</h3>
<p><strong>Table Description</strong></p> <p><strong>Table Description</strong></p>
<p>The EPISODE_EVENT table connects qualifying clinical events (VISIT_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE) to the appropriate EPISODE entry. The EPISODE_EVENT table supports the linkage of an EPISODE abstraction to the low-level clinical events that implement the EPISODE abstraction.</p> <p>The EPISODE_EVENT table connects qualifying clinical events (such as CONDITION_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, MEASUREMENT) to the appropriate EPISODE entry. For example, linking the precise location of the metastasis (cancer modifier in MEASUREMENT) to the disease episode.</p>
<p><strong>User Guide</strong></p>
<p>This connecting table is used instead of the FACT_RELATIONSHIP table for linking low-level events to abstracted Episodes.</p>
<p><strong>ETL Conventions</strong></p> <p><strong>ETL Conventions</strong></p>
<p>Some episodes may not have links to any underlying clinical events. For such episodes, the EPISODE_EVENT table is not populated.</p> <p>Some episodes may not have links to any underlying clinical events. For such episodes, the EPISODE_EVENT table is not populated.</p>
<table class="table table-condensed table-hover" style="font-size: 13px; margin-left: auto; margin-right: auto;"> <table class="table table-condensed table-hover" style="font-size: 13px; margin-left: auto; margin-right: auto;">
@ -910,9 +1000,10 @@ FK Class
episode_id episode_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to the Episode that the Episode Event belongs to. Use this field to link the EPISODE_EVENT record to its EPISODE.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the EPISODE_ID that subsumes the EPISODE_EVENT record here.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
bigint bigint
@ -930,7 +1021,6 @@ Yes
EPISODE EPISODE
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
Episode
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
</td> </td>
@ -940,9 +1030,10 @@ Episode
event_id event_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to the underlying event (condition, procedure, measurement, etc.) record in a respective table for which an episode is recorded. This field is the primary key of the linked record in the database. For example, if the Episode Event is a Condition Occurrence, then the CONDITION_OCCURRENCE_ID of the linked record goes in this field.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the primary key of the linked record here.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
bigint bigint
@ -968,9 +1059,10 @@ No
episode_event_field_concept_id episode_event_field_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to the standardized concept corresponding to the table primary key column (condition_occurrence.condition_occurrence_id, procedure_occurrence.procedure_occurrence_id, measurment.measurment_id etc.) where the underlying event is stored. This field is the CONCEPT_ID that identifies which table the primary key of the linked record came from.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the CONCEPT_ID that identifies which table and field the EVENT_ID came from. <a href="https://athena.ohdsi.org/search-terms/terms?vocabulary=CDM&amp;conceptClass=Field&amp;page=1&amp;pageSize=15&amp;query=">Accepted Concepts</a>
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -1043,9 +1135,10 @@ FK Class
modifier_of_event_id modifier_of_event_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
A foreign key identifier to the event (e.g. condition, procedure, episode) record for which the modifier is recorded. If the Measurement record is related to another record in the database, this field is the primary key of the linked record.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the primary key of the linked record, if applicable, here.
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
bigint bigint
@ -1071,9 +1164,10 @@ No
modifier_of_field_concept_id modifier_of_field_concept_id
</td> </td>
<td style="text-align:left;width: 3in; "> <td style="text-align:left;width: 3in; ">
The concept representing the table field concept that contains the value of the event id for which the modifier is recorded (e.g. CONDITION_OCCURRENCE.condition_occurre nce_id). If the Measurement record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from.
</td> </td>
<td style="text-align:left;width: 4in; "> <td style="text-align:left;width: 4in; ">
Put the CONCEPT_ID that identifies which table and field the MODIFIER_OF_EVENT_ID came from. <a href="https://athena.ohdsi.org/search-terms/terms?vocabulary=CDM&amp;conceptClass=Field&amp;page=1&amp;pageSize=15&amp;query=">Accepted Concepts</a>
</td> </td>
<td style="text-align:left;width: 1in; "> <td style="text-align:left;width: 1in; ">
integer integer
@ -1099,164 +1193,6 @@ Metadata
</tbody> </tbody>
</table> </table>
</div> </div>
<div id="concept_numeric" class="section level3 tabset tabset-pills">
<h3 class="tabset tabset-pills">CONCEPT_NUMERIC</h3>
<p><strong>Table Description</strong></p>
<p>In this table, numeric values, units and math operators indicating range limits (less than) corresponding to “numeric” concepts will be stored. It is an extension of the OMOP CDM and vocabulary that supports formal representation of concepts containing numeric values or ranges. This proposal has not yet been ratified by a larger CDM Workgroup. However, it plays a critical role in supporting ETL from tumor registries. NAACCR vocabulary includes concepts representing numeric values or numeric ranges. Often, these concepts also contain measurement units. For example, “Described as less than 1 centimeter (cm)”. In OMOP CDM, these concepts are normally used in Measurement and Observation tables to store value_as_concept_id. Analysis of these data is currently possible only if the user knows exactly which concepts are used to represent range or value, including their respective units. It is not possible to perform analysis on numeric values of these data, nor is it possible to differentiate numeric values by units.</p>
<table class="table table-condensed table-hover" style="font-size: 13px; margin-left: auto; margin-right: auto;">
<thead>
<tr>
<th style="text-align:left;">
CDM Field
</th>
<th style="text-align:left;width: 3in; ">
User Guide
</th>
<th style="text-align:left;width: 4in; ">
ETL Conventions
</th>
<th style="text-align:left;width: 1in; ">
Datatype
</th>
<th style="text-align:left;width: 1in; ">
Required
</th>
<th style="text-align:left;width: 1in; ">
Primary Key
</th>
<th style="text-align:left;width: 1in; ">
Foreign Key
</th>
<th style="text-align:left;width: 1in; ">
FK Table
</th>
<th style="text-align:left;width: 1in; ">
FK Domain
</th>
<th style="text-align:left;width: 1in; ">
FK Class
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;font-weight: bold;">
concept_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key that refers to a respective concept in the Standardized Vocabularies.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
integer
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
value_as_number
</td>
<td style="text-align:left;width: 3in; ">
A value of the concept expressed as a numeric value.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
float
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
unit_concept_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key to a Standard Concept ID of the concept units in the Standardized Vocabularies that belong to the Unit domain.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
integer
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
<tr>
<td style="text-align:left;font-weight: bold;">
operator_concept_id
</td>
<td style="text-align:left;width: 3in; ">
A foreign key identifier to the predefined Concept in the Standardized Vocabularies reflecting the mathematical operator that is applied to the value_as_number. Operators are &lt;, &lt;=, =, &gt;=, &gt; and these concepts belong to the Meas Value Operator domain.
</td>
<td style="text-align:left;width: 4in; ">
</td>
<td style="text-align:left;width: 1in; ">
float
</td>
<td style="text-align:left;width: 1in; ">
yes
</td>
<td style="text-align:left;width: 1in; ">
No
</td>
<td style="text-align:left;width: 1in; ">
Yes
</td>
<td style="text-align:left;width: 1in; ">
CONCEPT
</td>
<td style="text-align:left;width: 1in; ">
</td>
<td style="text-align:left;width: 1in; ">
</td>
</tr>
</tbody>
</table>
</div>
</div> </div>

View File

@ -306,17 +306,33 @@ $(document).ready(function () {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -331,10 +347,21 @@ $(document).ready(function () {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -348,20 +375,14 @@ $(document).ready(function () {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -370,7 +391,27 @@ $(document).ready(function () {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -378,28 +419,11 @@ $(document).ready(function () {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -407,7 +431,7 @@ $(document).ready(function () {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -304,17 +304,33 @@ $(document).ready(function () {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -329,10 +345,21 @@ $(document).ready(function () {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -346,20 +373,14 @@ $(document).ready(function () {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -368,7 +389,27 @@ $(document).ready(function () {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -376,28 +417,11 @@ $(document).ready(function () {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -405,7 +429,7 @@ $(document).ready(function () {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -23,6 +23,7 @@ window.initializeCodeFolding = function(show) {
// create a collapsable div to wrap the code in // create a collapsable div to wrap the code in
var div = $('<div class="collapse r-code-collapse"></div>'); var div = $('<div class="collapse r-code-collapse"></div>');
var showThis = (show || $(this).hasClass('fold-show')) && !$(this).hasClass('fold-hide'); var showThis = (show || $(this).hasClass('fold-show')) && !$(this).hasClass('fold-hide');
if (showThis) div.addClass('in');
var id = 'rcode-643E0F36' + currentIndex++; var id = 'rcode-643E0F36' + currentIndex++;
div.attr('id', id); div.attr('id', id);
$(this).before(div); $(this).before(div);
@ -30,7 +31,7 @@ window.initializeCodeFolding = function(show) {
// add a show code button right above // add a show code button right above
var showCodeText = $('<span>' + (showThis ? 'Hide' : 'Code') + '</span>'); var showCodeText = $('<span>' + (showThis ? 'Hide' : 'Code') + '</span>');
var showCodeButton = $('<button type="button" class="btn btn-default btn-xs btn-secondary btn-sm code-folding-btn pull-right float-right"></button>'); var showCodeButton = $('<button type="button" class="btn btn-default btn-xs code-folding-btn pull-right"></button>');
showCodeButton.append(showCodeText); showCodeButton.append(showCodeText);
showCodeButton showCodeButton
.attr('data-toggle', 'collapse') .attr('data-toggle', 'collapse')
@ -46,27 +47,13 @@ window.initializeCodeFolding = function(show) {
div.before(buttonRow); div.before(buttonRow);
// show the div if necessary
if (showThis) div.collapse('show');
// update state of button on show/hide // update state of button on show/hide
// * Change text
// * add a class for intermediate states styling
div.on('hide.bs.collapse', function () {
showCodeText.text('Code');
showCodeButton.addClass('btn-collapsing');
});
div.on('hidden.bs.collapse', function () { div.on('hidden.bs.collapse', function () {
showCodeButton.removeClass('btn-collapsing'); showCodeText.text('Code');
}); });
div.on('show.bs.collapse', function () { div.on('show.bs.collapse', function () {
showCodeText.text('Hide'); showCodeText.text('Hide');
showCodeButton.addClass('btn-expanding');
}); });
div.on('shown.bs.collapse', function () {
showCodeButton.removeClass('btn-expanding');
});
}); });
} }

View File

@ -176,7 +176,7 @@
self._setEventHandlers(); self._setEventHandlers();
// Binding to the Window load event to make sure the correct scrollTop is calculated // Binding to the Window load event to make sure the correct scrollTop is calculated
$(window).on("load", function() { $(window).load(function() {
// Sets the active TOC item // Sets the active TOC item
self._setActiveElement(true); self._setActiveElement(true);

View File

@ -380,17 +380,33 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
@ -405,10 +421,21 @@ div.tocify {
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li> <li>
<a href="cdm531.html">CDM v5.3.1</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm53.html">CDM v5.3</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li>
<a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</li> </li>
@ -422,20 +449,14 @@ div.tocify {
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li>
<a href="oncology.html">Oncology CDM Proposal</a>
</li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li> </li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -444,7 +465,27 @@ div.tocify {
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span> <span class="fas fa-question"></span>
Help How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -452,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -481,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fas fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -13,6 +13,7 @@
<title>How the Vocabulary is Built</title> <title>How the Vocabulary is Built</title>
<script src="site_libs/header-attrs-2.6/header-attrs.js"></script>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script> <script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" /> <link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" />
@ -25,8 +26,6 @@
<script src="site_libs/navigation-1.1/tabsets.js"></script> <script src="site_libs/navigation-1.1/tabsets.js"></script>
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" /> <link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script> <script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
<link href="site_libs/anchor-sections-1.0/anchor-sections.css" rel="stylesheet" />
<script src="site_libs/anchor-sections-1.0/anchor-sections.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" /> <link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet" />
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" /> <link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet" />
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' /> <link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
@ -85,6 +84,7 @@ h6 {
} }
</style> </style>
<link rel="stylesheet" href="style.css" type="text/css" /> <link rel="stylesheet" href="style.css" type="text/css" />
@ -364,13 +364,13 @@ div.tocify {
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li> <li>
<a href="index.html"> <a href="index.html">
<span class="fa fa-home"></span> <span class="fas fa-home"></span>
</a> </a>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-landmark"></span> <span class="fas fa-landmark"></span>
Background Background
@ -380,21 +380,37 @@ div.tocify {
<li> <li>
<a href="background.html">Model Background</a> <a href="background.html">Model Background</a>
</li> </li>
<li>
<a href="cdmRefreshProcess.html">CDM Refresh Process</a>
</li>
<li> <li>
<a href="vocabulary.html">How the Vocabulary is Built</a> <a href="vocabulary.html">How the Vocabulary is Built</a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li class="dropdown">
<a href="dataModelConventions.html"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-list-alt"></span> <span class="fas fa-list-alt"></span>
Conventions Conventions
<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="dataModelConventions.html">General Conventions</a>
</li>
<li>
<a href="ehrObsPeriods.html">Observation Periods for EHR Data</a>
</li>
<li>
<a href="cdmPrivacy.html">Patient Privacy and OMOP</a>
</li>
</ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-history"></span> <span class="fas fa-history"></span>
CDM Versions CDM Versions
@ -404,40 +420,20 @@ div.tocify {
<li> <li>
<a href="cdm30.html">CDM v3.0</a> <a href="cdm30.html">CDM v3.0</a>
</li> </li>
<li>
<a href="cdm53.html">CDM v5.3</a>
</li>
<li>
<a href="cdm54.html">CDM v5.4</a>
</li>
<li> <li>
<a href="cdm60.html">CDM v6.0</a> <a href="cdm60.html">CDM v6.0</a>
</li> </li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-plus-square"></span>
Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="reviewProposals.html">Under Review</a> <a href="cdm53.html">CDM v5.3</a>
</li> </li>
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">NEW CDM v5.4</a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li> <li>
<a href="oncology.html">Oncology CDM Proposal</a> <a href="cdm54.html">CDM v5.4</a>
</li> </li>
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a> <a href="cdm54Changes.html">Changes from CDM v5.3</a>
</li>
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/264">Units in Device Table</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -445,9 +441,51 @@ div.tocify {
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-question"></span> <span class="fas fa-plus-square"></span>
Help Proposals
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal">Under Review</a>
</li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Accepted</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="https://github.com/OHDSI/CommonDataModel/issues/252">Region_concept_id</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-question"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="download.html">Download the DDL</a>
</li>
<li>
<a href="cdmRPackage.html">Use the CDM R Package</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fas fa-life-ring"></span>
Support
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@ -455,28 +493,11 @@ div.tocify {
<li> <li>
<a href="faq.html">FAQ</a> <a href="faq.html">FAQ</a>
</li> </li>
<li>
<a href="contribute.html">Ask a Question</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-wrench"></span>
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li> <li>
<a href="sqlScripts.html">SQL Scripts</a> <a href="sqlScripts.html">SQL Scripts</a>
</li> </li>
<li> <li>
<a href="download.html">Download the DDL</a> <a href="contribute.html">Ask a Question</a>
</li>
<li>
<a href="drug_dose.html">Calculate Drug Dose</a>
</li> </li>
</ul> </ul>
</li> </li>
@ -484,7 +505,7 @@ div.tocify {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="https://github.com/OHDSI/CommonDataModel"> <a href="https://github.com/OHDSI/CommonDataModel">
<span class="fa fa-github fa-lg"></span> <span class="fas fa-github"></span>
</a> </a>
</li> </li>

View File

@ -3,6 +3,6 @@
# Run this in standalone R session. Runs orders of magnitude faster compared # Run this in standalone R session. Runs orders of magnitude faster compared
# to running in RStudio: # to running in RStudio:
setwd("C:/Git/Github/CdmDdlBase/rmd") setwd("/Users/clairblacketer/Documents/Github/CommonDataModel/rmd")
rmarkdown::render_site() rmarkdown::render_site()

View File

@ -1,216 +1,216 @@
cdmTableName,cdmFieldName,isRequired,cdmDatatype,userGuidance,etlConventions,isPrimaryKey,isForeignKey,fkTableName,fkFieldName,fkDomain,fkClass,unique DQ identifiers cdmTableName,cdmFieldName,isRequired,cdmDatatype,userGuidance,etlConventions,isPrimaryKey,isForeignKey,fkTableName,fkFieldName,fkDomain,fkClass,unique DQ identifiers
PERSON,person_id,Yes,integer,It is assumed that every person with a different unique identifier is in fact a different person and should be treated independently.,"Any person linkage that needs to occur to uniquely identify Persons ought to be done prior to writing this table. This identifier can be the original id from the source data provided if it is an integer, otherwise it can be an autogenerated number.",Yes,No,,,,, PERSON,person_id,Yes,integer,It is assumed that every person with a different unique identifier is in fact a different person and should be treated independently.,"Any person linkage that needs to occur to uniquely identify Persons ought to be done prior to writing this table. This identifier can be the original id from the source data provided if it is an integer, otherwise it can be an autogenerated number.",Yes,No,,,,,
PERSON,gender_concept_id,Yes,integer,This field is meant to capture the biological sex at birth of the Person. This field should not be used to study gender identity issues.,Use the gender or sex value present in the data under the assumption that it is the biological sex at birth. If the source data captures gender identity it should be stored in the [OBSERVATION](https://ohdsi.github.io/CommonDataModel/cdm531.html#observation) table. [Accepted gender concepts](http://athena.ohdsi.org/search-terms/terms?domain=Gender&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,Gender,, PERSON,gender_concept_id,Yes,integer,This field is meant to capture the biological sex at birth of the Person. This field should not be used to study gender identity issues.,Use the gender or sex value present in the data under the assumption that it is the biological sex at birth. If the source data captures gender identity it should be stored in the [OBSERVATION](https://ohdsi.github.io/CommonDataModel/cdm531.html#observation) table. [Accepted gender concepts](http://athena.ohdsi.org/search-terms/terms?domain=Gender&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,Gender,,
PERSON,year_of_birth,Yes,integer,Compute age using year_of_birth.,"For data sources with date of birth, the year should be extracted. For data sources where the year of birth is not available, the approximate year of birth could be derived based on age group categorization, if available.",No,No,,,,, PERSON,year_of_birth,Yes,integer,Compute age using year_of_birth.,"For data sources with date of birth, the year should be extracted. For data sources where the year of birth is not available, the approximate year of birth could be derived based on age group categorization, if available.",No,No,,,,,
PERSON,month_of_birth,No,integer,,"For data sources that provide the precise date of birth, the month should be extracted and stored in this field.",No,No,,,,, PERSON,month_of_birth,No,integer,,"For data sources that provide the precise date of birth, the month should be extracted and stored in this field.",No,No,,,,,
PERSON,day_of_birth,No,integer,,"For data sources that provide the precise date of birth, the day should be extracted and stored in this field.",No,No,,,,, PERSON,day_of_birth,No,integer,,"For data sources that provide the precise date of birth, the day should be extracted and stored in this field.",No,No,,,,,
PERSON,birth_datetime,No,datetime,,"This field is not required but highly encouraged. For data sources that provide the precise datetime of birth, that value should be stored in this field. If birth_datetime is not provided in the source, use the following logic to infer the date: If day_of_birth is null and month_of_birth is not null then use the first of the month in that year. If month_of_birth is null or if day_of_birth AND month_of_birth are both null and the person has records during their year of birth then use the date of the earliest record, otherwise use the 15th of June of that year. If time of birth is not given use midnight (00:00:0000).",No,No,,,,, PERSON,birth_datetime,No,datetime,,"This field is not required but highly encouraged. For data sources that provide the precise datetime of birth, that value should be stored in this field. If birth_datetime is not provided in the source, use the following logic to infer the date: If day_of_birth is null and month_of_birth is not null then use the first of the month in that year. If month_of_birth is null or if day_of_birth AND month_of_birth are both null and the person has records during their year of birth then use the date of the earliest record, otherwise use the 15th of June of that year. If time of birth is not given use midnight (00:00:0000).",No,No,,,,,
PERSON,race_concept_id,Yes,integer,This field captures race or ethnic background of the person.,"Only use this field if you have information about race or ethnic background. The Vocabulary contains Concepts about the main races and ethnic backgrounds in a hierarchical system. Due to the imprecise nature of human races and ethnic backgrounds, this is not a perfect system. Mixed races are not supported. If a clear race or ethnic background cannot be established, use Concept_Id 0. [Accepted Race Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Race&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Race,, PERSON,race_concept_id,Yes,integer,This field captures race or ethnic background of the person.,"Only use this field if you have information about race or ethnic background. The Vocabulary contains Concepts about the main races and ethnic backgrounds in a hierarchical system. Due to the imprecise nature of human races and ethnic backgrounds, this is not a perfect system. Mixed races are not supported. If a clear race or ethnic background cannot be established, use Concept_Id 0. [Accepted Race Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Race&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Race,,
PERSON,ethnicity_concept_id,Yes,integer,"This field captures Ethnicity as defined by the Office of Management and Budget (OMB) of the US Government: it distinguishes only between ""Hispanic"" and ""Not Hispanic"". Races and ethnic backgrounds are not stored here.",Only use this field if you have US-based data and a source of this information. Do not attempt to infer Ethnicity from the race or ethnic background of the Person. [Accepted ethnicity concepts](http://athena.ohdsi.org/search-terms/terms?domain=Ethnicity&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,Ethnicity,, PERSON,ethnicity_concept_id,Yes,integer,"This field captures Ethnicity as defined by the Office of Management and Budget (OMB) of the US Government: it distinguishes only between ""Hispanic"" and ""Not Hispanic"". Races and ethnic backgrounds are not stored here.",Only use this field if you have US-based data and a source of this information. Do not attempt to infer Ethnicity from the race or ethnic background of the Person. [Accepted ethnicity concepts](http://athena.ohdsi.org/search-terms/terms?domain=Ethnicity&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,Ethnicity,,
PERSON,location_id,No,integer,The location refers to the physical address of the person. This field should capture the last known location of the person. ,"Put the location_id from the [LOCATION](https://ohdsi.github.io/CommonDataModel/cdm531.html#location) table here that represents the most granular location information for the person. This could represent anything from postal code or parts thereof, state, or county for example. Since many databases contain deidentified data, it is common that the precision of the location is reduced to prevent re-identification. This field should capture the last known location. ",No,Yes,LOCATION,LOCATION_ID,,, PERSON,location_id,No,integer,The location refers to the physical address of the person. This field should capture the last known location of the person. ,"Put the location_id from the [LOCATION](https://ohdsi.github.io/CommonDataModel/cdm531.html#location) table here that represents the most granular location information for the person. This could represent anything from postal code or parts thereof, state, or county for example. Since many databases contain deidentified data, it is common that the precision of the location is reduced to prevent re-identification. This field should capture the last known location. ",No,Yes,LOCATION,LOCATION_ID,,,
PERSON,provider_id,No,integer,The Provider refers to the last known primary care provider (General Practitioner).,"Put the provider_id from the [PROVIDER](https://ohdsi.github.io/CommonDataModel/cdm531.html#provider) table of the last known general practitioner of the person. If there are multiple providers, it is up to the ETL to decide which to put here.",No,Yes,PROVIDER,PROVIDER_ID,,, PERSON,provider_id,No,integer,The Provider refers to the last known primary care provider (General Practitioner).,"Put the provider_id from the [PROVIDER](https://ohdsi.github.io/CommonDataModel/cdm531.html#provider) table of the last known general practitioner of the person. If there are multiple providers, it is up to the ETL to decide which to put here.",No,Yes,PROVIDER,PROVIDER_ID,,,
PERSON,care_site_id,No,integer,The Care Site refers to where the Provider typically provides the primary care.,,No,Yes,CARE_SITE,CARE_SITE_ID,,, PERSON,care_site_id,No,integer,The Care Site refers to where the Provider typically provides the primary care.,,No,Yes,CARE_SITE,CARE_SITE_ID,,,
PERSON,person_source_value,No,varchar(50),Use this field to link back to persons in the source data. This is typically used for error checking of ETL logic.,Some use cases require the ability to link back to persons in the source data. This field allows for the storing of the person value as it appears in the source. This field is not required but strongly recommended.,No,No,,,,, PERSON,person_source_value,No,varchar(50),Use this field to link back to persons in the source data. This is typically used for error checking of ETL logic.,Some use cases require the ability to link back to persons in the source data. This field allows for the storing of the person value as it appears in the source. This field is not required but strongly recommended.,No,No,,,,,
PERSON,gender_source_value,No,varchar(50),This field is used to store the biological sex of the person from the source data. It is not intended for use in standard analytics but for reference only.,Put the biological sex of the person as it appears in the source data.,No,No,,,,, PERSON,gender_source_value,No,varchar(50),This field is used to store the biological sex of the person from the source data. It is not intended for use in standard analytics but for reference only.,Put the biological sex of the person as it appears in the source data.,No,No,,,,,
PERSON,gender_source_concept_id,No,integer,"Due to the small number of options, this tends to be zero.","If the source data codes biological sex in a non-standard vocabulary, store the concept_id here.",No,Yes,CONCEPT,CONCEPT_ID,,, PERSON,gender_source_concept_id,No,integer,"Due to the small number of options, this tends to be zero.","If the source data codes biological sex in a non-standard vocabulary, store the concept_id here.",No,Yes,CONCEPT,CONCEPT_ID,,,
PERSON,race_source_value,No,varchar(50),This field is used to store the race of the person from the source data. It is not intended for use in standard analytics but for reference only.,Put the race of the person as it appears in the source data.,No,No,,,,, PERSON,race_source_value,No,varchar(50),This field is used to store the race of the person from the source data. It is not intended for use in standard analytics but for reference only.,Put the race of the person as it appears in the source data.,No,No,,,,,
PERSON,race_source_concept_id,No,integer,"Due to the small number of options, this tends to be zero.",If the source data codes race in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PERSON,race_source_concept_id,No,integer,"Due to the small number of options, this tends to be zero.",If the source data codes race in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PERSON,ethnicity_source_value,No,varchar(50),This field is used to store the ethnicity of the person from the source data. It is not intended for use in standard analytics but for reference only.,"If the person has an ethnicity other than the OMB standard of ""Hispanic"" or ""Not Hispanic"" store that value from the source data here.",No,No,,,,, PERSON,ethnicity_source_value,No,varchar(50),This field is used to store the ethnicity of the person from the source data. It is not intended for use in standard analytics but for reference only.,"If the person has an ethnicity other than the OMB standard of ""Hispanic"" or ""Not Hispanic"" store that value from the source data here.",No,No,,,,,
PERSON,ethnicity_source_concept_id,No,integer,"Due to the small number of options, this tends to be zero.","If the source data codes ethnicity in an OMOP supported vocabulary, store the concept_id here.",No,Yes,CONCEPT,CONCEPT_ID,,, PERSON,ethnicity_source_concept_id,No,integer,"Due to the small number of options, this tends to be zero.","If the source data codes ethnicity in an OMOP supported vocabulary, store the concept_id here.",No,Yes,CONCEPT,CONCEPT_ID,,,
OBSERVATION_PERIOD,observation_period_id,Yes,integer,A Person can have multiple discrete Observation Periods which are identified by the Observation_Period_Id.,Assign a unique observation_period_id to each discrete Observation Period for a Person.,Yes,No,,,,, OBSERVATION_PERIOD,observation_period_id,Yes,integer,A Person can have multiple discrete Observation Periods which are identified by the Observation_Period_Id.,Assign a unique observation_period_id to each discrete Observation Period for a Person.,Yes,No,,,,,
OBSERVATION_PERIOD,person_id,Yes,integer,The Person ID of the PERSON record for which the Observation Period is recorded.,,No,Yes,PERSON,PERSON_ID,,, OBSERVATION_PERIOD,person_id,Yes,integer,The Person ID of the PERSON record for which the Observation Period is recorded.,,No,Yes,PERSON,PERSON_ID,,,
OBSERVATION_PERIOD,observation_period_start_date,Yes,date,Use this date to determine the start date of the Observation Period.,"It is often the case that the idea of Observation Periods does not exist in source data. In those cases, the observation_period_start_date can be inferred as the earliest Event date available for the Person. In insurance claim data, the Observation Period can be considered as the time period the Person is enrolled with a payer. If a Person switches plans but stays with the same payer, and therefore capturing of data continues, that change would be captured in [PAYER_PLAN_PERIOD](https://ohdsi.github.io/CommonDataModel/cdm531.html#payer_plan_period).",No,No,,,,, OBSERVATION_PERIOD,observation_period_start_date,Yes,date,Use this date to determine the start date of the Observation Period.,"It is often the case that the idea of Observation Periods does not exist in source data. In those cases, the observation_period_start_date can be inferred as the earliest Event date available for the Person. In insurance claim data, the Observation Period can be considered as the time period the Person is enrolled with a payer. If a Person switches plans but stays with the same payer, and therefore capturing of data continues, that change would be captured in [PAYER_PLAN_PERIOD](https://ohdsi.github.io/CommonDataModel/cdm531.html#payer_plan_period).",No,No,,,,,
OBSERVATION_PERIOD,observation_period_end_date,Yes,date,Use this date to determine the end date of the period for which we can assume that all events for a Person are recorded.,"It is often the case that the idea of Observation Periods does not exist in source data. In those cases, the observation_period_end_date can be inferred as the last Event date available for the Person. In insurance claim data, the Observation Period can be considered as the time period the Person is enrolled with a payer.",No,No,,,,, OBSERVATION_PERIOD,observation_period_end_date,Yes,date,Use this date to determine the end date of the period for which we can assume that all events for a Person are recorded.,"It is often the case that the idea of Observation Periods does not exist in source data. In those cases, the observation_period_end_date can be inferred as the last Event date available for the Person. In insurance claim data, the Observation Period can be considered as the time period the Person is enrolled with a payer.",No,No,,,,,
OBSERVATION_PERIOD,period_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Observation Period as in whether the period was determined from an insurance enrollment file, EHR healthcare encounters, or other sources.",Choose the observation_period_type_concept_id that best represents how the period was determined. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, OBSERVATION_PERIOD,period_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Observation Period as in whether the period was determined from an insurance enrollment file, EHR healthcare encounters, or other sources.",Choose the observation_period_type_concept_id that best represents how the period was determined. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
VISIT_OCCURRENCE,visit_occurrence_id,Yes,integer,Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit.,This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time.,Yes,No,,,,, VISIT_OCCURRENCE,visit_occurrence_id,Yes,integer,Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit.,This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time.,Yes,No,,,,,
VISIT_OCCURRENCE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, VISIT_OCCURRENCE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
VISIT_OCCURRENCE,visit_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_OCCURRENCE,visit_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_OCCURRENCE,visit_start_date,Yes,date,"For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same.","When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction.",No,No,,,,, VISIT_OCCURRENCE,visit_start_date,Yes,date,"For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same.","When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction.",No,No,,,,,
VISIT_OCCURRENCE,visit_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_OCCURRENCE,visit_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_OCCURRENCE,visit_end_date,Yes,date,For inpatient visits the end date is typically the discharge date.,"Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them: VISIT_OCCURRENCE,visit_end_date,Yes,date,For inpatient visits the end date is typically the discharge date.,"Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:
- Outpatient Visit: visit_end_datetime = visit_start_datetime - Outpatient Visit: visit_end_datetime = visit_start_datetime
- Emergency Room Visit: visit_end_datetime = visit_start_datetime - Emergency Room Visit: visit_end_datetime = visit_start_datetime
- Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs.
- Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs. - Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.
For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete. For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete.
- All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date.",No,No,,,,, - All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date.",No,No,,,,,
VISIT_OCCURRENCE,visit_end_datetime,No,datetime,,"If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_OCCURRENCE,visit_end_datetime,No,datetime,,"If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_OCCURRENCE,visit_type_concept_id,Yes,Integer,"Use this field to understand the provenance of the visit record, or where the record comes from.","Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, VISIT_OCCURRENCE,visit_type_concept_id,Yes,Integer,"Use this field to understand the provenance of the visit record, or where the record comes from.","Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
VISIT_OCCURRENCE,provider_id,No,integer,"There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table.","If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the [VISIT_DETAIL](https://ohdsi.github.io/CommonDataModel/cdm531.html#visit_detail) table.",No,Yes,PROVIDER,PROVIDER_ID,,, VISIT_OCCURRENCE,provider_id,No,integer,"There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table.","If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the [VISIT_DETAIL](https://ohdsi.github.io/CommonDataModel/cdm531.html#visit_detail) table.",No,Yes,PROVIDER,PROVIDER_ID,,,
VISIT_OCCURRENCE,care_site_id,No,integer,This field provides information about the Care Site where the Visit took place.,There should only be one Care Site associated with a Visit.,No,Yes,CARE_SITE,CARE_SITE_ID,,, VISIT_OCCURRENCE,care_site_id,No,integer,This field provides information about the Care Site where the Visit took place.,There should only be one Care Site associated with a Visit.,No,Yes,CARE_SITE,CARE_SITE_ID,,,
VISIT_OCCURRENCE,visit_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,, VISIT_OCCURRENCE,visit_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,,
VISIT_OCCURRENCE,visit_source_concept_id,No,integer,,If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, VISIT_OCCURRENCE,visit_source_concept_id,No,integer,,If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
VISIT_OCCURRENCE,admitting_source_concept_id,No,integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_OCCURRENCE,admitting_source_concept_id,No,integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_OCCURRENCE,admitting_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,, VISIT_OCCURRENCE,admitting_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,,
VISIT_OCCURRENCE,discharge_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example.","If available, map the discharge_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_OCCURRENCE,discharge_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example.","If available, map the discharge_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_OCCURRENCE,discharge_to_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,, VISIT_OCCURRENCE,discharge_to_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,,
VISIT_OCCURRENCE,preceding_visit_occurrence_id,No,integer,Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between.,"This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, VISIT_OCCURRENCE,preceding_visit_occurrence_id,No,integer,Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between.,"This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
VISIT_DETAIL,visit_detail_id,Yes,integer,Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.,This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time.,Yes,No,,,,, VISIT_DETAIL,visit_detail_id,Yes,integer,Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.,This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time.,Yes,No,,,,,
VISIT_DETAIL,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, VISIT_DETAIL,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
VISIT_DETAIL,visit_detail_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_DETAIL,visit_detail_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_DETAIL,visit_detail_start_date,Yes,date,This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.,"When populating VISIT_DETAIL_START_DATE, you should think about the patient experience to make decisions on how to define visits. Most likely this should be the date of the patient-provider interaction.",No,No,,,,, VISIT_DETAIL,visit_detail_start_date,Yes,date,This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.,"When populating VISIT_DETAIL_START_DATE, you should think about the patient experience to make decisions on how to define visits. Most likely this should be the date of the patient-provider interaction.",No,No,,,,,
VISIT_DETAIL,visit_detail_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_DETAIL,visit_detail_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_DETAIL,visit_detail_end_date,Yes,date,This the end date of the patient-provider interaction.,"Visit Detail end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:<br> VISIT_DETAIL,visit_detail_end_date,Yes,date,This the end date of the patient-provider interaction.,"Visit Detail end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:<br>
- Outpatient Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Outpatient Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime
- Emergency Room Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Emergency Room Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime
- Inpatient Visit Detail: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Inpatient Visit Detail: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs.
- Non-hospital institution Visit Details: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.<br> - Non-hospital institution Visit Details: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.<br>
For Inpatient Visit Details ongoing at the date of ETL, put date of processing the data into visit_detai_end_datetime and visit_detail_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete. For Inpatient Visit Details ongoing at the date of ETL, put date of processing the data into visit_detai_end_datetime and visit_detail_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete.
All other Visits Details: visit_detail_end_datetime = visit_detail_start_datetime. ",No,No,,,,, All other Visits Details: visit_detail_end_datetime = visit_detail_start_datetime. ",No,No,,,,,
VISIT_DETAIL,visit_detail_end_datetime,No,datetime,,"If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_DETAIL,visit_detail_end_datetime,No,datetime,,"If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_DETAIL,visit_detail_type_concept_id,Yes,integer,"Use this field to understand the provenance of the visit detail record, or where the record comes from.","Populate this field based on the provenance of the visit detail record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, VISIT_DETAIL,visit_detail_type_concept_id,Yes,integer,"Use this field to understand the provenance of the visit detail record, or where the record comes from.","Populate this field based on the provenance of the visit detail record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
VISIT_DETAIL,provider_id,No,integer,"There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",The additional providers associated to a Visit can be stored in this table where each VISIT_DETAIL record represents a different provider.,No,Yes,PROVIDER,PROVIDER_ID,,, VISIT_DETAIL,provider_id,No,integer,"There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",The additional providers associated to a Visit can be stored in this table where each VISIT_DETAIL record represents a different provider.,No,Yes,PROVIDER,PROVIDER_ID,,,
VISIT_DETAIL,care_site_id,No,integer,This field provides information about the Care Site where the Visit Detail took place.,There should only be one Care Site associated with a Visit Detail.,No,Yes,CARE_SITE,CARE_SITE_ID,,, VISIT_DETAIL,care_site_id,No,integer,This field provides information about the Care Site where the Visit Detail took place.,There should only be one Care Site associated with a Visit Detail.,No,Yes,CARE_SITE,CARE_SITE_ID,,,
VISIT_DETAIL,visit_detail_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit detail in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the VISIT_DETAIL_SOURCE_VALUE, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,, VISIT_DETAIL,visit_detail_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit detail in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the VISIT_DETAIL_SOURCE_VALUE, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,,
VISIT_DETAIL,visit_detail_source_concept_id,No,Integer,,If the VISIT_DETAIL_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, VISIT_DETAIL,visit_detail_source_concept_id,No,Integer,,If the VISIT_DETAIL_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
VISIT_DETAIL,admitting_source_value,No,Varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,, VISIT_DETAIL,admitting_source_value,No,Varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,,
VISIT_DETAIL,admitting_source_concept_id,No,Integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_DETAIL,admitting_source_concept_id,No,Integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_DETAIL,discharge_to_source_value,No,Varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,, VISIT_DETAIL,discharge_to_source_value,No,Varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,,
VISIT_DETAIL,discharge_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit detail record. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example.","If available, map the DISCHARGE_TO_SOURCE_VALUE to a Standard Concept in the Visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_DETAIL,discharge_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit detail record. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example.","If available, map the DISCHARGE_TO_SOURCE_VALUE to a Standard Concept in the Visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_DETAIL,preceding_visit_detail_id,No,integer,Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.,"The PRECEDING_VISIT_DETAIL_ID can be used to link a visit immediately preceding the current Visit Detail. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, VISIT_DETAIL,preceding_visit_detail_id,No,integer,Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.,"The PRECEDING_VISIT_DETAIL_ID can be used to link a visit immediately preceding the current Visit Detail. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
VISIT_DETAIL,visit_detail_parent_id,No,integer,Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.,"If there are multiple nested levels to how Visits are represented in the source, the VISIT_DETAIL_PARENT_ID can be used to record this relationship. ",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, VISIT_DETAIL,visit_detail_parent_id,No,integer,Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.,"If there are multiple nested levels to how Visits are represented in the source, the VISIT_DETAIL_PARENT_ID can be used to record this relationship. ",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
VISIT_DETAIL,visit_occurrence_id,Yes,integer,Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.,Put the VISIT_OCCURRENCE_ID that subsumes the VISIT_DETAIL record here.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, VISIT_DETAIL,visit_occurrence_id,Yes,integer,Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.,Put the VISIT_OCCURRENCE_ID that subsumes the VISIT_DETAIL record here.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
CONDITION_OCCURRENCE,condition_occurrence_id,Yes,integer,The unique key given to a condition record for a person. Refer to the ETL for how duplicate conditions during the same visit were handled.,"Each instance of a condition present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same condition within the same visit. It is valid to keep these duplicates and assign them individual, unique, CONDITION_OCCURRENCE_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,, CONDITION_OCCURRENCE,condition_occurrence_id,Yes,integer,The unique key given to a condition record for a person. Refer to the ETL for how duplicate conditions during the same visit were handled.,"Each instance of a condition present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same condition within the same visit. It is valid to keep these duplicates and assign them individual, unique, CONDITION_OCCURRENCE_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,,
CONDITION_OCCURRENCE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the condition is recorded.,,No,Yes,PERSON,PERSON_ID,,, CONDITION_OCCURRENCE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the condition is recorded.,,No,Yes,PERSON,PERSON_ID,,,
CONDITION_OCCURRENCE,condition_concept_id,Yes,integer,"The CONDITION_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 value which represents a condition","The CONCEPT_ID that the CONDITION_SOURCE_VALUE maps to. Only records whose source values map to concepts with a domain of ""Condition"" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Condition,, CONDITION_OCCURRENCE,condition_concept_id,Yes,integer,"The CONDITION_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 value which represents a condition","The CONCEPT_ID that the CONDITION_SOURCE_VALUE maps to. Only records whose source values map to concepts with a domain of ""Condition"" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Condition,,
CONDITION_OCCURRENCE,condition_start_date,Yes,date,Use this date to determine the start date of the condition,"Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE.",No,No,,,,, CONDITION_OCCURRENCE,condition_start_date,Yes,date,Use this date to determine the start date of the condition,"Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE.",No,No,,,,,
CONDITION_OCCURRENCE,condition_start_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,, CONDITION_OCCURRENCE,condition_start_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,,
CONDITION_OCCURRENCE,condition_end_date,No,date,Use this date to determine the end date of the condition,"Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE.",No,No,,,,, CONDITION_OCCURRENCE,condition_end_date,No,date,Use this date to determine the end date of the condition,"Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE.",No,No,,,,,
CONDITION_OCCURRENCE,condition_end_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,, CONDITION_OCCURRENCE,condition_end_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,,
CONDITION_OCCURRENCE,condition_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Condition record, as in whether the condition was from an EHR system, insurance claim, registry, or other sources.",Choose the CONDITION_TYPE_CONCEPT_ID that best represents the provenance of the record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, CONDITION_OCCURRENCE,condition_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Condition record, as in whether the condition was from an EHR system, insurance claim, registry, or other sources.",Choose the CONDITION_TYPE_CONCEPT_ID that best represents the provenance of the record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
CONDITION_OCCURRENCE,condition_status_concept_id,No,integer,"This concept represents the point during the visit the diagnosis was given (admitting diagnosis, final diagnosis), whether the diagnosis was determined due to laboratory findings, if the diagnosis was exclusionary, or if it was a preliminary diagnosis, among others. ","Choose the Concept in the Condition Status domain that best represents the point during the visit when the diagnosis was given. These can include admitting diagnosis, principal diagnosis, and secondary diagnosis. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition+Status&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Condition Status,, CONDITION_OCCURRENCE,condition_status_concept_id,No,integer,"This concept represents the point during the visit the diagnosis was given (admitting diagnosis, final diagnosis), whether the diagnosis was determined due to laboratory findings, if the diagnosis was exclusionary, or if it was a preliminary diagnosis, among others. ","Choose the Concept in the Condition Status domain that best represents the point during the visit when the diagnosis was given. These can include admitting diagnosis, principal diagnosis, and secondary diagnosis. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition+Status&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Condition Status,,
CONDITION_OCCURRENCE,stop_reason,No,varchar(20),The Stop Reason indicates why a Condition is no longer valid with respect to the purpose within the source data. Note that a Stop Reason does not necessarily imply that the condition is no longer occurring.,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.,No,No,,,,, CONDITION_OCCURRENCE,stop_reason,No,varchar(20),The Stop Reason indicates why a Condition is no longer valid with respect to the purpose within the source data. Note that a Stop Reason does not necessarily imply that the condition is no longer occurring.,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.,No,No,,,,,
CONDITION_OCCURRENCE,provider_id,No,integer,"The provider associated with condition record, e.g. the provider who made the diagnosis or the provider who recorded the symptom.","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 admitting vs attending physician on an EHR record.",No,Yes,PROVIDER,PROVIDER_ID,,, CONDITION_OCCURRENCE,provider_id,No,integer,"The provider associated with condition record, e.g. the provider who made the diagnosis or the provider who recorded the symptom.","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 admitting vs attending physician on an EHR record.",No,Yes,PROVIDER,PROVIDER_ID,,,
CONDITION_OCCURRENCE,visit_occurrence_id,No,integer,The visit during which the condition occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a CONDITION_START_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the CONDITION_OCCURRENCE record.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, CONDITION_OCCURRENCE,visit_occurrence_id,No,integer,The visit during which the condition occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a CONDITION_START_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the CONDITION_OCCURRENCE record.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
CONDITION_OCCURRENCE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the condition occurred. For example, if the person was in the ICU at the time of the diagnosis 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, CONDITION_OCCURRENCE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the condition occurred. For example, if the person was in the ICU at the time of the diagnosis 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
CONDITION_OCCURRENCE,condition_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the condition that occurred. For example, this could be an ICD10 or Read code.",This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, CONDITION_OCCURRENCE,condition_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the condition that occurred. For example, this could be an ICD10 or Read code.",This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
CONDITION_OCCURRENCE,condition_source_concept_id,No,integer,"This is the concept representing the condition 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 Condition necessary for a given analytic use case. Consider using CONDITION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the CONDITION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, CONDITION_OCCURRENCE,condition_source_concept_id,No,integer,"This is the concept representing the condition 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 Condition necessary for a given analytic use case. Consider using CONDITION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the CONDITION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
CONDITION_OCCURRENCE,condition_status_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the condition status.,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 diagnosis was given to a patient. This source value is mapped to a standard concept which is stored in the CONDITION_STATUS_CONCEPT_ID field.,No,No,,,,, CONDITION_OCCURRENCE,condition_status_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the condition status.,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 diagnosis was given to a patient. This source value is mapped to a standard concept which is stored in the CONDITION_STATUS_CONCEPT_ID field.,No,No,,,,,
DRUG_EXPOSURE,drug_exposure_id,Yes,integer,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.",Yes,No,,,,, DRUG_EXPOSURE,drug_exposure_id,Yes,integer,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.",Yes,No,,,,,
DRUG_EXPOSURE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the drug dispensing or administration is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, DRUG_EXPOSURE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the drug dispensing or administration is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
DRUG_EXPOSURE,drug_concept_id,Yes,integer,"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](https://athena.ohdsi.org/search-terms/terms?domain=Drug&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Drug,, DRUG_EXPOSURE,drug_concept_id,Yes,integer,"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](https://athena.ohdsi.org/search-terms/terms?domain=Drug&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Drug,,
DRUG_EXPOSURE,drug_exposure_start_date,Yes,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.",No,No,,,,, DRUG_EXPOSURE,drug_exposure_start_date,Yes,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.",No,No,,,,,
DRUG_EXPOSURE,drug_exposure_start_datetime,No,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)",No,No,,,,, DRUG_EXPOSURE,drug_exposure_start_datetime,No,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)",No,No,,,,,
DRUG_EXPOSURE,drug_exposure_end_date,Yes,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:<br><br> 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](https://ohdsi.github.io/CommonDataModel/drug_dose.html)",No,No,,,,, DRUG_EXPOSURE,drug_exposure_end_date,Yes,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:<br><br> 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](https://ohdsi.github.io/CommonDataModel/drug_dose.html)",No,No,,,,,
DRUG_EXPOSURE,drug_exposure_end_datetime,No,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)",No,No,,,,, DRUG_EXPOSURE,drug_exposure_end_datetime,No,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)",No,No,,,,,
DRUG_EXPOSURE,verbatim_end_date,No,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.,No,No,,,,, DRUG_EXPOSURE,verbatim_end_date,No,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.,No,No,,,,,
DRUG_EXPOSURE,drug_type_concept_id,Yes,integer,"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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, DRUG_EXPOSURE,drug_type_concept_id,Yes,integer,"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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
DRUG_EXPOSURE,stop_reason,No,varchar(20),"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.,No,No,,,,, DRUG_EXPOSURE,stop_reason,No,varchar(20),"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.,No,No,,,,,
DRUG_EXPOSURE,refills,No,integer,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.,,No,No,,,,, DRUG_EXPOSURE,refills,No,integer,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.,,No,No,,,,,
DRUG_EXPOSURE,quantity,No,float,,"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. DRUG_EXPOSURE,quantity,No,float,,"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](https://ohdsi.github.io/CommonDataModel/drug_dose.html) for more information. 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](https://ohdsi.github.io/CommonDataModel/drug_dose.html) for more information.
",No,No,,,,, ",No,No,,,,,
DRUG_EXPOSURE,days_supply,No,integer,,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.,No,No,,,,, DRUG_EXPOSURE,days_supply,No,integer,,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.,No,No,,,,,
DRUG_EXPOSURE,sig,No,varchar(MAX),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.",No,No,,,,, DRUG_EXPOSURE,sig,No,varchar(MAX),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.",No,No,,,,,
DRUG_EXPOSURE,route_concept_id,No,integer,,The standard CONCEPT_ID that the ROUTE_SOURCE_VALUE maps to in the route domain.,No,Yes,CONCEPT,CONCEPT_ID,Route,, DRUG_EXPOSURE,route_concept_id,No,integer,,The standard CONCEPT_ID that the ROUTE_SOURCE_VALUE maps to in the route domain.,No,Yes,CONCEPT,CONCEPT_ID,Route,,
DRUG_EXPOSURE,lot_number,No,varchar(50),,,No,No,,,,, DRUG_EXPOSURE,lot_number,No,varchar(50),,,No,No,,,,,
DRUG_EXPOSURE,provider_id,No,integer,"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.",No,Yes,PROVIDER,PROVIDER_ID,,, DRUG_EXPOSURE,provider_id,No,integer,"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.",No,Yes,PROVIDER,PROVIDER_ID,,,
DRUG_EXPOSURE,visit_occurrence_id,No,integer,"The Visit during which the drug was prescribed, administered or dispensed.",To populate this field drug exposures must be explicitly initiated in the visit.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, DRUG_EXPOSURE,visit_occurrence_id,No,integer,"The Visit during which the drug was prescribed, administered or dispensed.",To populate this field drug exposures must be explicitly initiated in the visit.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
DRUG_EXPOSURE,visit_detail_id,No,integer,"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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, DRUG_EXPOSURE,visit_detail_id,No,integer,"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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
DRUG_EXPOSURE,drug_source_value,No,varchar(50),"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.,No,No,,,,, DRUG_EXPOSURE,drug_source_value,No,varchar(50),"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.,No,No,,,,,
DRUG_EXPOSURE,drug_source_concept_id,No,integer,"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.,No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_EXPOSURE,drug_source_concept_id,No,integer,"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.,No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_EXPOSURE,route_source_value,No,varchar(50),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.,No,No,,,,, DRUG_EXPOSURE,route_source_value,No,varchar(50),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.,No,No,,,,,
DRUG_EXPOSURE,dose_unit_source_value,No,varchar(50),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.,No,No,,,,, DRUG_EXPOSURE,dose_unit_source_value,No,varchar(50),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.,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_occurrence_id,Yes,integer,The unique key given to a procedure record for a person. Refer to the ETL for how duplicate procedures during the same visit were handled.,"Each instance of a procedure occurrence in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same procedure within the same visit. It is valid to keep these duplicates and assign them individual, unique, PROCEDURE_OCCURRENCE_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,, PROCEDURE_OCCURRENCE,procedure_occurrence_id,Yes,integer,The unique key given to a procedure record for a person. Refer to the ETL for how duplicate procedures during the same visit were handled.,"Each instance of a procedure occurrence in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same procedure within the same visit. It is valid to keep these duplicates and assign them individual, unique, PROCEDURE_OCCURRENCE_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,,
PROCEDURE_OCCURRENCE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the procedure is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, PROCEDURE_OCCURRENCE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the procedure is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
PROCEDURE_OCCURRENCE,procedure_concept_id,Yes,integer,"The PROCEDURE_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 value which represents a procedure","The CONCEPT_ID that the PROCEDURE_SOURCE_VALUE maps to. Only records whose source values map to standard concepts with a domain of ""Procedure"" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Procedure&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Procedure,, PROCEDURE_OCCURRENCE,procedure_concept_id,Yes,integer,"The PROCEDURE_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 value which represents a procedure","The CONCEPT_ID that the PROCEDURE_SOURCE_VALUE maps to. Only records whose source values map to standard concepts with a domain of ""Procedure"" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Procedure&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Procedure,,
PROCEDURE_OCCURRENCE,procedure_date,Yes,date,Use this date to determine the date the procedure occurred.,"If a procedure lasts more than a day, then it should be recorded as a separate record for each day the procedure occurred, this logic is in lieu of the procedure_end_date, which will be added in a future version of the CDM.",No,No,,,,, PROCEDURE_OCCURRENCE,procedure_date,Yes,date,Use this date to determine the date the procedure occurred.,"If a procedure lasts more than a day, then it should be recorded as a separate record for each day the procedure occurred, this logic is in lieu of the procedure_end_date, which will be added in a future version of the CDM.",No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_datetime,No,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)",No,No,,,,, PROCEDURE_OCCURRENCE,procedure_datetime,No,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)",No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Procedure record, as in whether the procedure was from an EHR system, insurance claim, registry, or other sources.","Choose the PROCEDURE_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. If a procedure is recorded as an EHR encounter, the PROCEDURE_TYPE_CONCEPT would be 'EHR encounter record'. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, PROCEDURE_OCCURRENCE,procedure_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Procedure record, as in whether the procedure was from an EHR system, insurance claim, registry, or other sources.","Choose the PROCEDURE_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. If a procedure is recorded as an EHR encounter, the PROCEDURE_TYPE_CONCEPT would be 'EHR encounter record'. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
PROCEDURE_OCCURRENCE,modifier_concept_id,No,integer,The modifiers are intended to give additional information about the procedure but as of now the vocabulary is under review.,"It is up to the ETL to choose how to map modifiers if they exist in source data. These concepts are typically distinguished by 'Modifier' concept classes (e.g., 'CPT4 Modifier' as part of the 'CPT4' vocabulary). If there is more than one modifier on a record, one should be chosen that pertains to the procedure rather than provider. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?conceptClass=CPT4+Modifier&conceptClass=HCPCS+Modifier&vocabulary=CPT4&vocabulary=HCPCS&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, PROCEDURE_OCCURRENCE,modifier_concept_id,No,integer,The modifiers are intended to give additional information about the procedure but as of now the vocabulary is under review.,"It is up to the ETL to choose how to map modifiers if they exist in source data. These concepts are typically distinguished by 'Modifier' concept classes (e.g., 'CPT4 Modifier' as part of the 'CPT4' vocabulary). If there is more than one modifier on a record, one should be chosen that pertains to the procedure rather than provider. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?conceptClass=CPT4+Modifier&conceptClass=HCPCS+Modifier&vocabulary=CPT4&vocabulary=HCPCS&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
PROCEDURE_OCCURRENCE,quantity,No,integer,"If the quantity value is omitted, a single procedure is assumed.","If a Procedure has a quantity of '0' in the source, this should default to '1' in the ETL. If there is a record in the source it can be assumed the exposure occurred at least once",No,No,,,,, PROCEDURE_OCCURRENCE,quantity,No,integer,"If the quantity value is omitted, a single procedure is assumed.","If a Procedure has a quantity of '0' in the source, this should default to '1' in the ETL. If there is a record in the source it can be assumed the exposure occurred at least once",No,No,,,,,
PROCEDURE_OCCURRENCE,provider_id,No,integer,"The provider associated with the procedure record, e.g. the provider who performed the Procedure.","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 admitting vs attending physician on an EHR record.",No,No,PROVIDER,PROVIDER_ID,,, PROCEDURE_OCCURRENCE,provider_id,No,integer,"The provider associated with the procedure record, e.g. the provider who performed the Procedure.","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 admitting vs attending physician on an EHR record.",No,No,PROVIDER,PROVIDER_ID,,,
PROCEDURE_OCCURRENCE,visit_occurrence_id,No,integer,The visit during which the procedure occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a PROCEDURE_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the PROCEDURE_OCCURRENCE record.",No,No,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, PROCEDURE_OCCURRENCE,visit_occurrence_id,No,integer,The visit during which the procedure occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a PROCEDURE_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the PROCEDURE_OCCURRENCE record.",No,No,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
PROCEDURE_OCCURRENCE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure 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.,No,No,VISIT_DETAIL,VISIT_DETAIL_ID,,, PROCEDURE_OCCURRENCE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure 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.,No,No,VISIT_DETAIL,VISIT_DETAIL_ID,,,
PROCEDURE_OCCURRENCE,procedure_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code.",Use this value to look up the source concept id and then map the source concept id to a standard concept id.,No,No,,,,, PROCEDURE_OCCURRENCE,procedure_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code.",Use this value to look up the source concept id and then map the source concept id to a standard concept id.,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_source_concept_id,No,integer,"This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,No,CONCEPT,CONCEPT_ID,,, PROCEDURE_OCCURRENCE,procedure_source_concept_id,No,integer,"This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,No,CONCEPT,CONCEPT_ID,,,
PROCEDURE_OCCURRENCE,modifier_source_value,No,varchar(50),,The original modifier code from the source is stored here for reference.,No,No,,,,, PROCEDURE_OCCURRENCE,modifier_source_value,No,varchar(50),,The original modifier code from the source is stored here for reference.,No,No,,,,,
DEVICE_EXPOSURE,device_exposure_id,Yes,integer,The unique key given to records a person's exposure to a foreign physical object or instrument.,Each instance of an exposure to a foreign object or device present in the source data should be assigned this unique key. ,Yes,No,,,,, DEVICE_EXPOSURE,device_exposure_id,Yes,integer,The unique key given to records a person's exposure to a foreign physical object or instrument.,Each instance of an exposure to a foreign object or device present in the source data should be assigned this unique key. ,Yes,No,,,,,
DEVICE_EXPOSURE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, DEVICE_EXPOSURE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
DEVICE_EXPOSURE,device_concept_id,Yes,integer,"The DEVICE_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 foreign object or instrument the person was exposed to. ",The CONCEPT_ID that the DEVICE_SOURCE_VALUE maps to. ,No,Yes,CONCEPT,CONCEPT_ID,Device,, DEVICE_EXPOSURE,device_concept_id,Yes,integer,"The DEVICE_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 foreign object or instrument the person was exposed to. ",The CONCEPT_ID that the DEVICE_SOURCE_VALUE maps to. ,No,Yes,CONCEPT,CONCEPT_ID,Device,,
DEVICE_EXPOSURE,device_exposure_start_date,Yes,date,Use this date to determine the start date of the device record.,"Valid entries include a start date of a procedure to implant a device, the date of a prescription for a device, or the date of device administration. ",No,No,,,,, DEVICE_EXPOSURE,device_exposure_start_date,Yes,date,Use this date to determine the start date of the device record.,"Valid entries include a start date of a procedure to implant a device, the date of a prescription for a device, or the date of device administration. ",No,No,,,,,
DEVICE_EXPOSURE,device_exposure_start_datetime,No,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)",No,No,,,,, DEVICE_EXPOSURE,device_exposure_start_datetime,No,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)",No,No,,,,,
DEVICE_EXPOSURE,device_exposure_end_date,No,date,"The DEVICE_EXPOSURE_END_DATE denotes the day the device exposure ended for the patient, if given.",Put the end date or discontinuation date as it appears from the source data or leave blank if unavailable.,No,No,,,,, DEVICE_EXPOSURE,device_exposure_end_date,No,date,"The DEVICE_EXPOSURE_END_DATE denotes the day the device exposure ended for the patient, if given.",Put the end date or discontinuation date as it appears from the source data or leave blank if unavailable.,No,No,,,,,
DEVICE_EXPOSURE,device_exposure_end_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,, DEVICE_EXPOSURE,device_exposure_end_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,,
DEVICE_EXPOSURE,device_type_concept_id,Yes,integer,"You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. ","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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, DEVICE_EXPOSURE,device_type_concept_id,Yes,integer,"You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. ","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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
DEVICE_EXPOSURE,unique_device_id,No,varchar(50),"This is the Unique Device Identification number for devices regulated by the FDA, if given.","For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field.",No,No,,,,, DEVICE_EXPOSURE,unique_device_id,No,varchar(50),"This is the Unique Device Identification number for devices regulated by the FDA, if given.","For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field.",No,No,,,,,
DEVICE_EXPOSURE,quantity,No,integer,,,No,No,,,,, DEVICE_EXPOSURE,quantity,No,integer,,,No,No,,,,,
DEVICE_EXPOSURE,provider_id,No,integer,"The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device.",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.,No,Yes,PROVIDER,PROVIDER_ID,,, DEVICE_EXPOSURE,provider_id,No,integer,"The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device.",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.,No,Yes,PROVIDER,PROVIDER_ID,,,
DEVICE_EXPOSURE,visit_occurrence_id,No,integer,The Visit during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, DEVICE_EXPOSURE,visit_occurrence_id,No,integer,The Visit during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
DEVICE_EXPOSURE,visit_detail_id,No,integer,The Visit Detail during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit detail record.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, DEVICE_EXPOSURE,visit_detail_id,No,integer,The Visit Detail during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit detail record.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
DEVICE_EXPOSURE,device_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the device exposure that occurred. For example, this could be an NDC or Gemscript code.",This code is mapped to a Standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, DEVICE_EXPOSURE,device_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the device exposure that occurred. For example, this could be an NDC or Gemscript code.",This code is mapped to a Standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
DEVICE_EXPOSURE,device_source_concept_id,No,integer,"This is the concept representing the device 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 Device necessary for a given analytic use case. Consider using DEVICE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the DEVICE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, DEVICE_EXPOSURE,device_source_concept_id,No,integer,"This is the concept representing the device 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 Device necessary for a given analytic use case. Consider using DEVICE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the DEVICE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
MEASUREMENT,measurement_id,Yes,integer,The unique key given to a Measurement record for a Person. Refer to the ETL for how duplicate Measurements during the same Visit were handled.,"Each instance of a measurement present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same measurement within the same visit. It is valid to keep these duplicates and assign them individual, unique, MEASUREMENT_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,, MEASUREMENT,measurement_id,Yes,integer,The unique key given to a Measurement record for a Person. Refer to the ETL for how duplicate Measurements during the same Visit were handled.,"Each instance of a measurement present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same measurement within the same visit. It is valid to keep these duplicates and assign them individual, unique, MEASUREMENT_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,,
MEASUREMENT,person_id,Yes,integer,The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, MEASUREMENT,person_id,Yes,integer,The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
MEASUREMENT,measurement_concept_id,Yes,integer,"The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.","The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of ""Measurement"" should go in this table.",No,Yes,CONCEPT,CONCEPT_ID,Measurement,, MEASUREMENT,measurement_concept_id,Yes,integer,"The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.","The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of ""Measurement"" should go in this table.",No,Yes,CONCEPT,CONCEPT_ID,Measurement,,
MEASUREMENT,measurement_date,Yes,date,Use this date to determine the date of the measurement.,"If there are multiple dates in the source data associated with a record such as order_date, draw_date, and result_date, choose the one that is closest to the date the sample was drawn from the patient.",No,No,,,,, MEASUREMENT,measurement_date,Yes,date,Use this date to determine the date of the measurement.,"If there are multiple dates in the source data associated with a record such as order_date, draw_date, and result_date, choose the one that is closest to the date the sample was drawn from the patient.",No,No,,,,,
MEASUREMENT,measurement_datetime,No,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)",No,No,,,,, MEASUREMENT,measurement_datetime,No,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)",No,No,,,,,
MEASUREMENT,measurement_time,No,varchar(10),,This is present for backwards compatibility and will be deprecated in an upcoming version.,No,No,,,,, MEASUREMENT,measurement_time,No,varchar(10),,This is present for backwards compatibility and will be deprecated in an upcoming version.,No,No,,,,,
MEASUREMENT,measurement_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Measurement record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources.","Choose the MEASUREMENT_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, MEASUREMENT,measurement_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Measurement record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources.","Choose the MEASUREMENT_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
MEASUREMENT,operator_concept_id,No,integer,"The meaning of Concept [4172703](https://athena.ohdsi.org/search-terms/terms/4172703) for '=' is identical to omission of a OPERATOR_CONCEPT_ID value. Since the use of this field is rare, it's important when devising analyses to not to forget testing for the content of this field for values different from =.","Operators are <, <=, =, >=, > and these concepts belong to the 'Meas Value Operator' domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Meas+Value+Operator&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, MEASUREMENT,operator_concept_id,No,integer,"The meaning of Concept [4172703](https://athena.ohdsi.org/search-terms/terms/4172703) for '=' is identical to omission of a OPERATOR_CONCEPT_ID value. Since the use of this field is rare, it's important when devising analyses to not to forget testing for the content of this field for values different from =.","Operators are <, <=, =, >=, > and these concepts belong to the 'Meas Value Operator' domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Meas+Value+Operator&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
MEASUREMENT,value_as_number,No,float,"This is the numerical value of the Result of the Measurement, if available. Note that measurements such as blood pressures will be split into their component parts i.e. one record for systolic, one record for diastolic.","If there is a negative value coming from the source, set the VALUE_AS_NUMBER to NULL, with the exception of the following Measurements (listed as LOINC codes):<br>- [1925-7](https://athena.ohdsi.org/search-terms/terms/3003396) Base excess in Arterial blood by calculation - [1927-3](https://athena.ohdsi.org/search-terms/terms/3002032) Base excess in Venous blood by calculation - [8632-2](https://athena.ohdsi.org/search-terms/terms/3006277) QRS-Axis - [11555-0](https://athena.ohdsi.org/search-terms/terms/3012501) Base excess in Blood by calculation - [1926-5](https://athena.ohdsi.org/search-terms/terms/3003129) Base excess in Capillary blood by calculation - [28638-5](https://athena.ohdsi.org/search-terms/terms/3004959) Base excess in Arterial cord blood by calculation [28639-3](https://athena.ohdsi.org/search-terms/terms/3007435) Base excess in Venous cord blood by calculation",No,No,,,,, MEASUREMENT,value_as_number,No,float,"This is the numerical value of the Result of the Measurement, if available. Note that measurements such as blood pressures will be split into their component parts i.e. one record for systolic, one record for diastolic.","If there is a negative value coming from the source, set the VALUE_AS_NUMBER to NULL, with the exception of the following Measurements (listed as LOINC codes):<br>- [1925-7](https://athena.ohdsi.org/search-terms/terms/3003396) Base excess in Arterial blood by calculation - [1927-3](https://athena.ohdsi.org/search-terms/terms/3002032) Base excess in Venous blood by calculation - [8632-2](https://athena.ohdsi.org/search-terms/terms/3006277) QRS-Axis - [11555-0](https://athena.ohdsi.org/search-terms/terms/3012501) Base excess in Blood by calculation - [1926-5](https://athena.ohdsi.org/search-terms/terms/3003129) Base excess in Capillary blood by calculation - [28638-5](https://athena.ohdsi.org/search-terms/terms/3004959) Base excess in Arterial cord blood by calculation [28639-3](https://athena.ohdsi.org/search-terms/terms/3007435) Base excess in Venous cord blood by calculation",No,No,,,,,
MEASUREMENT,value_as_concept_id,No,integer,If the raw data gives a categorial result for measurements those values are captured and mapped to standard concepts in the 'Meas Value' domain.,"If the raw data provides categorial results as well as continuous results for measurements, it is a valid ETL choice to preserve both values. The continuous value should go in the VALUE_AS_NUMBER field and the categorical value should be mapped to a standard concept in the 'Meas Value' domain and put in the VALUE_AS_CONCEPT_ID field. This is also the destination for the 'Maps to value' relationship.",No,Yes,CONCEPT,CONCEPT_ID,,, MEASUREMENT,value_as_concept_id,No,integer,If the raw data gives a categorial result for measurements those values are captured and mapped to standard concepts in the 'Meas Value' domain.,"If the raw data provides categorial results as well as continuous results for measurements, it is a valid ETL choice to preserve both values. The continuous value should go in the VALUE_AS_NUMBER field and the categorical value should be mapped to a standard concept in the 'Meas Value' domain and put in the VALUE_AS_CONCEPT_ID field. This is also the destination for the 'Maps to value' relationship.",No,Yes,CONCEPT,CONCEPT_ID,,,
MEASUREMENT,unit_concept_id,No,integer,"There is currently no recommended unit for individual measurements, i.e. it is not mandatory to represent Hemoglobin a1C measurements as a percentage. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data.","There is no standardization requirement for units associated with MEASUREMENT_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit.",No,Yes,CONCEPT,CONCEPT_ID,Unit,, MEASUREMENT,unit_concept_id,No,integer,"There is currently no recommended unit for individual measurements, i.e. it is not mandatory to represent Hemoglobin a1C measurements as a percentage. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data.","There is no standardization requirement for units associated with MEASUREMENT_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit.",No,Yes,CONCEPT,CONCEPT_ID,Unit,,
MEASUREMENT,range_low,No,float,Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given.,If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided.,No,No,,,,, MEASUREMENT,range_low,No,float,Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given.,If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided.,No,No,,,,,
MEASUREMENT,range_high,No,float,Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given.,If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided.,No,No,,,,, MEASUREMENT,range_high,No,float,Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given.,If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided.,No,No,,,,,
MEASUREMENT,provider_id,No,integer,"The provider associated with measurement record, e.g. the provider who ordered the test or the provider who recorded the result.",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 admitting vs attending physician on an EHR record.,No,Yes,PROVIDER,PROVIDER_ID,,, MEASUREMENT,provider_id,No,integer,"The provider associated with measurement record, e.g. the provider who ordered the test or the provider who recorded the result.",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 admitting vs attending physician on an EHR record.,No,Yes,PROVIDER,PROVIDER_ID,,,
MEASUREMENT,visit_occurrence_id,No,integer,The visit during which the Measurement occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a MEASUREMENT_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the measurement record. If a measurement is related to a visit explicitly in the source data, it is possible that the result date of the Measurement falls outside of the bounds of the Visit dates.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, MEASUREMENT,visit_occurrence_id,No,integer,The visit during which the Measurement occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a MEASUREMENT_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the measurement record. If a measurement is related to a visit explicitly in the source data, it is possible that the result date of the Measurement falls outside of the bounds of the Visit dates.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
MEASUREMENT,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Measurement occurred. For example, if the Person was in the ICU at the time 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, MEASUREMENT,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Measurement occurred. For example, if the Person was in the ICU at the time 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
MEASUREMENT,measurement_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the Measurement that occurred. For example, this could be an ICD10 or Read code.",This code is mapped to a Standard Measurement Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, MEASUREMENT,measurement_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the Measurement that occurred. For example, this could be an ICD10 or Read code.",This code is mapped to a Standard Measurement Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
MEASUREMENT,measurement_source_concept_id,No,integer,"This is the concept representing the MEASUREMENT_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 Measurement necessary for a given analytic use case. Consider using MEASUREMENT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the MEASUREMENT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, MEASUREMENT,measurement_source_concept_id,No,integer,"This is the concept representing the MEASUREMENT_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 Measurement necessary for a given analytic use case. Consider using MEASUREMENT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the MEASUREMENT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
MEASUREMENT,unit_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the unit of the Measurement that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, MEASUREMENT,unit_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the unit of the Measurement that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
MEASUREMENT,value_source_value,No,varchar(50),This field houses the verbatim result value of the Measurement from the source data . ,"If both a continuous and categorical result are given in the source data such that both VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are both included, store the verbatim value that was mapped to VALUE_AS_CONCEPT_ID here.",No,No,,,,, MEASUREMENT,value_source_value,No,varchar(50),This field houses the verbatim result value of the Measurement from the source data . ,"If both a continuous and categorical result are given in the source data such that both VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are both included, store the verbatim value that was mapped to VALUE_AS_CONCEPT_ID here.",No,No,,,,,
OBSERVATION,observation_id,Yes,integer,The unique key given to an Observation record for a Person. Refer to the ETL for how duplicate Observations during the same Visit were handled.,Each instance of an observation present in the source data should be assigned this unique key. ,Yes,No,,,,, OBSERVATION,observation_id,Yes,integer,The unique key given to an Observation record for a Person. Refer to the ETL for how duplicate Observations during the same Visit were handled.,Each instance of an observation present in the source data should be assigned this unique key. ,Yes,No,,,,,
OBSERVATION,person_id,Yes,integer,The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, OBSERVATION,person_id,Yes,integer,The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
OBSERVATION,observation_concept_id,Yes,integer,"The OBSERVATION_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.","The CONCEPT_ID that the OBSERVATION_SOURCE_CONCEPT_ID maps to. There is no specified domain that the Concepts in this table must adhere to. The only rule is that records with Concepts in the Condition, Procedure, Drug, Measurement, or Device domains MUST go to the corresponding table. ",No,Yes,CONCEPT,CONCEPT_ID,,, OBSERVATION,observation_concept_id,Yes,integer,"The OBSERVATION_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.","The CONCEPT_ID that the OBSERVATION_SOURCE_CONCEPT_ID maps to. There is no specified domain that the Concepts in this table must adhere to. The only rule is that records with Concepts in the Condition, Procedure, Drug, Measurement, or Device domains MUST go to the corresponding table. ",No,Yes,CONCEPT,CONCEPT_ID,,,
OBSERVATION,observation_date,Yes,date,"The date of the Observation. Depending on what the Observation represents this could be the date of a lab test, the date of a survey, or the date a patient's family history was taken. ",For some observations the ETL may need to make a choice as to which date to choose.,No,No,,,,, OBSERVATION,observation_date,Yes,date,"The date of the Observation. Depending on what the Observation represents this could be the date of a lab test, the date of a survey, or the date a patient's family history was taken. ",For some observations the ETL may need to make a choice as to which date to choose.,No,No,,,,,
OBSERVATION,observation_datetime,No,datetime,,If no time is given set to midnight (00:00:00).,No,No,,,,, OBSERVATION,observation_datetime,No,datetime,,If no time is given set to midnight (00:00:00).,No,No,,,,,
OBSERVATION,observation_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Observation record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources.","Choose the OBSERVATION_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, OBSERVATION,observation_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Observation record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources.","Choose the OBSERVATION_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
OBSERVATION,value_as_number,No,float,"This is the numerical value of the Result of the Observation, if applicable and available. It is not expected that all Observations will have numeric results, rather, this field is here to house values should they exist. ",,No,No,,,,, OBSERVATION,value_as_number,No,float,"This is the numerical value of the Result of the Observation, if applicable and available. It is not expected that all Observations will have numeric results, rather, this field is here to house values should they exist. ",,No,No,,,,,
OBSERVATION,value_as_string,No,varchar(60),"This is the categorical value of the Result of the Observation, if applicable and available. ",,No,No,,,,, OBSERVATION,value_as_string,No,varchar(60),"This is the categorical value of the Result of the Observation, if applicable and available. ",,No,No,,,,,
OBSERVATION,value_as_concept_id,No,Integer,"It is possible that some records destined for the Observation table have two clinical ideas represented in one source code. This is common with ICD10 codes that describe a family history of some Condition, for example. In OMOP the Vocabulary breaks these two clinical ideas into two codes; one becomes the OBSERVATION_CONCEPT_ID and the other becomes the VALUE_AS_CONCEPT_ID. It is important when using the Observation table to keep this possibility in mind and to examine the VALUE_AS_CONCEPT_ID field for relevant information. ","Note that the value of VALUE_AS_CONCEPT_ID may be provided through mapping from a source Concept which contains the content of the Observation. In those situations, the CONCEPT_RELATIONSHIP table in addition to the 'Maps to' record contains a second record with the relationship_id set to 'Maps to value'. For example, ICD10 [Z82.4](https://athena.ohdsi.org/search-terms/terms/45581076) 'Family history of ischaemic heart disease and other diseases of the circulatory system' has a 'Maps to' relationship to [4167217](https://athena.ohdsi.org/search-terms/terms/4167217) 'Family history of clinical finding' as well as a 'Maps to value' record to [134057](https://athena.ohdsi.org/search-terms/terms/134057) 'Disorder of cardiovascular system'.",No,Yes,CONCEPT,CONCEPT_ID,,, OBSERVATION,value_as_concept_id,No,Integer,"It is possible that some records destined for the Observation table have two clinical ideas represented in one source code. This is common with ICD10 codes that describe a family history of some Condition, for example. In OMOP the Vocabulary breaks these two clinical ideas into two codes; one becomes the OBSERVATION_CONCEPT_ID and the other becomes the VALUE_AS_CONCEPT_ID. It is important when using the Observation table to keep this possibility in mind and to examine the VALUE_AS_CONCEPT_ID field for relevant information. ","Note that the value of VALUE_AS_CONCEPT_ID may be provided through mapping from a source Concept which contains the content of the Observation. In those situations, the CONCEPT_RELATIONSHIP table in addition to the 'Maps to' record contains a second record with the relationship_id set to 'Maps to value'. For example, ICD10 [Z82.4](https://athena.ohdsi.org/search-terms/terms/45581076) 'Family history of ischaemic heart disease and other diseases of the circulatory system' has a 'Maps to' relationship to [4167217](https://athena.ohdsi.org/search-terms/terms/4167217) 'Family history of clinical finding' as well as a 'Maps to value' record to [134057](https://athena.ohdsi.org/search-terms/terms/134057) 'Disorder of cardiovascular system'.",No,Yes,CONCEPT,CONCEPT_ID,,,
OBSERVATION,qualifier_concept_id,No,integer,"This field contains all attributes specifying the clinical fact further, such as as degrees, severities, drug-drug interaction alerts etc.","Use your best judgement as to what Concepts to use here and if they are necessary to accurately represent the clinical record. There is no restriction on the domain of these Concepts, they just need to be Standard.",No,Yes,CONCEPT,CONCEPT_ID,,, OBSERVATION,qualifier_concept_id,No,integer,"This field contains all attributes specifying the clinical fact further, such as as degrees, severities, drug-drug interaction alerts etc.","Use your best judgement as to what Concepts to use here and if they are necessary to accurately represent the clinical record. There is no restriction on the domain of these Concepts, they just need to be Standard.",No,Yes,CONCEPT,CONCEPT_ID,,,
OBSERVATION,unit_concept_id,No,integer,There is currently no recommended unit for individual observation concepts. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data.,"There is no standardization requirement for units associated with OBSERVATION_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit.",No,Yes,CONCEPT,CONCEPT_ID,Unit,, OBSERVATION,unit_concept_id,No,integer,There is currently no recommended unit for individual observation concepts. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data.,"There is no standardization requirement for units associated with OBSERVATION_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit.",No,Yes,CONCEPT,CONCEPT_ID,Unit,,
OBSERVATION,provider_id,No,integer,"The provider associated with the observation record, e.g. the provider who ordered the test or the provider who recorded the result.",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 admitting vs attending physician on an EHR record.,No,Yes,PROVIDER,PROVIDER_ID,,, OBSERVATION,provider_id,No,integer,"The provider associated with the observation record, e.g. the provider who ordered the test or the provider who recorded the result.",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 admitting vs attending physician on an EHR record.,No,Yes,PROVIDER,PROVIDER_ID,,,
OBSERVATION,visit_occurrence_id,No,integer,The visit during which the Observation occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If an OBSERVATION_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the observation record. If an observation is related to a visit explicitly in the source data, it is possible that the result date of the Observation falls outside of the bounds of the Visit dates.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, OBSERVATION,visit_occurrence_id,No,integer,The visit during which the Observation occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If an OBSERVATION_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the observation record. If an observation is related to a visit explicitly in the source data, it is possible that the result date of the Observation falls outside of the bounds of the Visit dates.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
OBSERVATION,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Observation occurred. For example, if the Person was in the ICU at the time 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, OBSERVATION,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Observation occurred. For example, if the Person was in the ICU at the time 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
OBSERVATION,observation_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the Observation that occurred. For example, this could be an ICD10 or Read code.",This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, OBSERVATION,observation_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the Observation that occurred. For example, this could be an ICD10 or Read code.",This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
OBSERVATION,observation_source_concept_id,No,integer,"This is the concept representing the OBSERVATION_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 Observation necessary for a given analytic use case. Consider using OBSERVATION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the OBSERVATION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, OBSERVATION,observation_source_concept_id,No,integer,"This is the concept representing the OBSERVATION_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 Observation necessary for a given analytic use case. Consider using OBSERVATION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the OBSERVATION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
OBSERVATION,unit_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the unit of the Observation that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, OBSERVATION,unit_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the unit of the Observation that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
OBSERVATION,qualifier_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the qualifier of the Observation that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, OBSERVATION,qualifier_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the qualifier of the Observation that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
DEATH,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, DEATH,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
DEATH,death_date,Yes,date,The date the person was deceased.,"If the precise date include day or month is not known or not allowed, December is used as the default month, and the last day of the month the default day.",No,No,,,,, DEATH,death_date,Yes,date,The date the person was deceased.,"If the precise date include day or month is not known or not allowed, December is used as the default month, and the last day of the month the default day.",No,No,,,,,
DEATH,death_datetime,No,datetime,,If not available set time to midnight (00:00:00),No,No,,,,, DEATH,death_datetime,No,datetime,,If not available set time to midnight (00:00:00),No,No,,,,,
DEATH,death_type_concept_id,No,integer,"This is the provenance of the death record, i.e., where it came from. It is possible that an administrative claims database would source death information from a government file so do not assume the Death Type is the same as the Visit Type, etc.",Use the type concept that be reflects the source of the death record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, DEATH,death_type_concept_id,No,integer,"This is the provenance of the death record, i.e., where it came from. It is possible that an administrative claims database would source death information from a government file so do not assume the Death Type is the same as the Visit Type, etc.",Use the type concept that be reflects the source of the death record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
DEATH,cause_concept_id,No,integer,"This is the Standard Concept representing the Person's cause of death, if available.","There is no specified domain for this concept, just choose the Standard Concept Id that best represents the person's cause of death.",No,Yes,CONCEPT,CONCEPT_ID,,, DEATH,cause_concept_id,No,integer,"This is the Standard Concept representing the Person's cause of death, if available.","There is no specified domain for this concept, just choose the Standard Concept Id that best represents the person's cause of death.",No,Yes,CONCEPT,CONCEPT_ID,,,
DEATH,cause_source_value,No,varchar(50),,"If available, put the source code representing the cause of death here. ",No,No,,,,, DEATH,cause_source_value,No,varchar(50),,"If available, put the source code representing the cause of death here. ",No,No,,,,,
DEATH,cause_source_concept_id,No,integer,,If the cause of death was coded using a Vocabulary present in the OMOP Vocabularies put the CONCEPT_ID representing the cause of death here.,No,Yes,CONCEPT,CONCEPT_ID,,, DEATH,cause_source_concept_id,No,integer,,If the cause of death was coded using a Vocabulary present in the OMOP Vocabularies put the CONCEPT_ID representing the cause of death here.,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE,note_id,Yes,integer,A unique identifier for each note.,,Yes,No,,,,, NOTE,note_id,Yes,integer,A unique identifier for each note.,,Yes,No,,,,,
NOTE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, NOTE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
NOTE,note_date,Yes,date,The date the note was recorded.,,No,No,,,,, NOTE,note_date,Yes,date,The date the note was recorded.,,No,No,,,,,
NOTE,note_datetime,No,datetime,,If time is not given set the time to midnight.,No,No,,,,, NOTE,note_datetime,No,datetime,,If time is not given set the time to midnight.,No,No,,,,,
NOTE,note_type_concept_id,Yes,integer,The provenance of the note. Most likely this will be EHR. ,"Put the source system of the note, as in EHR record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, NOTE,note_type_concept_id,Yes,integer,The provenance of the note. Most likely this will be EHR. ,"Put the source system of the note, as in EHR record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
NOTE,note_class_concept_id,Yes,integer,"A Standard Concept Id representing the HL7 LOINC NOTE,note_class_concept_id,Yes,integer,"A Standard Concept Id representing the HL7 LOINC
Document Type Vocabulary classification of the note.",Map the note classification to a Standard Concept. For more information see the ETL Conventions in the description of the NOTE table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&conceptClass=Doc+Kind&conceptClass=Doc+Role&conceptClass=Doc+Setting&conceptClass=Doc+Subject+Matter&conceptClass=Doc+Type+of+Service&domain=Meas+Value&page=1&pageSize=15&query=). This Concept can alternatively be represented by concepts with the relationship 'Kind of (LOINC)' to [706391](https://athena.ohdsi.org/search-terms/terms/706391) (Note).,No,Yes,CONCEPT,CONCEPT_ID,,, Document Type Vocabulary classification of the note.",Map the note classification to a Standard Concept. For more information see the ETL Conventions in the description of the NOTE table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&conceptClass=Doc+Kind&conceptClass=Doc+Role&conceptClass=Doc+Setting&conceptClass=Doc+Subject+Matter&conceptClass=Doc+Type+of+Service&domain=Meas+Value&page=1&pageSize=15&query=). This Concept can alternatively be represented by concepts with the relationship 'Kind of (LOINC)' to [706391](https://athena.ohdsi.org/search-terms/terms/706391) (Note).,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE,note_title,No,varchar(250),The title of the note.,,No,No,,,,, NOTE,note_title,No,varchar(250),The title of the note.,,No,No,,,,,
NOTE,note_text,Yes,varchar(MAX),The content of the note.,,No,No,,,,, NOTE,note_text,Yes,varchar(MAX),The content of the note.,,No,No,,,,,
NOTE,encoding_concept_id,Yes,integer,This is the Concept representing the character encoding type. ,"Put the Concept Id that represents the encoding character type here. Currently the only option is UTF-8 ([32678](https://athena.ohdsi.org/search-terms/terms/32678)). It the note is encoded in any other type, like ASCII then put 0. ",No,Yes,CONCEPT,CONCEPT_ID,,, NOTE,encoding_concept_id,Yes,integer,This is the Concept representing the character encoding type. ,"Put the Concept Id that represents the encoding character type here. Currently the only option is UTF-8 ([32678](https://athena.ohdsi.org/search-terms/terms/32678)). It the note is encoded in any other type, like ASCII then put 0. ",No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE,language_concept_id,Yes,integer,The language of the note. ,Use Concepts that are descendants of the concept [4182347](https://athena.ohdsi.org/search-terms/terms/4182347) (World Languages).,No,Yes,CONCEPT,CONCEPT_ID,,, NOTE,language_concept_id,Yes,integer,The language of the note. ,Use Concepts that are descendants of the concept [4182347](https://athena.ohdsi.org/search-terms/terms/4182347) (World Languages).,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE,provider_id,No,integer,The Provider who wrote the note.,The ETL may need to make a determination on which provider to put here.,No,Yes,PROVIDER,PROVIDER_ID,,, NOTE,provider_id,No,integer,The Provider who wrote the note.,The ETL may need to make a determination on which provider to put here.,No,Yes,PROVIDER,PROVIDER_ID,,,
NOTE,visit_occurrence_id,No,integer,The Visit during which the note was written. ,,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, NOTE,visit_occurrence_id,No,integer,The Visit during which the note was written. ,,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
NOTE,visit_detail_id,No,integer,The Visit Detail during which the note was written.,,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, NOTE,visit_detail_id,No,integer,The Visit Detail during which the note was written.,,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
NOTE,note_source_value,No,varchar(50),,The source value mapped to the NOTE_CLASS_CONCEPT_ID.,No,No,,,,, NOTE,note_source_value,No,varchar(50),,The source value mapped to the NOTE_CLASS_CONCEPT_ID.,No,No,,,,,
NOTE_NLP,note_nlp_id,Yes,integer,A unique identifier for the NLP record.,,Yes,No,,,,, NOTE_NLP,note_nlp_id,Yes,integer,A unique identifier for the NLP record.,,Yes,No,,,,,
NOTE_NLP,note_id,Yes,integer,This is the NOTE_ID for the NOTE record the NLP record is associated to.,,No,No,,,,, NOTE_NLP,note_id,Yes,integer,This is the NOTE_ID for the NOTE record the NLP record is associated to.,,No,No,,,,,
NOTE_NLP,section_concept_id,No,integer,,"The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957).",No,Yes,CONCEPT,CONCEPT_ID,,, NOTE_NLP,section_concept_id,No,integer,,"The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957).",No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE_NLP,snippet,No,varchar(250),A small window of text surrounding the term,,No,No,,,,, NOTE_NLP,snippet,No,varchar(250),A small window of text surrounding the term,,No,No,,,,,
NOTE_NLP,offset,No,varchar(50),Character offset of the extracted term in the input note,,No,No,,,,, NOTE_NLP,offset,No,varchar(50),Character offset of the extracted term in the input note,,No,No,,,,,
NOTE_NLP,lexical_variant,Yes,varchar(250),Raw text extracted from the NLP tool.,,No,No,,,,, NOTE_NLP,lexical_variant,Yes,varchar(250),Raw text extracted from the NLP tool.,,No,No,,,,,
NOTE_NLP,note_nlp_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, NOTE_NLP,note_nlp_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE_NLP,note_nlp_source_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, NOTE_NLP,note_nlp_source_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE_NLP,nlp_system,No,varchar(250),,Name and version of the NLP system that extracted the term. Useful for data provenance.,No,No,,,,, NOTE_NLP,nlp_system,No,varchar(250),,Name and version of the NLP system that extracted the term. Useful for data provenance.,No,No,,,,,
NOTE_NLP,nlp_date,Yes,date,The date of the note processing.,,No,No,,,,, NOTE_NLP,nlp_date,Yes,date,The date of the note processing.,,No,No,,,,,
NOTE_NLP,nlp_datetime,No,datetime,The date and time of the note processing.,,No,No,,,,, NOTE_NLP,nlp_datetime,No,datetime,The date and time of the note processing.,,No,No,,,,,
NOTE_NLP,term_exists,No,varchar(1),,"Term_exists is defined as a flag that indicates if the patient actually has or had the condition. Any of the following modifiers would make Term_exists false: NOTE_NLP,term_exists,No,varchar(1),,"Term_exists is defined as a flag that indicates if the patient actually has or had the condition. Any of the following modifiers would make Term_exists false:
Negation = true Negation = true
Subject = [anything other than the patient] Subject = [anything other than the patient]
@ -218,300 +218,299 @@ Conditional = true/li>
Rule_out = true Rule_out = true
Uncertain = very low certainty or any lower certainties Uncertain = very low certainty or any lower certainties
A complete lack of modifiers would make Term_exists true. A complete lack of modifiers would make Term_exists true.
",No,No,,,,, ",No,No,,,,,
NOTE_NLP,term_temporal,No,varchar(50),,"Term_temporal is to indicate if a condition is present or just in the past. The following would be past:<br><br> NOTE_NLP,term_temporal,No,varchar(50),,"Term_temporal is to indicate if a condition is present or just in the past. The following would be past:<br><br>
- History = true - History = true
- Concept_date = anything before the time of the report",No,No,,,,, - Concept_date = anything before the time of the report",No,No,,,,,
NOTE_NLP,term_modifiers,No,varchar(2000),,"For the modifiers that are there, they would have to have these values:<br><br> NOTE_NLP,term_modifiers,No,varchar(2000),,"For the modifiers that are there, they would have to have these values:<br><br>
- Negation = false - Negation = false
- Subject = patient - Subject = patient
- Conditional = false - Conditional = false
- Rule_out = false - Rule_out = false
- Uncertain = true or high or moderate or even low (could argue about low). Term_modifiers will concatenate all modifiers for different types of entities (conditions, drugs, labs etc) into one string. Lab values will be saved as one of the modifiers. ",No,No,,,,, - Uncertain = true or high or moderate or even low (could argue about low). Term_modifiers will concatenate all modifiers for different types of entities (conditions, drugs, labs etc) into one string. Lab values will be saved as one of the modifiers. ",No,No,,,,,
SPECIMEN,specimen_id,Yes,integer,Unique identifier for each specimen.,,Yes,No,,,,, SPECIMEN,specimen_id,Yes,integer,Unique identifier for each specimen.,,Yes,No,,,,,
SPECIMEN,person_id,Yes,integer,The person from whom the specimen is collected.,,No,Yes,PERSON,PERSON_ID,,, SPECIMEN,person_id,Yes,integer,The person from whom the specimen is collected.,,No,Yes,PERSON,PERSON_ID,,,
SPECIMEN,specimen_concept_id,Yes,integer,,The standard CONCEPT_ID that the SPECIMEN_SOURCE_VALUE maps to in the specimen domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Specimen&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,,, SPECIMEN,specimen_concept_id,Yes,integer,,The standard CONCEPT_ID that the SPECIMEN_SOURCE_VALUE maps to in the specimen domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Specimen&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,,,
SPECIMEN,specimen_type_concept_id,Yes,integer,,"Put the source of the specimen record, as in an EHR system. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, SPECIMEN,specimen_type_concept_id,Yes,integer,,"Put the source of the specimen record, as in an EHR system. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
SPECIMEN,specimen_date,Yes,date,The date the specimen was collected.,,No,No,,,,, SPECIMEN,specimen_date,Yes,date,The date the specimen was collected.,,No,No,,,,,
SPECIMEN,specimen_datetime,No,datetime,,,No,No,,,,, SPECIMEN,specimen_datetime,No,datetime,,,No,No,,,,,
SPECIMEN,quantity,No,float,The amount of specimen collected from the person.,,No,No,,,,, SPECIMEN,quantity,No,float,The amount of specimen collected from the person.,,No,No,,,,,
SPECIMEN,unit_concept_id,No,integer,The unit for the quantity of the specimen.,Map the UNIT_SOURCE_VALUE to a Standard Concept in the Unit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Unit&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,,, SPECIMEN,unit_concept_id,No,integer,The unit for the quantity of the specimen.,Map the UNIT_SOURCE_VALUE to a Standard Concept in the Unit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Unit&standardConcept=Standard&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,,,
SPECIMEN,anatomic_site_concept_id,No,integer,This is the site on the body where the specimen is from.,Map the ANATOMIC_SITE_SOURCE_VALUE to a Standard Concept in the Spec Anatomic Site domain. This should be coded at the lowest level of granularity [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Spec+Anatomic+Site&conceptClass=Body+Structure&page=4&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,,, SPECIMEN,anatomic_site_concept_id,No,integer,This is the site on the body where the specimen is from.,Map the ANATOMIC_SITE_SOURCE_VALUE to a Standard Concept in the Spec Anatomic Site domain. This should be coded at the lowest level of granularity [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Spec+Anatomic+Site&conceptClass=Body+Structure&page=4&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,,,
SPECIMEN,disease_status_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, SPECIMEN,disease_status_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
SPECIMEN,specimen_source_id,No,varchar(50),This is the identifier for the specimen from the source system. ,,No,No,,,,, SPECIMEN,specimen_source_id,No,varchar(50),This is the identifier for the specimen from the source system. ,,No,No,,,,,
SPECIMEN,specimen_source_value,No,varchar(50),,,No,No,,,,, SPECIMEN,specimen_source_value,No,varchar(50),,,No,No,,,,,
SPECIMEN,unit_source_value,No,varchar(50),,"This unit for the quantity of the specimen, as represented in the source.",No,No,,,,, SPECIMEN,unit_source_value,No,varchar(50),,"This unit for the quantity of the specimen, as represented in the source.",No,No,,,,,
SPECIMEN,anatomic_site_source_value,No,varchar(50),,"This is the site on the body where the specimen was taken from, as represented in the source.",No,No,,,,, SPECIMEN,anatomic_site_source_value,No,varchar(50),,"This is the site on the body where the specimen was taken from, as represented in the source.",No,No,,,,,
SPECIMEN,disease_status_source_value,No,varchar(50),,,No,No,,,,, SPECIMEN,disease_status_source_value,No,varchar(50),,,No,No,,,,,
FACT_RELATIONSHIP,domain_concept_id_1,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, FACT_RELATIONSHIP,domain_concept_id_1,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
FACT_RELATIONSHIP,fact_id_1,Yes,integer,,,No,No,,,,, FACT_RELATIONSHIP,fact_id_1,Yes,integer,,,No,No,,,,,
FACT_RELATIONSHIP,domain_concept_id_2,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, FACT_RELATIONSHIP,domain_concept_id_2,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
FACT_RELATIONSHIP,fact_id_2,Yes,integer,,,No,No,,,,, FACT_RELATIONSHIP,fact_id_2,Yes,integer,,,No,No,,,,,
FACT_RELATIONSHIP,relationship_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, FACT_RELATIONSHIP,relationship_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
LOCATION,location_id,Yes,integer,The unique key given to a unique Location.,Each instance of a Location in the source data should be assigned this unique key.,Yes,No,,,,, LOCATION,location_id,Yes,integer,The unique key given to a unique Location.,Each instance of a Location in the source data should be assigned this unique key.,Yes,No,,,,,
LOCATION,address_1,No,varchar(50),This is the first line of the address.,,No,No,,,,, LOCATION,address_1,No,varchar(50),This is the first line of the address.,,No,No,,,,,
LOCATION,address_2,No,varchar(50),This is the second line of the address,,No,No,,,,, LOCATION,address_2,No,varchar(50),This is the second line of the address,,No,No,,,,,
LOCATION,city,No,varchar(50),,,No,No,,,,, LOCATION,city,No,varchar(50),,,No,No,,,,,
LOCATION,state,No,varchar(2),,,No,No,,,,, LOCATION,state,No,varchar(2),,,No,No,,,,,
LOCATION,zip,No,varchar(9),,"Zip codes are handled as strings of up to 9 characters length. For US addresses, these represent either a 3-digit abbreviated Zip code as provided by many sources for patient protection reasons, the full 5-digit Zip or the 9-digit (ZIP + 4) codes. Unless for specific reasons analytical methods should expect and utilize only the first 3 digits. For international addresses, different rules apply.",No,No,,,,, LOCATION,zip,No,varchar(9),,"Zip codes are handled as strings of up to 9 characters length. For US addresses, these represent either a 3-digit abbreviated Zip code as provided by many sources for patient protection reasons, the full 5-digit Zip or the 9-digit (ZIP + 4) codes. Unless for specific reasons analytical methods should expect and utilize only the first 3 digits. For international addresses, different rules apply.",No,No,,,,,
LOCATION,county,No,varchar(20),,,No,No,,,,, LOCATION,county,No,varchar(20),,,No,No,,,,,
LOCATION,location_source_value,No,varchar(50),,"Put the verbatim value for the location here, as it shows up in the source. ",No,No,,,,, LOCATION,location_source_value,No,varchar(50),,"Put the verbatim value for the location here, as it shows up in the source. ",No,No,,,,,
CARE_SITE,care_site_id,Yes,integer,,Assign an id to each unique combination of location_id and place_of_service_source_value,Yes,No,,,,, CARE_SITE,care_site_id,Yes,integer,,Assign an id to each unique combination of location_id and place_of_service_source_value,Yes,No,,,,,
CARE_SITE,care_site_name,No,varchar(255),The name of the care_site as it appears in the source data,,No,No,,,,, CARE_SITE,care_site_name,No,varchar(255),The name of the care_site as it appears in the source data,,No,No,,,,,
CARE_SITE,place_of_service_concept_id,No,integer,"This is a high-level way of characterizing a Care Site. Typically, however, Care Sites can provide care in multiple settings (inpatient, outpatient, etc.) and this granularity should be reflected in the visit.","Choose the concept in the visit domain that best represents the setting in which healthcare is provided in the Care Site. If most visits in a Care Site are Inpatient, then the place_of_service_concept_id should represent Inpatient. If information is present about a unique Care Site (e.g. Pharmacy) then a Care Site record should be created. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=2&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, CARE_SITE,place_of_service_concept_id,No,integer,"This is a high-level way of characterizing a Care Site. Typically, however, Care Sites can provide care in multiple settings (inpatient, outpatient, etc.) and this granularity should be reflected in the visit.","Choose the concept in the visit domain that best represents the setting in which healthcare is provided in the Care Site. If most visits in a Care Site are Inpatient, then the place_of_service_concept_id should represent Inpatient. If information is present about a unique Care Site (e.g. Pharmacy) then a Care Site record should be created. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=2&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
CARE_SITE,location_id,No,integer,The location_id from the LOCATION table representing the physical location of the care_site.,,No,Yes,LOCATION,LOCATION_ID,,, CARE_SITE,location_id,No,integer,The location_id from the LOCATION table representing the physical location of the care_site.,,No,Yes,LOCATION,LOCATION_ID,,,
CARE_SITE,care_site_source_value,No,varchar(50),The identifier of the care_site as it appears in the source data. This could be an identifier separate from the name of the care_site.,,No,No,,,,, CARE_SITE,care_site_source_value,No,varchar(50),The identifier of the care_site as it appears in the source data. This could be an identifier separate from the name of the care_site.,,No,No,,,,,
CARE_SITE,place_of_service_source_value,No,varchar(50),,Put the place of service of the care_site as it appears in the source data.,No,No,,,,, CARE_SITE,place_of_service_source_value,No,varchar(50),,Put the place of service of the care_site as it appears in the source data.,No,No,,,,,
PROVIDER,provider_id,Yes,integer,It is assumed that every provider with a different unique identifier is in fact a different person and should be treated independently.,"This identifier can be the original id from the source data provided it is an integer, otherwise it can be an autogenerated number.",Yes,No,,,,, PROVIDER,provider_id,Yes,integer,It is assumed that every provider with a different unique identifier is in fact a different person and should be treated independently.,"This identifier can be the original id from the source data provided it is an integer, otherwise it can be an autogenerated number.",Yes,No,,,,,
PROVIDER,provider_name,No,varchar(255),,"This field is not necessary as it is not necessary to have the actual identity of the Provider. Rather, the idea is to uniquely and anonymously identify providers of care across the database.",No,No,,,,, PROVIDER,provider_name,No,varchar(255),,"This field is not necessary as it is not necessary to have the actual identity of the Provider. Rather, the idea is to uniquely and anonymously identify providers of care across the database.",No,No,,,,,
PROVIDER,npi,No,varchar(20),This is the National Provider Number issued to health care providers in the US by the Centers for Medicare and Medicaid Services (CMS).,,No,No,,,,, PROVIDER,npi,No,varchar(20),This is the National Provider Number issued to health care providers in the US by the Centers for Medicare and Medicaid Services (CMS).,,No,No,,,,,
PROVIDER,dea,No,varchar(20),"This is the identifier issued by the DEA, a US federal agency, that allows a provider to write prescriptions for controlled substances.",,No,No,,,,, PROVIDER,dea,No,varchar(20),"This is the identifier issued by the DEA, a US federal agency, that allows a provider to write prescriptions for controlled substances.",,No,No,,,,,
PROVIDER,specialty_concept_id,No,integer,"This field either represents the most common specialty that occurs in the data or the most specific concept that represents all specialties listed, should the provider have more than one. This includes physician specialties such as internal medicine, emergency medicine, etc. and allied health professionals such as nurses, midwives, and pharmacists.","If a Provider has more than one Specialty, there are two options: 1. Choose a concept_id which is a common ancestor to the multiple specialties, or, 2. Choose the specialty that occurs most often for the provider. Concepts in this field should be Standard with a domain of Provider. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Provider&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, PROVIDER,specialty_concept_id,No,integer,"This field either represents the most common specialty that occurs in the data or the most specific concept that represents all specialties listed, should the provider have more than one. This includes physician specialties such as internal medicine, emergency medicine, etc. and allied health professionals such as nurses, midwives, and pharmacists.","If a Provider has more than one Specialty, there are two options: 1. Choose a concept_id which is a common ancestor to the multiple specialties, or, 2. Choose the specialty that occurs most often for the provider. Concepts in this field should be Standard with a domain of Provider. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Provider&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
PROVIDER,care_site_id,No,integer,This is the CARE_SITE_ID for the location that the provider primarily practices in.,"If a Provider has more than one Care Site, the main or most often exerted CARE_SITE_ID should be recorded.",No,Yes,CARE_SITE,CARE_SITE_ID,,, PROVIDER,care_site_id,No,integer,This is the CARE_SITE_ID for the location that the provider primarily practices in.,"If a Provider has more than one Care Site, the main or most often exerted CARE_SITE_ID should be recorded.",No,Yes,CARE_SITE,CARE_SITE_ID,,,
PROVIDER,year_of_birth,No,integer,,,No,No,,,,, PROVIDER,year_of_birth,No,integer,,,No,No,,,,,
PROVIDER,gender_concept_id,No,integer,This field represents the recorded gender of the provider in the source data.,"If given, put a concept from the gender domain representing the recorded gender of the provider. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Gender&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Gender,, PROVIDER,gender_concept_id,No,integer,This field represents the recorded gender of the provider in the source data.,"If given, put a concept from the gender domain representing the recorded gender of the provider. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Gender&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Gender,,
PROVIDER,provider_source_value,No,varchar(50),Use this field to link back to providers in the source data. This is typically used for error checking of ETL logic.,Some use cases require the ability to link back to providers in the source data. This field allows for the storing of the provider identifier as it appears in the source.,No,No,,,,, PROVIDER,provider_source_value,No,varchar(50),Use this field to link back to providers in the source data. This is typically used for error checking of ETL logic.,Some use cases require the ability to link back to providers in the source data. This field allows for the storing of the provider identifier as it appears in the source.,No,No,,,,,
PROVIDER,specialty_source_value,No,varchar(50),"This is the kind of provider or specialty as it appears in the source data. This includes physician specialties such as internal medicine, emergency medicine, etc. and allied health professionals such as nurses, midwives, and pharmacists.",Put the kind of provider as it appears in the source data. This field is up to the discretion of the ETL-er as to whether this should be the coded value from the source or the text description of the lookup value.,No,No,,,,, PROVIDER,specialty_source_value,No,varchar(50),"This is the kind of provider or specialty as it appears in the source data. This includes physician specialties such as internal medicine, emergency medicine, etc. and allied health professionals such as nurses, midwives, and pharmacists.",Put the kind of provider as it appears in the source data. This field is up to the discretion of the ETL-er as to whether this should be the coded value from the source or the text description of the lookup value.,No,No,,,,,
PROVIDER,specialty_source_concept_id,No,integer,This is often zero as many sites use proprietary codes to store physician speciality.,If the source data codes provider specialty in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PROVIDER,specialty_source_concept_id,No,integer,This is often zero as many sites use proprietary codes to store physician speciality.,If the source data codes provider specialty in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PROVIDER,gender_source_value,No,varchar(50),This is provider's gender as it appears in the source data.,Put the provider's gender as it appears in the source data. This field is up to the discretion of the ETL-er as to whether this should be the coded value from the source or the text description of the lookup value.,No,No,,,,, PROVIDER,gender_source_value,No,varchar(50),This is provider's gender as it appears in the source data.,Put the provider's gender as it appears in the source data. This field is up to the discretion of the ETL-er as to whether this should be the coded value from the source or the text description of the lookup value.,No,No,,,,,
PROVIDER,gender_source_concept_id,No,integer,This is often zero as many sites use proprietary codes to store provider gender.,If the source data codes provider gender in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PROVIDER,gender_source_concept_id,No,integer,This is often zero as many sites use proprietary codes to store provider gender.,If the source data codes provider gender in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,payer_plan_period_id,Yes,integer,"A unique identifier for each unique combination of a Person, Payer, Plan, and Period of time.",,Yes,Yes,PERSON,PERSON_ID,,, PAYER_PLAN_PERIOD,payer_plan_period_id,Yes,integer,"A unique identifier for each unique combination of a Person, Payer, Plan, and Period of time.",,Yes,Yes,PERSON,PERSON_ID,,,
PAYER_PLAN_PERIOD,person_id,Yes,integer,The Person covered by the Plan.,"A single Person can have multiple, overlapping, PAYER_PLAN_PERIOD records",No,Yes,PERSON,PERSON_ID,,, PAYER_PLAN_PERIOD,person_id,Yes,integer,The Person covered by the Plan.,"A single Person can have multiple, overlapping, PAYER_PLAN_PERIOD records",No,Yes,PERSON,PERSON_ID,,,
PAYER_PLAN_PERIOD,payer_plan_period_start_date,Yes,date,Start date of Plan coverage.,,No,No,,,,, PAYER_PLAN_PERIOD,payer_plan_period_start_date,Yes,date,Start date of Plan coverage.,,No,No,,,,,
PAYER_PLAN_PERIOD,payer_plan_period_end_date,Yes,date,End date of Plan coverage.,,No,No,,,,, PAYER_PLAN_PERIOD,payer_plan_period_end_date,Yes,date,End date of Plan coverage.,,No,No,,,,,
PAYER_PLAN_PERIOD,payer_concept_id,No,integer,This field represents the organization who reimburses the provider which administers care to the Person.,"Map the Payer directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same payer, though the name of the Payer is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Payer&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,payer_concept_id,No,integer,This field represents the organization who reimburses the provider which administers care to the Person.,"Map the Payer directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same payer, though the name of the Payer is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Payer&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,payer_source_value,No,varchar(50),This is the Payer as it appears in the source data.,,No,No,,,,, PAYER_PLAN_PERIOD,payer_source_value,No,varchar(50),This is the Payer as it appears in the source data.,,No,No,,,,,
PAYER_PLAN_PERIOD,payer_source_concept_id,No,integer,,If the source data codes the Payer in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,payer_source_concept_id,No,integer,,If the source data codes the Payer in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,plan_concept_id,No,integer,This field represents the specific health benefit Plan the Person is enrolled in.,Map the Plan directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same health benefit Plan though the name of the Plan is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,plan_concept_id,No,integer,This field represents the specific health benefit Plan the Person is enrolled in.,Map the Plan directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same health benefit Plan though the name of the Plan is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,plan_source_value,No,varchar(50),This is the health benefit Plan of the Person as it appears in the source data.,,No,No,,,,, PAYER_PLAN_PERIOD,plan_source_value,No,varchar(50),This is the health benefit Plan of the Person as it appears in the source data.,,No,No,,,,,
PAYER_PLAN_PERIOD,plan_source_concept_id,No,integer,,If the source data codes the Plan in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,plan_source_concept_id,No,integer,,If the source data codes the Plan in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,sponsor_concept_id,No,integer,"This field represents the sponsor of the Plan who finances the Plan. This includes self-insured, small group health plan and large group health plan.",Map the sponsor directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same sponsor though the name of the sponsor is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Sponsor&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,sponsor_concept_id,No,integer,"This field represents the sponsor of the Plan who finances the Plan. This includes self-insured, small group health plan and large group health plan.",Map the sponsor directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same sponsor though the name of the sponsor is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Sponsor&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,sponsor_source_value,No,varchar(50),The Plan sponsor as it appears in the source data.,,No,No,,,,, PAYER_PLAN_PERIOD,sponsor_source_value,No,varchar(50),The Plan sponsor as it appears in the source data.,,No,No,,,,,
PAYER_PLAN_PERIOD,sponsor_source_concept_id,No,integer,,If the source data codes the sponsor in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,sponsor_source_concept_id,No,integer,,If the source data codes the sponsor in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,family_source_value,No,varchar(50),The common identifier for all people (often a family) that covered by the same policy.,Often these are the common digits of the enrollment id of the policy members.,No,No,,,,, PAYER_PLAN_PERIOD,family_source_value,No,varchar(50),The common identifier for all people (often a family) that covered by the same policy.,Often these are the common digits of the enrollment id of the policy members.,No,No,,,,,
PAYER_PLAN_PERIOD,stop_reason_concept_id,No,integer,"This field represents the reason the Person left the Plan, if known.",Map the stop reason directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan+Stop+Reason&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,stop_reason_concept_id,No,integer,"This field represents the reason the Person left the Plan, if known.",Map the stop reason directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan+Stop+Reason&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,,,
PAYER_PLAN_PERIOD,stop_reason_source_value,No,varchar(50),The Plan stop reason as it appears in the source data.,,No,No,,,,, PAYER_PLAN_PERIOD,stop_reason_source_value,No,varchar(50),The Plan stop reason as it appears in the source data.,,No,No,,,,,
PAYER_PLAN_PERIOD,stop_reason_source_concept_id,No,integer,,If the source data codes the stop reason in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,, PAYER_PLAN_PERIOD,stop_reason_source_concept_id,No,integer,,If the source data codes the stop reason in an OMOP supported vocabulary store the concept_id here.,No,Yes,CONCEPT,CONCEPT_ID,,,
COST,cost_id,Yes,integer,,,Yes,No,,,,, COST,cost_id,Yes,integer,,,Yes,No,,,,,
COST,cost_event_id,Yes,integer,,,No,No,,,,, COST,cost_event_id,Yes,integer,,,No,No,,,,,
COST,cost_domain_id,Yes,varchar(20),,,No,Yes,DOMAIN,DOMAIN_ID,,, COST,cost_domain_id,Yes,varchar(20),,,No,Yes,DOMAIN,DOMAIN_ID,,,
COST,cost_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, COST,cost_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
COST,currency_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, COST,currency_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
COST,total_charge,No,float,,,No,No,,,,, COST,total_charge,No,float,,,No,No,,,,,
COST,total_cost,No,float,,,No,No,,,,, COST,total_cost,No,float,,,No,No,,,,,
COST,total_paid,No,float,,,No,No,,,,, COST,total_paid,No,float,,,No,No,,,,,
COST,paid_by_payer,No,float,,,No,No,,,,, COST,paid_by_payer,No,float,,,No,No,,,,,
COST,paid_by_patient,No,float,,,No,No,,,,, COST,paid_by_patient,No,float,,,No,No,,,,,
COST,paid_patient_copay,No,float,,,No,No,,,,, COST,paid_patient_copay,No,float,,,No,No,,,,,
COST,paid_patient_coinsurance,No,float,,,No,No,,,,, COST,paid_patient_coinsurance,No,float,,,No,No,,,,,
COST,paid_patient_deductible,No,float,,,No,No,,,,, COST,paid_patient_deductible,No,float,,,No,No,,,,,
COST,paid_by_primary,No,float,,,No,No,,,,, COST,paid_by_primary,No,float,,,No,No,,,,,
COST,paid_ingredient_cost,No,float,,,No,No,,,,, COST,paid_ingredient_cost,No,float,,,No,No,,,,,
COST,paid_dispensing_fee,No,float,,,No,No,,,,, COST,paid_dispensing_fee,No,float,,,No,No,,,,,
COST,payer_plan_period_id,No,integer,,,No,No,,,,, COST,payer_plan_period_id,No,integer,,,No,No,,,,,
COST,amount_allowed,No,float,,,No,No,,,,, COST,amount_allowed,No,float,,,No,No,,,,,
COST,revenue_code_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, COST,revenue_code_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
COST,revenue_code_source_value,No,varchar(50),Revenue codes are a method to charge for a class of procedures and conditions in the U.S. hospital system.,,No,No,,,,, COST,revenue_code_source_value,No,varchar(50),Revenue codes are a method to charge for a class of procedures and conditions in the U.S. hospital system.,,No,No,,,,,
COST,drg_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, COST,drg_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
COST,drg_source_value,No,varchar(3),Diagnosis Related Groups are US codes used to classify hospital cases into one of approximately 500 groups. ,,No,No,,,,, COST,drg_source_value,No,varchar(3),Diagnosis Related Groups are US codes used to classify hospital cases into one of approximately 500 groups. ,,No,No,,,,,
DRUG_ERA,drug_era_id,Yes,integer,,,Yes,No,,,,, DRUG_ERA,drug_era_id,Yes,integer,,,Yes,No,,,,,
DRUG_ERA,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, DRUG_ERA,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
DRUG_ERA,drug_concept_id,Yes,integer,The Concept Id representing the specific drug ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,Drug,Ingredient, DRUG_ERA,drug_concept_id,Yes,integer,The Concept Id representing the specific drug ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,Drug,Ingredient,
DRUG_ERA,drug_era_start_date,Yes,datetime,,"The Drug Era Start Date is the start date of the first Drug Exposure for a given ingredient, with at least 31 days since the previous exposure. ",No,No,,,,, DRUG_ERA,drug_era_start_date,Yes,datetime,,"The Drug Era Start Date is the start date of the first Drug Exposure for a given ingredient, with at least 31 days since the previous exposure. ",No,No,,,,,
DRUG_ERA,drug_era_end_date,Yes,datetime,,"The Drug Era End Date is the end date of the last Drug Exposure. The End Date of each Drug Exposure is either taken from the field drug_exposure_end_date or, as it is typically not available, inferred using the following rules: DRUG_ERA,drug_era_end_date,Yes,datetime,,"The Drug Era End Date is the end date of the last Drug Exposure. The End Date of each Drug Exposure is either taken from the field drug_exposure_end_date or, as it is typically not available, inferred using the following rules:
For pharmacy prescription data, the date when the drug was dispensed plus the number of days of supply are used to extrapolate the End Date for the Drug Exposure. Depending on the country-specific healthcare system, this supply information is either explicitly provided in the day_supply field or inferred from package size or similar information. For pharmacy prescription data, the date when the drug was dispensed plus the number of days of supply are used to extrapolate the End Date for the Drug Exposure. Depending on the country-specific healthcare system, this supply information is either explicitly provided in the day_supply field or inferred from package size or similar information.
For Procedure Drugs, usually the drug is administered on a single date (i.e., the administration date). For Procedure Drugs, usually the drug is administered on a single date (i.e., the administration date).
A standard Persistence Window of 30 days (gap, slack) is permitted between two subsequent such extrapolated DRUG_EXPOSURE records to be considered to be merged into a single Drug Era.",No,No,,,,, A standard Persistence Window of 30 days (gap, slack) is permitted between two subsequent such extrapolated DRUG_EXPOSURE records to be considered to be merged into a single Drug Era.",No,No,,,,,
DRUG_ERA,drug_exposure_count,No,integer,,,No,No,,,,, DRUG_ERA,drug_exposure_count,No,integer,,,No,No,,,,,
DRUG_ERA,gap_days,No,integer,,"The Gap Days determine how many total drug-free days are observed between all Drug Exposure events that contribute to a DRUG_ERA record. It is assumed that the drugs are ""not stockpiled"" by the patient, i.e. that if a new drug prescription or refill is observed (a new DRUG_EXPOSURE record is written), the remaining supply from the previous events is abandoned. The difference between Persistence Window and Gap Days is that the former is the maximum drug-free time allowed between two subsequent DRUG_EXPOSURE records, while the latter is the sum of actual drug-free days for the given Drug Era under the above assumption of non-stockpiling.",No,No,,,,, DRUG_ERA,gap_days,No,integer,,"The Gap Days determine how many total drug-free days are observed between all Drug Exposure events that contribute to a DRUG_ERA record. It is assumed that the drugs are ""not stockpiled"" by the patient, i.e. that if a new drug prescription or refill is observed (a new DRUG_EXPOSURE record is written), the remaining supply from the previous events is abandoned. The difference between Persistence Window and Gap Days is that the former is the maximum drug-free time allowed between two subsequent DRUG_EXPOSURE records, while the latter is the sum of actual drug-free days for the given Drug Era under the above assumption of non-stockpiling.",No,No,,,,,
DOSE_ERA,dose_era_id,Yes,integer,,,Yes,No,,,,, DOSE_ERA,dose_era_id,Yes,integer,,,Yes,No,,,,,
DOSE_ERA,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, DOSE_ERA,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
DOSE_ERA,drug_concept_id,Yes,integer,The Concept Id representing the specific drug ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,Drug,Ingredient, DOSE_ERA,drug_concept_id,Yes,integer,The Concept Id representing the specific drug ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,Drug,Ingredient,
DOSE_ERA,unit_concept_id,Yes,integer,The Concept Id representing the unit of the specific drug ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,Unit,, DOSE_ERA,unit_concept_id,Yes,integer,The Concept Id representing the unit of the specific drug ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,Unit,,
DOSE_ERA,dose_value,Yes,float,The numeric value of the dosage of the drug_ingredient.,,No,No,,,,, DOSE_ERA,dose_value,Yes,float,The numeric value of the dosage of the drug_ingredient.,,No,No,,,,,
DOSE_ERA,dose_era_start_date,Yes,datetime,"The date the Person started on the specific dosage, with at least 31 days since any prior exposure.",,No,No,,,,, DOSE_ERA,dose_era_start_date,Yes,datetime,"The date the Person started on the specific dosage, with at least 31 days since any prior exposure.",,No,No,,,,,
DOSE_ERA,dose_era_end_date,Yes,datetime,,The date the Person was no longer exposed to the dosage of the specific drug ingredient. An era is ended if there are 31 days or more between dosage records.,No,No,,,,, DOSE_ERA,dose_era_end_date,Yes,datetime,,The date the Person was no longer exposed to the dosage of the specific drug ingredient. An era is ended if there are 31 days or more between dosage records.,No,No,,,,,
CONDITION_ERA,condition_era_id,Yes,integer,,,Yes,No,,,,, CONDITION_ERA,condition_era_id,Yes,integer,,,Yes,No,,,,,
CONDITION_ERA,person_id,Yes,integer,,,No,No,PERSON,PERSON_ID,,, CONDITION_ERA,person_id,Yes,integer,,,No,No,PERSON,PERSON_ID,,,
CONDITION_ERA,condition_concept_id,Yes,integer,The Concept Id representing the Condition.,,No,Yes,CONCEPT,CONCEPT_ID,Condition,, CONDITION_ERA,condition_concept_id,Yes,integer,The Concept Id representing the Condition.,,No,Yes,CONCEPT,CONCEPT_ID,Condition,,
CONDITION_ERA,condition_era_start_date,Yes,datetime,"The start date for the Condition Era CONDITION_ERA,condition_era_start_date,Yes,datetime,"The start date for the Condition Era
constructed from the individual constructed from the individual
instances of Condition Occurrences. instances of Condition Occurrences.
It is the start date of the very first It is the start date of the very first
chronologically recorded instance of chronologically recorded instance of
the condition with at least 31 days since any prior record of the same Condition. ",,No,No,,,,, the condition with at least 31 days since any prior record of the same Condition. ",,No,No,,,,,
CONDITION_ERA,condition_era_end_date,Yes,datetime,"The end date for the Condition Era CONDITION_ERA,condition_era_end_date,Yes,datetime,"The end date for the Condition Era
constructed from the individual constructed from the individual
instances of Condition Occurrences. instances of Condition Occurrences.
It is the end date of the final It is the end date of the final
continuously recorded instance of the continuously recorded instance of the
Condition.",,No,No,,,,, Condition.",,No,No,,,,,
CONDITION_ERA,condition_occurrence_count,No,integer,"The number of individual Condition CONDITION_ERA,condition_occurrence_count,No,integer,"The number of individual Condition
Occurrences used to construct the Occurrences used to construct the
condition era.",,No,No,,,,, condition era.",,No,No,,,,,
METADATA,metadata_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, METADATA,metadata_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
METADATA,metadata_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, METADATA,metadata_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
METADATA,name,Yes,varchar(250),,,No,No,,,,, METADATA,name,Yes,varchar(250),,,No,No,,,,,
METADATA,value_as_string,No,varchar(250),,,No,No,,,,, METADATA,value_as_string,No,varchar(250),,,No,No,,,,,
METADATA,value_as_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, METADATA,value_as_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
METADATA,metadata_date,No,date,,,No,No,,,,, METADATA,metadata_date,No,date,,,No,No,,,,,
METADATA,metadata_datetime,No,datetime,,,No,No,,,,, METADATA,metadata_datetime,No,datetime,,,No,No,,,,,
CDM_SOURCE,cdm_source_name,Yes,varchar(255),The name of the CDM instance.,,No,No,,,,, CDM_SOURCE,cdm_source_name,Yes,varchar(255),The name of the CDM instance.,,No,No,,,,,
CDM_SOURCE,cdm_source_abbreviation,No,varchar(25),The abbreviation of the CDM instance.,,No,No,,,,, CDM_SOURCE,cdm_source_abbreviation,No,varchar(25),The abbreviation of the CDM instance.,,No,No,,,,,
CDM_SOURCE,cdm_holder,No,varchar(255),The holder of the CDM instance.,,No,No,,,,, CDM_SOURCE,cdm_holder,No,varchar(255),The holder of the CDM instance.,,No,No,,,,,
CDM_SOURCE,source_description,No,varchar(MAX),The description of the CDM instance.,,No,No,,,,, CDM_SOURCE,source_description,No,varchar(MAX),The description of the CDM instance.,,No,No,,,,,
CDM_SOURCE,source_documentation_reference,No,varchar(255),,,No,No,,,,, CDM_SOURCE,source_documentation_reference,No,varchar(255),,,No,No,,,,,
CDM_SOURCE,cdm_etl_reference,No,varchar(255),,Put the link to the CDM version used.,No,No,,,,, CDM_SOURCE,cdm_etl_reference,No,varchar(255),,Put the link to the CDM version used.,No,No,,,,,
CDM_SOURCE,source_release_date,No,date,The release date of the source data.,,No,No,,,,, CDM_SOURCE,source_release_date,No,date,The release date of the source data.,,No,No,,,,,
CDM_SOURCE,cdm_release_date,No,date,The release data of the CDM instance.,,No,No,,,,, CDM_SOURCE,cdm_release_date,No,date,The release data of the CDM instance.,,No,No,,,,,
CDM_SOURCE,cdm_version,No,varchar(10),,,No,No,,,,, CDM_SOURCE,cdm_version,No,varchar(10),,,No,No,,,,,
CDM_SOURCE,vocabulary_version,No,varchar(20),,,No,No,,,,, CDM_SOURCE,vocabulary_version,No,varchar(20),,,No,No,,,,,
CONCEPT,concept_id,Yes,integer,A unique identifier for each Concept across all domains.,,Yes,No,,,,, CONCEPT,concept_id,Yes,integer,A unique identifier for each Concept across all domains.,,Yes,No,,,,,
CONCEPT,concept_name,Yes,varchar(255),"An unambiguous, meaningful and descriptive name for the Concept.",,No,No,,,,, CONCEPT,concept_name,Yes,varchar(255),"An unambiguous, meaningful and descriptive name for the Concept.",,No,No,,,,,
CONCEPT,domain_id,Yes,varchar(20),A foreign key to the [DOMAIN](https://ohdsi.github.io/CommonDataModel/cdm531.html#domain) table the Concept belongs to.,,No,Yes,DOMAIN,DOMAIN_ID,,, CONCEPT,domain_id,Yes,varchar(20),A foreign key to the [DOMAIN](https://ohdsi.github.io/CommonDataModel/cdm531.html#domain) table the Concept belongs to.,,No,Yes,DOMAIN,DOMAIN_ID,,,
CONCEPT,vocabulary_id,Yes,varchar(20),"A foreign key to the [VOCABULARY](https://ohdsi.github.io/CommonDataModel/cdm531.html#vocabulary) CONCEPT,vocabulary_id,Yes,varchar(20),"A foreign key to the [VOCABULARY](https://ohdsi.github.io/CommonDataModel/cdm531.html#vocabulary)
table indicating from which source the table indicating from which source the
Concept has been adapted.",,No,Yes,VOCABULARY,VOCABULARY_ID,,, Concept has been adapted.",,No,Yes,VOCABULARY,VOCABULARY_ID,,,
CONCEPT,concept_class_id,Yes,varchar(20),"The attribute or concept class of the CONCEPT,concept_class_id,Yes,varchar(20),"The attribute or concept class of the
Concept. Examples are 'Clinical Drug', Concept. Examples are 'Clinical Drug',
'Ingredient', 'Clinical Finding' etc.",,No,Yes,CONCEPT_CLASS,CONCEPT_CLASS_ID,,, 'Ingredient', 'Clinical Finding' etc.",,No,Yes,CONCEPT_CLASS,CONCEPT_CLASS_ID,,,
CONCEPT,standard_concept,No,varchar(1),"This flag determines where a Concept is CONCEPT,standard_concept,No,varchar(1),"This flag determines where a Concept is
a Standard Concept, i.e. is used in the a Standard Concept, i.e. is used in the
data, a Classification Concept, or a data, a Classification Concept, or a
non-standard Source Concept. The non-standard Source Concept. The
allowable values are 'S' (Standard allowable values are 'S' (Standard
Concept) and 'C' (Classification Concept) and 'C' (Classification
Concept), otherwise the content is NULL.",,No,No,,,,, Concept), otherwise the content is NULL.",,No,No,,,,,
CONCEPT,concept_code,Yes,varchar(50),"The concept code represents the identifier CONCEPT,concept_code,Yes,varchar(50),"The concept code represents the identifier
of the Concept in the source vocabulary, of the Concept in the source vocabulary,
such as SNOMED-CT concept IDs, such as SNOMED-CT concept IDs,
RxNorm RXCUIs etc. Note that concept RxNorm RXCUIs etc. Note that concept
codes are not unique across vocabularies.",,No,No,,,,, codes are not unique across vocabularies.",,No,No,,,,,
CONCEPT,valid_start_date,Yes,date,"The date when the Concept was first CONCEPT,valid_start_date,Yes,date,"The date when the Concept was first
recorded. The default value is recorded. The default value is
1-Jan-1970, meaning, the Concept has no 1-Jan-1970, meaning, the Concept has no
(known) date of inception.",,No,No,,,,, (known) date of inception.",,No,No,,,,,
CONCEPT,valid_end_date,Yes,date,"The date when the Concept became CONCEPT,valid_end_date,Yes,date,"The date when the Concept became
invalid because it was deleted or invalid because it was deleted or
superseded (updated) by a new concept. superseded (updated) by a new concept.
The default value is 31-Dec-2099, The default value is 31-Dec-2099,
meaning, the Concept is valid until it meaning, the Concept is valid until it
becomes deprecated.",,No,No,,,,, becomes deprecated.",,No,No,,,,,
CONCEPT,invalid_reason,No,varchar(1),"Reason the Concept was invalidated. CONCEPT,invalid_reason,No,varchar(1),"Reason the Concept was invalidated.
Possible values are D (deleted), U Possible values are D (deleted), U
(replaced with an update) or NULL when (replaced with an update) or NULL when
valid_end_date has the default value.",,No,No,,,,, valid_end_date has the default value.",,No,No,,,,,
VOCABULARY,vocabulary_id,Yes,varchar(20),"A unique identifier for each Vocabulary, such VOCABULARY,vocabulary_id,Yes,varchar(20),"A unique identifier for each Vocabulary, such
as ICD9CM, SNOMED, Visit.",,Yes,No,,,,, as ICD9CM, SNOMED, Visit.",,Yes,No,,,,,
VOCABULARY,vocabulary_name,Yes,varchar(255),"The name describing the vocabulary, for VOCABULARY,vocabulary_name,Yes,varchar(255),"The name describing the vocabulary, for
example, International Classification of example, International Classification of
Diseases, Ninth Revision, Clinical Diseases, Ninth Revision, Clinical
Modification, Volume 1 and 2 (NCHS) etc.",,No,No,,,,, Modification, Volume 1 and 2 (NCHS) etc.",,No,No,,,,,
VOCABULARY,vocabulary_reference,Yes,varchar(255),"External reference to documentation or VOCABULARY,vocabulary_reference,Yes,varchar(255),"External reference to documentation or
available download of the about the available download of the about the
vocabulary.",,No,No,,,,, vocabulary.",,No,No,,,,,
VOCABULARY,vocabulary_version,No,varchar(255),"Version of the Vocabulary as indicated in VOCABULARY,vocabulary_version,No,varchar(255),"Version of the Vocabulary as indicated in
the source.",,No,No,,,,, the source.",,No,No,,,,,
VOCABULARY,vocabulary_concept_id,Yes,integer,A Concept that represents the Vocabulary the VOCABULARY record belongs to.,,No,Yes,CONCEPT,CONCEPT_ID,,, VOCABULARY,vocabulary_concept_id,Yes,integer,A Concept that represents the Vocabulary the VOCABULARY record belongs to.,,No,Yes,CONCEPT,CONCEPT_ID,,,
DOMAIN,domain_id,Yes,varchar(20),A unique key for each domain.,,Yes,No,,,,, DOMAIN,domain_id,Yes,varchar(20),A unique key for each domain.,,Yes,No,,,,,
DOMAIN,domain_name,Yes,varchar(255),"The name describing the Domain, e.g. DOMAIN,domain_name,Yes,varchar(255),"The name describing the Domain, e.g.
Condition, Procedure, Measurement Condition, Procedure, Measurement
etc.",,No,No,,,,, etc.",,No,No,,,,,
DOMAIN,domain_concept_id,Yes,integer,A Concept representing the Domain Concept the DOMAIN record belongs to.,,No,Yes,CONCEPT,CONCEPT_ID,,, DOMAIN,domain_concept_id,Yes,integer,A Concept representing the Domain Concept the DOMAIN record belongs to.,,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_CLASS,concept_class_id,Yes,varchar(20),A unique key for each class.,,Yes,No,,,,, CONCEPT_CLASS,concept_class_id,Yes,varchar(20),A unique key for each class.,,Yes,No,,,,,
CONCEPT_CLASS,concept_class_name,Yes,varchar(255),"The name describing the Concept Class, e.g. CONCEPT_CLASS,concept_class_name,Yes,varchar(255),"The name describing the Concept Class, e.g.
Clinical Finding, Ingredient, etc.",,No,No,,,,, Clinical Finding, Ingredient, etc.",,No,No,,,,,
CONCEPT_CLASS,concept_class_concept_id,Yes,integer,A Concept that represents the Concept Class.,,No,Yes,CONCEPT,CONCEPT_ID,,, CONCEPT_CLASS,concept_class_concept_id,Yes,integer,A Concept that represents the Concept Class.,,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_RELATIONSHIP,concept_id_1,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, CONCEPT_RELATIONSHIP,concept_id_1,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_RELATIONSHIP,concept_id_2,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, CONCEPT_RELATIONSHIP,concept_id_2,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_RELATIONSHIP,relationship_id,Yes,varchar(20),The relationship between CONCEPT_ID_1 and CONCEPT_ID_2. Please see the [Vocabulary Conventions](https://ohdsi.github.io/CommonDataModel/dataModelConventions.html#concept_relationships). for more information. ,,No,Yes,RELATIONSHIP,RELATIONSHIP_ID,,, CONCEPT_RELATIONSHIP,relationship_id,Yes,varchar(20),The relationship between CONCEPT_ID_1 and CONCEPT_ID_2. Please see the [Vocabulary Conventions](https://ohdsi.github.io/CommonDataModel/dataModelConventions.html#concept_relationships). for more information. ,,No,Yes,RELATIONSHIP,RELATIONSHIP_ID,,,
CONCEPT_RELATIONSHIP,valid_start_date,Yes,date,The date when the relationship is first recorded.,,No,No,,,,, CONCEPT_RELATIONSHIP,valid_start_date,Yes,date,The date when the relationship is first recorded.,,No,No,,,,,
CONCEPT_RELATIONSHIP,valid_end_date,Yes,date,The date when the relationship is invalidated.,,No,No,,,,, CONCEPT_RELATIONSHIP,valid_end_date,Yes,date,The date when the relationship is invalidated.,,No,No,,,,,
CONCEPT_RELATIONSHIP,invalid_reason,No,varchar(1),"Reason the relationship was invalidated. Possible values are 'D' (deleted), 'U' (updated) or NULL. ",,No,No,,,,, CONCEPT_RELATIONSHIP,invalid_reason,No,varchar(1),"Reason the relationship was invalidated. Possible values are 'D' (deleted), 'U' (updated) or NULL. ",,No,No,,,,,
RELATIONSHIP,relationship_id,Yes,varchar(20),"The type of relationship captured by the RELATIONSHIP,relationship_id,Yes,varchar(20),"The type of relationship captured by the
relationship record.",,Yes,No,,,,, relationship record.",,Yes,No,,,,,
RELATIONSHIP,relationship_name,Yes,varchar(255),,,No,No,,,,, RELATIONSHIP,relationship_name,Yes,varchar(255),,,No,No,,,,,
RELATIONSHIP,is_hierarchical,Yes,varchar(1),"Defines whether a relationship defines RELATIONSHIP,is_hierarchical,Yes,varchar(1),"Defines whether a relationship defines
concepts into classes or hierarchies. Values concepts into classes or hierarchies. Values
are 1 for hierarchical relationship or 0 if not.",,No,No,,,,, are 1 for hierarchical relationship or 0 if not.",,No,No,,,,,
RELATIONSHIP,defines_ancestry,Yes,varchar(1),"Defines whether a hierarchical relationship RELATIONSHIP,defines_ancestry,Yes,varchar(1),"Defines whether a hierarchical relationship
contributes to the concept_ancestor table. contributes to the concept_ancestor table.
These are subsets of the hierarchical These are subsets of the hierarchical
relationships. Valid values are 1 or 0.",,No,No,,,,, relationships. Valid values are 1 or 0.",,No,No,,,,,
RELATIONSHIP,reverse_relationship_id,Yes,varchar(20),"The identifier for the relationship used to RELATIONSHIP,reverse_relationship_id,Yes,varchar(20),"The identifier for the relationship used to
define the reverse relationship between two define the reverse relationship between two
concepts.",,No,No,,,,, concepts.",,No,No,,,,,
RELATIONSHIP,relationship_concept_id,Yes,integer,"A foreign key that refers to an identifier in RELATIONSHIP,relationship_concept_id,Yes,integer,"A foreign key that refers to an identifier in
the [CONCEPT](https://ohdsi.github.io/CommonDataModel/cdm531.html#concept) table for the unique the [CONCEPT](https://ohdsi.github.io/CommonDataModel/cdm531.html#concept) table for the unique
relationship concept.",,No,Yes,CONCEPT,CONCEPT_ID,,, relationship concept.",,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_SYNONYM,concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, CONCEPT_SYNONYM,concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_SYNONYM,concept_synonym_name,Yes,varchar(1000),,,No,No,,,,, CONCEPT_SYNONYM,concept_synonym_name,Yes,varchar(1000),,,No,No,,,,,
CONCEPT_SYNONYM,language_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, CONCEPT_SYNONYM,language_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_ANCESTOR,ancestor_concept_id,Yes,integer,"The Concept Id for the higher-level concept CONCEPT_ANCESTOR,ancestor_concept_id,Yes,integer,"The Concept Id for the higher-level concept
that forms the ancestor in the relationship.",,No,Yes,CONCEPT,CONCEPT_ID,,, that forms the ancestor in the relationship.",,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_ANCESTOR,descendant_concept_id,Yes,integer,"The Concept Id for the lower-level concept CONCEPT_ANCESTOR,descendant_concept_id,Yes,integer,"The Concept Id for the lower-level concept
that forms the descendant in the that forms the descendant in the
relationship.",,No,Yes,CONCEPT,CONCEPT_ID,,, relationship.",,No,Yes,CONCEPT,CONCEPT_ID,,,
CONCEPT_ANCESTOR,min_levels_of_separation,Yes,integer,"The minimum separation in number of CONCEPT_ANCESTOR,min_levels_of_separation,Yes,integer,"The minimum separation in number of
levels of hierarchy between ancestor and levels of hierarchy between ancestor and
descendant concepts. This is an attribute descendant concepts. This is an attribute
that is used to simplify hierarchic analysis.",,No,No,,,,, that is used to simplify hierarchic analysis.",,No,No,,,,,
CONCEPT_ANCESTOR,max_levels_of_separation,Yes,integer,"The maximum separation in number of CONCEPT_ANCESTOR,max_levels_of_separation,Yes,integer,"The maximum separation in number of
levels of hierarchy between ancestor and levels of hierarchy between ancestor and
descendant concepts. This is an attribute descendant concepts. This is an attribute
that is used to simplify hierarchic analysis.",,No,No,,,,, that is used to simplify hierarchic analysis.",,No,No,,,,,
SOURCE_TO_CONCEPT_MAP,source_code,Yes,varchar(50),"The source code being translated SOURCE_TO_CONCEPT_MAP,source_code,Yes,varchar(50),"The source code being translated
into a Standard Concept.",,No,No,,,,, into a Standard Concept.",,No,No,,,,,
SOURCE_TO_CONCEPT_MAP,source_concept_id,Yes,integer,"A foreign key to the Source SOURCE_TO_CONCEPT_MAP,source_concept_id,Yes,integer,"A foreign key to the Source
Concept that is being translated Concept that is being translated
into a Standard Concept.","This is either 0 or should be a number above 2 billion, which are the Concepts reserved for site-specific codes and mappings. ",No,Yes,CONCEPT,CONCEPT_ID,,, into a Standard Concept.","This is either 0 or should be a number above 2 billion, which are the Concepts reserved for site-specific codes and mappings. ",No,Yes,CONCEPT,CONCEPT_ID,,,
SOURCE_TO_CONCEPT_MAP,source_vocabulary_id,Yes,varchar(20),"A foreign key to the SOURCE_TO_CONCEPT_MAP,source_vocabulary_id,Yes,varchar(20),"A foreign key to the
VOCABULARY table defining the VOCABULARY table defining the
vocabulary of the source code that vocabulary of the source code that
is being translated to a Standard is being translated to a Standard
Concept.",,No,No,,,,, Concept.",,No,No,,,,,
SOURCE_TO_CONCEPT_MAP,source_code_description,No,varchar(255),"An optional description for the SOURCE_TO_CONCEPT_MAP,source_code_description,No,varchar(255),"An optional description for the
source code. This is included as a source code. This is included as a
convenience to compare the convenience to compare the
description of the source code to description of the source code to
the name of the concept.",,No,No,,,,, the name of the concept.",,No,No,,,,,
SOURCE_TO_CONCEPT_MAP,target_concept_id,Yes,integer,"The target Concept SOURCE_TO_CONCEPT_MAP,target_concept_id,Yes,integer,"The target Concept
to which the source code is being to which the source code is being
mapped.",,No,Yes,CONCEPT,CONCEPT_ID,,, mapped.",,No,Yes,CONCEPT,CONCEPT_ID,,,
SOURCE_TO_CONCEPT_MAP,target_vocabulary_id,Yes,varchar(20),The Vocabulary of the target Concept.,,No,Yes,VOCABULARY,VOCABULARY_ID,,, SOURCE_TO_CONCEPT_MAP,target_vocabulary_id,Yes,varchar(20),The Vocabulary of the target Concept.,,No,Yes,VOCABULARY,VOCABULARY_ID,,,
SOURCE_TO_CONCEPT_MAP,valid_start_date,Yes,date,"The date when the mapping SOURCE_TO_CONCEPT_MAP,valid_start_date,Yes,date,"The date when the mapping
instance was first recorded.",,No,No,,,,, instance was first recorded.",,No,No,,,,,
SOURCE_TO_CONCEPT_MAP,valid_end_date,Yes,date,"The date when the mapping SOURCE_TO_CONCEPT_MAP,valid_end_date,Yes,date,"The date when the mapping
instance became invalid because it instance became invalid because it
was deleted or superseded was deleted or superseded
(updated) by a new relationship. (updated) by a new relationship.
Default value is 31-Dec-2099.",,No,No,,,,, Default value is 31-Dec-2099.",,No,No,,,,,
SOURCE_TO_CONCEPT_MAP,invalid_reason,No,varchar(1),"Reason the mapping instance was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value.",,No,No,,,,, SOURCE_TO_CONCEPT_MAP,invalid_reason,No,varchar(1),"Reason the mapping instance was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value.",,No,No,,,,,
DRUG_STRENGTH,drug_concept_id,Yes,integer,The Concept representing the Branded Drug or Clinical Drug Product.,,No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_STRENGTH,drug_concept_id,Yes,integer,The Concept representing the Branded Drug or Clinical Drug Product.,,No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_STRENGTH,ingredient_concept_id,Yes,integer,The Concept representing the active ingredient contained within the drug product.,"Combination Drugs will have more than one record in this table, one for each active Ingredient.",No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_STRENGTH,ingredient_concept_id,Yes,integer,The Concept representing the active ingredient contained within the drug product.,"Combination Drugs will have more than one record in this table, one for each active Ingredient.",No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_STRENGTH,amount_value,No,float,The numeric value or the amount of active ingredient contained within the drug product.,,No,No,,,,, DRUG_STRENGTH,amount_value,No,float,The numeric value or the amount of active ingredient contained within the drug product.,,No,No,,,,,
DRUG_STRENGTH,amount_unit_concept_id,No,integer,The Concept representing the Unit of measure for the amount of active ingredient contained within the drug product. ,,No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_STRENGTH,amount_unit_concept_id,No,integer,The Concept representing the Unit of measure for the amount of active ingredient contained within the drug product. ,,No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_STRENGTH,numerator_value,No,float,The concentration of the active ingredient contained within the drug product.,,No,No,,,,, DRUG_STRENGTH,numerator_value,No,float,The concentration of the active ingredient contained within the drug product.,,No,No,,,,,
DRUG_STRENGTH,numerator_unit_concept_id,No,integer,The Concept representing the Unit of measure for the concentration of active ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_STRENGTH,numerator_unit_concept_id,No,integer,The Concept representing the Unit of measure for the concentration of active ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_STRENGTH,denominator_value,No,float,"The amount of total liquid (or other divisible product, such as ointment, gel, spray, etc.).",,No,No,,,,, DRUG_STRENGTH,denominator_value,No,float,"The amount of total liquid (or other divisible product, such as ointment, gel, spray, etc.).",,No,No,,,,,
DRUG_STRENGTH,denominator_unit_concept_id,No,integer,The Concept representing the denominator unit for the concentration of active ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_STRENGTH,denominator_unit_concept_id,No,integer,The Concept representing the denominator unit for the concentration of active ingredient.,,No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_STRENGTH,box_size,No,integer,The number of units of Clinical Branded Drug or Quantified Clinical or Branded Drug contained in a box as dispensed to the patient.,,No,No,,,,, DRUG_STRENGTH,box_size,No,integer,The number of units of Clinical Branded Drug or Quantified Clinical or Branded Drug contained in a box as dispensed to the patient.,,No,No,,,,,
DRUG_STRENGTH,valid_start_date,Yes,date,"The date when the Concept was first DRUG_STRENGTH,valid_start_date,Yes,date,"The date when the Concept was first
recorded. The default value is recorded. The default value is
<<<<<<< HEAD:inst/csv/OMOP_CDMv5.3_Field_Level.csv <<<<<<< HEAD:inst/csv/OMOP_CDMv5.3_Field_Level.csv
1-Jan-1970.",,No,No,,,,, 1-Jan-1970.",,No,No,,,,,
DRUG_STRENGTH,valid_end_date,Yes,date,The date when then Concept became invalid.,,No,No,,,,, DRUG_STRENGTH,valid_end_date,Yes,date,The date when then Concept became invalid.,,No,No,,,,,
DRUG_STRENGTH,invalid_reason,No,varchar(1),"Reason the concept was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value.",,No,No,,,,, DRUG_STRENGTH,invalid_reason,No,varchar(1),"Reason the concept was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value.",,No,No,,,,,
COHORT_DEFINITION,cohort_definition_id,Yes,integer,"This is the identifier given to the cohort, usually by the ATLAS application",,No,No,,,,, COHORT_DEFINITION,cohort_definition_id,Yes,integer,"This is the identifier given to the cohort, usually by the ATLAS application",,No,No,,,,,
COHORT_DEFINITION,cohort_definition_name,Yes,varchar(255),A short description of the cohort,,No,No,,,,, COHORT_DEFINITION,cohort_definition_name,Yes,varchar(255),A short description of the cohort,,No,No,,,,,
COHORT_DEFINITION,cohort_definition_description,No,varchar(MAX),A complete description of the cohort.,,No,No,,,,, COHORT_DEFINITION,cohort_definition_description,No,varchar(MAX),A complete description of the cohort.,,No,No,,,,,
COHORT_DEFINITION,definition_type_concept_id,Yes,integer,Type defining what kind of Cohort Definition the record represents and how the syntax may be executed.,,No,Yes,CONCEPT,CONCEPT_ID,,, COHORT_DEFINITION,definition_type_concept_id,Yes,integer,Type defining what kind of Cohort Definition the record represents and how the syntax may be executed.,,No,Yes,CONCEPT,CONCEPT_ID,,,
COHORT_DEFINITION,cohort_definition_syntax,No,varchar(MAX),Syntax or code to operationalize the Cohort Definition.,,No,No,,,,, COHORT_DEFINITION,cohort_definition_syntax,No,varchar(MAX),Syntax or code to operationalize the Cohort Definition.,,No,No,,,,,
COHORT_DEFINITION,subject_concept_id,Yes,integer,"This field contains a Concept that represents the domain of the subjects that are members of the cohort (e.g., Person, Provider, Visit).",,No,Yes,CONCEPT,CONCEPT_ID,,, COHORT_DEFINITION,subject_concept_id,Yes,integer,"This field contains a Concept that represents the domain of the subjects that are members of the cohort (e.g., Person, Provider, Visit).",,No,Yes,CONCEPT,CONCEPT_ID,,,
COHORT_DEFINITION,cohort_initiation_date,No,date,A date to indicate when the Cohort was initiated in the COHORT table.,,No,No,,,,, COHORT_DEFINITION,cohort_initiation_date,No,date,A date to indicate when the Cohort was initiated in the COHORT table.,,No,No,,,,,
ATTRIBUTE_DEFINITION,attribute_definition_id,Yes,integer,,,No,No,,,,, ATTRIBUTE_DEFINITION,attribute_definition_id,Yes,integer,,,No,No,,,,,
ATTRIBUTE_DEFINITION,attribute_name,Yes,varchar(255),,,No,No,,,,, ATTRIBUTE_DEFINITION,attribute_name,Yes,varchar(255),,,No,No,,,,,
ATTRIBUTE_DEFINITION,attribute_description,No,varchar(MAX),,,No,No,,,,, ATTRIBUTE_DEFINITION,attribute_description,No,varchar(MAX),,,No,No,,,,,
ATTRIBUTE_DEFINITION,attribute_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, ATTRIBUTE_DEFINITION,attribute_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
ATTRIBUTE_DEFINITION,attribute_syntax,No,varchar(MAX),,,No,No,,,,, ATTRIBUTE_DEFINITION,attribute_syntax,No,varchar(MAX),,,No,No,,,,,
1 cdmTableName cdmFieldName isRequired cdmDatatype userGuidance etlConventions isPrimaryKey isForeignKey fkTableName fkFieldName fkDomain fkClass unique DQ identifiers
2 PERSON person_id Yes integer It is assumed that every person with a different unique identifier is in fact a different person and should be treated independently. Any person linkage that needs to occur to uniquely identify Persons ought to be done prior to writing this table. This identifier can be the original id from the source data provided if it is an integer, otherwise it can be an autogenerated number. Yes No
3 PERSON gender_concept_id Yes integer This field is meant to capture the biological sex at birth of the Person. This field should not be used to study gender identity issues. Use the gender or sex value present in the data under the assumption that it is the biological sex at birth. If the source data captures gender identity it should be stored in the [OBSERVATION](https://ohdsi.github.io/CommonDataModel/cdm531.html#observation) table. [Accepted gender concepts](http://athena.ohdsi.org/search-terms/terms?domain=Gender&standardConcept=Standard&page=1&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID Gender
4 PERSON year_of_birth Yes integer Compute age using year_of_birth. For data sources with date of birth, the year should be extracted. For data sources where the year of birth is not available, the approximate year of birth could be derived based on age group categorization, if available. No No
5 PERSON month_of_birth No integer For data sources that provide the precise date of birth, the month should be extracted and stored in this field. No No
6 PERSON day_of_birth No integer For data sources that provide the precise date of birth, the day should be extracted and stored in this field. No No
7 PERSON birth_datetime No datetime This field is not required but highly encouraged. For data sources that provide the precise datetime of birth, that value should be stored in this field. If birth_datetime is not provided in the source, use the following logic to infer the date: If day_of_birth is null and month_of_birth is not null then use the first of the month in that year. If month_of_birth is null or if day_of_birth AND month_of_birth are both null and the person has records during their year of birth then use the date of the earliest record, otherwise use the 15th of June of that year. If time of birth is not given use midnight (00:00:0000). No No
8 PERSON race_concept_id Yes integer This field captures race or ethnic background of the person. Only use this field if you have information about race or ethnic background. The Vocabulary contains Concepts about the main races and ethnic backgrounds in a hierarchical system. Due to the imprecise nature of human races and ethnic backgrounds, this is not a perfect system. Mixed races are not supported. If a clear race or ethnic background cannot be established, use Concept_Id 0. [Accepted Race Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Race&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Race
9 PERSON ethnicity_concept_id Yes integer This field captures Ethnicity as defined by the Office of Management and Budget (OMB) of the US Government: it distinguishes only between "Hispanic" and "Not Hispanic". Races and ethnic backgrounds are not stored here. Only use this field if you have US-based data and a source of this information. Do not attempt to infer Ethnicity from the race or ethnic background of the Person. [Accepted ethnicity concepts](http://athena.ohdsi.org/search-terms/terms?domain=Ethnicity&standardConcept=Standard&page=1&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID Ethnicity
10 PERSON location_id No integer The location refers to the physical address of the person. This field should capture the last known location of the person. Put the location_id from the [LOCATION](https://ohdsi.github.io/CommonDataModel/cdm531.html#location) table here that represents the most granular location information for the person. This could represent anything from postal code or parts thereof, state, or county for example. Since many databases contain deidentified data, it is common that the precision of the location is reduced to prevent re-identification. This field should capture the last known location. No Yes LOCATION LOCATION_ID
11 PERSON provider_id No integer The Provider refers to the last known primary care provider (General Practitioner). Put the provider_id from the [PROVIDER](https://ohdsi.github.io/CommonDataModel/cdm531.html#provider) table of the last known general practitioner of the person. If there are multiple providers, it is up to the ETL to decide which to put here. No Yes PROVIDER PROVIDER_ID
12 PERSON care_site_id No integer The Care Site refers to where the Provider typically provides the primary care. No Yes CARE_SITE CARE_SITE_ID
13 PERSON person_source_value No varchar(50) Use this field to link back to persons in the source data. This is typically used for error checking of ETL logic. Some use cases require the ability to link back to persons in the source data. This field allows for the storing of the person value as it appears in the source. This field is not required but strongly recommended. No No
14 PERSON gender_source_value No varchar(50) This field is used to store the biological sex of the person from the source data. It is not intended for use in standard analytics but for reference only. Put the biological sex of the person as it appears in the source data. No No
15 PERSON gender_source_concept_id No integer Due to the small number of options, this tends to be zero. If the source data codes biological sex in a non-standard vocabulary, store the concept_id here. No Yes CONCEPT CONCEPT_ID
16 PERSON race_source_value No varchar(50) This field is used to store the race of the person from the source data. It is not intended for use in standard analytics but for reference only. Put the race of the person as it appears in the source data. No No
17 PERSON race_source_concept_id No integer Due to the small number of options, this tends to be zero. If the source data codes race in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
18 PERSON ethnicity_source_value No varchar(50) This field is used to store the ethnicity of the person from the source data. It is not intended for use in standard analytics but for reference only. If the person has an ethnicity other than the OMB standard of "Hispanic" or "Not Hispanic" store that value from the source data here. No No
19 PERSON ethnicity_source_concept_id No integer Due to the small number of options, this tends to be zero. If the source data codes ethnicity in an OMOP supported vocabulary, store the concept_id here. No Yes CONCEPT CONCEPT_ID
20 OBSERVATION_PERIOD observation_period_id Yes integer A Person can have multiple discrete Observation Periods which are identified by the Observation_Period_Id. Assign a unique observation_period_id to each discrete Observation Period for a Person. Yes No
21 OBSERVATION_PERIOD person_id Yes integer The Person ID of the PERSON record for which the Observation Period is recorded. No Yes PERSON PERSON_ID
22 OBSERVATION_PERIOD observation_period_start_date Yes date Use this date to determine the start date of the Observation Period. It is often the case that the idea of Observation Periods does not exist in source data. In those cases, the observation_period_start_date can be inferred as the earliest Event date available for the Person. In insurance claim data, the Observation Period can be considered as the time period the Person is enrolled with a payer. If a Person switches plans but stays with the same payer, and therefore capturing of data continues, that change would be captured in [PAYER_PLAN_PERIOD](https://ohdsi.github.io/CommonDataModel/cdm531.html#payer_plan_period). No No
23 OBSERVATION_PERIOD observation_period_end_date Yes date Use this date to determine the end date of the period for which we can assume that all events for a Person are recorded. It is often the case that the idea of Observation Periods does not exist in source data. In those cases, the observation_period_end_date can be inferred as the last Event date available for the Person. In insurance claim data, the Observation Period can be considered as the time period the Person is enrolled with a payer. No No
24 OBSERVATION_PERIOD period_type_concept_id Yes integer This field can be used to determine the provenance of the Observation Period as in whether the period was determined from an insurance enrollment file, EHR healthcare encounters, or other sources. Choose the observation_period_type_concept_id that best represents how the period was determined. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
25 VISIT_OCCURRENCE visit_occurrence_id Yes integer Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit. This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time. Yes No
26 VISIT_OCCURRENCE person_id Yes integer No Yes PERSON PERSON_ID
27 VISIT_OCCURRENCE visit_concept_id Yes integer This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain. Populate this field based on the kind of visit that took place for the person. For example this could be "Inpatient Visit", "Outpatient Visit", "Ambulatory Visit", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
28 VISIT_OCCURRENCE visit_start_date Yes date For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same. When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction. No No
29 VISIT_OCCURRENCE visit_start_datetime No datetime If no time is given for the start date of a visit, set it to midnight (00:00:0000). No No
30 VISIT_OCCURRENCE visit_end_date Yes date For inpatient visits the end date is typically the discharge date. Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them: - Outpatient Visit: visit_end_datetime = visit_start_datetime - Emergency Room Visit: visit_end_datetime = visit_start_datetime - Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs. For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 "Still patient" to identify the visit as incomplete. - All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date. No No
31 VISIT_OCCURRENCE visit_end_datetime No datetime If no time is given for the end date of a visit, set it to midnight (00:00:0000). No No
32 VISIT_OCCURRENCE visit_type_concept_id Yes Integer Use this field to understand the provenance of the visit record, or where the record comes from. Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
33 VISIT_OCCURRENCE provider_id No integer There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table. If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the [VISIT_DETAIL](https://ohdsi.github.io/CommonDataModel/cdm531.html#visit_detail) table. No Yes PROVIDER PROVIDER_ID
34 VISIT_OCCURRENCE care_site_id No integer This field provides information about the Care Site where the Visit took place. There should only be one Care Site associated with a Visit. No Yes CARE_SITE CARE_SITE_ID
35 VISIT_OCCURRENCE visit_source_value No varchar(50) This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.) If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created. No No
36 VISIT_OCCURRENCE visit_source_concept_id No integer If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
37 VISIT_OCCURRENCE admitting_source_concept_id No integer Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example. If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
38 VISIT_OCCURRENCE admitting_source_value No varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits. No No
39 VISIT_OCCURRENCE discharge_to_concept_id No integer Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example. If available, map the discharge_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
40 VISIT_OCCURRENCE discharge_to_source_value No varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more. No No
41 VISIT_OCCURRENCE preceding_visit_occurrence_id No integer Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between. This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a "following_visit_id". No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
42 VISIT_DETAIL visit_detail_id Yes integer Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail. This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time. Yes No
43 VISIT_DETAIL person_id Yes integer No Yes PERSON PERSON_ID
44 VISIT_DETAIL visit_detail_concept_id Yes integer This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain. Populate this field based on the kind of visit that took place for the person. For example this could be "Inpatient Visit", "Outpatient Visit", "Ambulatory Visit", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
45 VISIT_DETAIL visit_detail_start_date Yes date This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with. When populating VISIT_DETAIL_START_DATE, you should think about the patient experience to make decisions on how to define visits. Most likely this should be the date of the patient-provider interaction. No No
46 VISIT_DETAIL visit_detail_start_datetime No datetime If no time is given for the start date of a visit, set it to midnight (00:00:0000). No No
47 VISIT_DETAIL visit_detail_end_date Yes date This the end date of the patient-provider interaction. Visit Detail end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:<br> - Outpatient Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Emergency Room Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Inpatient Visit Detail: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Non-hospital institution Visit Details: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.<br> For Inpatient Visit Details ongoing at the date of ETL, put date of processing the data into visit_detai_end_datetime and visit_detail_type_concept_id with 32220 "Still patient" to identify the visit as incomplete. All other Visits Details: visit_detail_end_datetime = visit_detail_start_datetime. No No
48 VISIT_DETAIL visit_detail_end_datetime No datetime If no time is given for the end date of a visit, set it to midnight (00:00:0000). No No
49 VISIT_DETAIL visit_detail_type_concept_id Yes integer Use this field to understand the provenance of the visit detail record, or where the record comes from. Populate this field based on the provenance of the visit detail record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
50 VISIT_DETAIL provider_id No integer There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record. The additional providers associated to a Visit can be stored in this table where each VISIT_DETAIL record represents a different provider. No Yes PROVIDER PROVIDER_ID
51 VISIT_DETAIL care_site_id No integer This field provides information about the Care Site where the Visit Detail took place. There should only be one Care Site associated with a Visit Detail. No Yes CARE_SITE CARE_SITE_ID
52 VISIT_DETAIL visit_detail_source_value No varchar(50) This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.) If there is information about the kind of visit detail in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the VISIT_DETAIL_SOURCE_VALUE, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created. No No
53 VISIT_DETAIL visit_detail_source_concept_id No Integer If the VISIT_DETAIL_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
54 VISIT_DETAIL admitting_source_value No Varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits. No No
55 VISIT_DETAIL admitting_source_concept_id No Integer Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example. If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
56 VISIT_DETAIL discharge_to_source_value No Varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more. No No
57 VISIT_DETAIL discharge_to_concept_id No integer Use this field to determine where the patient was discharged to after a visit detail record. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example. If available, map the DISCHARGE_TO_SOURCE_VALUE to a Standard Concept in the Visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
58 VISIT_DETAIL preceding_visit_detail_id No integer Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between. The PRECEDING_VISIT_DETAIL_ID can be used to link a visit immediately preceding the current Visit Detail. Note this is not symmetrical, and there is no such thing as a "following_visit_id". No Yes VISIT_DETAIL VISIT_DETAIL_ID
59 VISIT_DETAIL visit_detail_parent_id No integer Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship. If there are multiple nested levels to how Visits are represented in the source, the VISIT_DETAIL_PARENT_ID can be used to record this relationship. No Yes VISIT_DETAIL VISIT_DETAIL_ID
60 VISIT_DETAIL visit_occurrence_id Yes integer Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE. Put the VISIT_OCCURRENCE_ID that subsumes the VISIT_DETAIL record here. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
61 CONDITION_OCCURRENCE condition_occurrence_id Yes integer The unique key given to a condition record for a person. Refer to the ETL for how duplicate conditions during the same visit were handled. Each instance of a condition present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same condition within the same visit. It is valid to keep these duplicates and assign them individual, unique, CONDITION_OCCURRENCE_IDs, though it is up to the ETL how they should be handled. Yes No
62 CONDITION_OCCURRENCE person_id Yes integer The PERSON_ID of the PERSON for whom the condition is recorded. No Yes PERSON PERSON_ID
63 CONDITION_OCCURRENCE condition_concept_id Yes integer The CONDITION_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 value which represents a condition The CONCEPT_ID that the CONDITION_SOURCE_VALUE maps to. Only records whose source values map to concepts with a domain of "Condition" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Condition
64 CONDITION_OCCURRENCE condition_start_date Yes date Use this date to determine the start date of the condition Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE. No No
65 CONDITION_OCCURRENCE condition_start_datetime No datetime If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) No No
66 CONDITION_OCCURRENCE condition_end_date No date Use this date to determine the end date of the condition Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE. No No
67 CONDITION_OCCURRENCE condition_end_datetime No datetime If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) No No
68 CONDITION_OCCURRENCE condition_type_concept_id Yes integer This field can be used to determine the provenance of the Condition record, as in whether the condition was from an EHR system, insurance claim, registry, or other sources. Choose the CONDITION_TYPE_CONCEPT_ID that best represents the provenance of the record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
69 CONDITION_OCCURRENCE condition_status_concept_id No integer This concept represents the point during the visit the diagnosis was given (admitting diagnosis, final diagnosis), whether the diagnosis was determined due to laboratory findings, if the diagnosis was exclusionary, or if it was a preliminary diagnosis, among others. Choose the Concept in the Condition Status domain that best represents the point during the visit when the diagnosis was given. These can include admitting diagnosis, principal diagnosis, and secondary diagnosis. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition+Status&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Condition Status
70 CONDITION_OCCURRENCE stop_reason No varchar(20) The Stop Reason indicates why a Condition is no longer valid with respect to the purpose within the source data. Note that a Stop Reason does not necessarily imply that the condition is no longer occurring. 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. No No
71 CONDITION_OCCURRENCE provider_id No integer The provider associated with condition record, e.g. the provider who made the diagnosis or the provider who recorded the symptom. 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 admitting vs attending physician on an EHR record. No Yes PROVIDER PROVIDER_ID
72 CONDITION_OCCURRENCE visit_occurrence_id No integer The visit during which the condition occurred. Depending on the structure of the source data, this may have to be determined based on dates. If a CONDITION_START_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the CONDITION_OCCURRENCE record. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
73 CONDITION_OCCURRENCE visit_detail_id No integer The VISIT_DETAIL record during which the condition occurred. For example, if the person was in the ICU at the time of the diagnosis 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. No Yes VISIT_DETAIL VISIT_DETAIL_ID
74 CONDITION_OCCURRENCE condition_source_value No varchar(50) This field houses the verbatim value from the source data representing the condition that occurred. For example, this could be an ICD10 or Read code. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
75 CONDITION_OCCURRENCE condition_source_concept_id No integer This is the concept representing the condition 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 Condition necessary for a given analytic use case. Consider using CONDITION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the CONDITION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
76 CONDITION_OCCURRENCE condition_status_source_value No varchar(50) This field houses the verbatim value from the source data representing the condition status. 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 diagnosis was given to a patient. This source value is mapped to a standard concept which is stored in the CONDITION_STATUS_CONCEPT_ID field. No No
77 DRUG_EXPOSURE drug_exposure_id Yes integer 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. Yes No
78 DRUG_EXPOSURE person_id Yes integer The PERSON_ID of the PERSON for whom the drug dispensing or administration is recorded. This may be a system generated code. No Yes PERSON PERSON_ID
79 DRUG_EXPOSURE drug_concept_id Yes integer 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](https://athena.ohdsi.org/search-terms/terms?domain=Drug&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Drug
80 DRUG_EXPOSURE drug_exposure_start_date Yes 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. No No
81 DRUG_EXPOSURE drug_exposure_start_datetime No 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) No No
82 DRUG_EXPOSURE drug_exposure_end_date Yes 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:<br><br> 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](https://ohdsi.github.io/CommonDataModel/drug_dose.html) No No
83 DRUG_EXPOSURE drug_exposure_end_datetime No 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) No No
84 DRUG_EXPOSURE verbatim_end_date No 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. No No
85 DRUG_EXPOSURE drug_type_concept_id Yes integer 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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
86 DRUG_EXPOSURE stop_reason No varchar(20) 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. No No
87 DRUG_EXPOSURE refills No integer 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. No No
88 DRUG_EXPOSURE quantity No float 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](https://ohdsi.github.io/CommonDataModel/drug_dose.html) for more information. No No
89 DRUG_EXPOSURE days_supply No integer 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. No No
90 DRUG_EXPOSURE sig No varchar(MAX) 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. No No
91 DRUG_EXPOSURE route_concept_id No integer The standard CONCEPT_ID that the ROUTE_SOURCE_VALUE maps to in the route domain. No Yes CONCEPT CONCEPT_ID Route
92 DRUG_EXPOSURE lot_number No varchar(50) No No
93 DRUG_EXPOSURE provider_id No integer 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. No Yes PROVIDER PROVIDER_ID
94 DRUG_EXPOSURE visit_occurrence_id No integer The Visit during which the drug was prescribed, administered or dispensed. To populate this field drug exposures must be explicitly initiated in the visit. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
95 DRUG_EXPOSURE visit_detail_id No integer 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. No Yes VISIT_DETAIL VISIT_DETAIL_ID
96 DRUG_EXPOSURE drug_source_value No varchar(50) 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. No No
97 DRUG_EXPOSURE drug_source_concept_id No integer 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. No Yes CONCEPT CONCEPT_ID
98 DRUG_EXPOSURE route_source_value No varchar(50) 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. No No
99 DRUG_EXPOSURE dose_unit_source_value No varchar(50) 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. No No
100 PROCEDURE_OCCURRENCE procedure_occurrence_id Yes integer The unique key given to a procedure record for a person. Refer to the ETL for how duplicate procedures during the same visit were handled. Each instance of a procedure occurrence in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same procedure within the same visit. It is valid to keep these duplicates and assign them individual, unique, PROCEDURE_OCCURRENCE_IDs, though it is up to the ETL how they should be handled. Yes No
101 PROCEDURE_OCCURRENCE person_id Yes integer The PERSON_ID of the PERSON for whom the procedure is recorded. This may be a system generated code. No Yes PERSON PERSON_ID
102 PROCEDURE_OCCURRENCE procedure_concept_id Yes integer The PROCEDURE_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 value which represents a procedure The CONCEPT_ID that the PROCEDURE_SOURCE_VALUE maps to. Only records whose source values map to standard concepts with a domain of "Procedure" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Procedure&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Procedure
103 PROCEDURE_OCCURRENCE procedure_date Yes date Use this date to determine the date the procedure occurred. If a procedure lasts more than a day, then it should be recorded as a separate record for each day the procedure occurred, this logic is in lieu of the procedure_end_date, which will be added in a future version of the CDM. No No
104 PROCEDURE_OCCURRENCE procedure_datetime No 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) No No
105 PROCEDURE_OCCURRENCE procedure_type_concept_id Yes integer This field can be used to determine the provenance of the Procedure record, as in whether the procedure was from an EHR system, insurance claim, registry, or other sources. Choose the PROCEDURE_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. If a procedure is recorded as an EHR encounter, the PROCEDURE_TYPE_CONCEPT would be 'EHR encounter record'. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
106 PROCEDURE_OCCURRENCE modifier_concept_id No integer The modifiers are intended to give additional information about the procedure but as of now the vocabulary is under review. It is up to the ETL to choose how to map modifiers if they exist in source data. These concepts are typically distinguished by 'Modifier' concept classes (e.g., 'CPT4 Modifier' as part of the 'CPT4' vocabulary). If there is more than one modifier on a record, one should be chosen that pertains to the procedure rather than provider. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?conceptClass=CPT4+Modifier&conceptClass=HCPCS+Modifier&vocabulary=CPT4&vocabulary=HCPCS&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
107 PROCEDURE_OCCURRENCE quantity No integer If the quantity value is omitted, a single procedure is assumed. If a Procedure has a quantity of '0' in the source, this should default to '1' in the ETL. If there is a record in the source it can be assumed the exposure occurred at least once No No
108 PROCEDURE_OCCURRENCE provider_id No integer The provider associated with the procedure record, e.g. the provider who performed the Procedure. 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 admitting vs attending physician on an EHR record. No No PROVIDER PROVIDER_ID
109 PROCEDURE_OCCURRENCE visit_occurrence_id No integer The visit during which the procedure occurred. Depending on the structure of the source data, this may have to be determined based on dates. If a PROCEDURE_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the PROCEDURE_OCCURRENCE record. No No VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
110 PROCEDURE_OCCURRENCE visit_detail_id No integer The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure 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. No No VISIT_DETAIL VISIT_DETAIL_ID
111 PROCEDURE_OCCURRENCE procedure_source_value No varchar(50) This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code. Use this value to look up the source concept id and then map the source concept id to a standard concept id. No No
112 PROCEDURE_OCCURRENCE procedure_source_concept_id No integer This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No No CONCEPT CONCEPT_ID
113 PROCEDURE_OCCURRENCE modifier_source_value No varchar(50) The original modifier code from the source is stored here for reference. No No
114 DEVICE_EXPOSURE device_exposure_id Yes integer The unique key given to records a person's exposure to a foreign physical object or instrument. Each instance of an exposure to a foreign object or device present in the source data should be assigned this unique key. Yes No
115 DEVICE_EXPOSURE person_id Yes integer No Yes PERSON PERSON_ID
116 DEVICE_EXPOSURE device_concept_id Yes integer The DEVICE_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 foreign object or instrument the person was exposed to. The CONCEPT_ID that the DEVICE_SOURCE_VALUE maps to. No Yes CONCEPT CONCEPT_ID Device
117 DEVICE_EXPOSURE device_exposure_start_date Yes date Use this date to determine the start date of the device record. Valid entries include a start date of a procedure to implant a device, the date of a prescription for a device, or the date of device administration. No No
118 DEVICE_EXPOSURE device_exposure_start_datetime No 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) No No
119 DEVICE_EXPOSURE device_exposure_end_date No date The DEVICE_EXPOSURE_END_DATE denotes the day the device exposure ended for the patient, if given. Put the end date or discontinuation date as it appears from the source data or leave blank if unavailable. No No
120 DEVICE_EXPOSURE device_exposure_end_datetime No datetime If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) No No
121 DEVICE_EXPOSURE device_type_concept_id Yes integer You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. 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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
122 DEVICE_EXPOSURE unique_device_id No varchar(50) This is the Unique Device Identification number for devices regulated by the FDA, if given. For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field. No No
123 DEVICE_EXPOSURE quantity No integer No No
124 DEVICE_EXPOSURE provider_id No integer The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device. 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. No Yes PROVIDER PROVIDER_ID
125 DEVICE_EXPOSURE visit_occurrence_id No integer The Visit during which the device was prescribed or given. To populate this field device exposures must be explicitly initiated in the visit. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
126 DEVICE_EXPOSURE visit_detail_id No integer The Visit Detail during which the device was prescribed or given. To populate this field device exposures must be explicitly initiated in the visit detail record. No Yes VISIT_DETAIL VISIT_DETAIL_ID
127 DEVICE_EXPOSURE device_source_value No varchar(50) This field houses the verbatim value from the source data representing the device exposure that occurred. For example, this could be an NDC or Gemscript code. This code is mapped to a Standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
128 DEVICE_EXPOSURE device_source_concept_id No integer This is the concept representing the device 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 Device necessary for a given analytic use case. Consider using DEVICE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the DEVICE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
129 MEASUREMENT measurement_id Yes integer The unique key given to a Measurement record for a Person. Refer to the ETL for how duplicate Measurements during the same Visit were handled. Each instance of a measurement present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same measurement within the same visit. It is valid to keep these duplicates and assign them individual, unique, MEASUREMENT_IDs, though it is up to the ETL how they should be handled. Yes No
130 MEASUREMENT person_id Yes integer The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code. No Yes PERSON PERSON_ID
131 MEASUREMENT measurement_concept_id Yes integer The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies. The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of "Measurement" should go in this table. No Yes CONCEPT CONCEPT_ID Measurement
132 MEASUREMENT measurement_date Yes date Use this date to determine the date of the measurement. If there are multiple dates in the source data associated with a record such as order_date, draw_date, and result_date, choose the one that is closest to the date the sample was drawn from the patient. No No
133 MEASUREMENT measurement_datetime No 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) No No
134 MEASUREMENT measurement_time No varchar(10) This is present for backwards compatibility and will be deprecated in an upcoming version. No No
135 MEASUREMENT measurement_type_concept_id Yes integer This field can be used to determine the provenance of the Measurement record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources. Choose the MEASUREMENT_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
136 MEASUREMENT operator_concept_id No integer The meaning of Concept [4172703](https://athena.ohdsi.org/search-terms/terms/4172703) for '=' is identical to omission of a OPERATOR_CONCEPT_ID value. Since the use of this field is rare, it's important when devising analyses to not to forget testing for the content of this field for values different from =. Operators are <, <=, =, >=, > and these concepts belong to the 'Meas Value Operator' domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Meas+Value+Operator&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
137 MEASUREMENT value_as_number No float This is the numerical value of the Result of the Measurement, if available. Note that measurements such as blood pressures will be split into their component parts i.e. one record for systolic, one record for diastolic. If there is a negative value coming from the source, set the VALUE_AS_NUMBER to NULL, with the exception of the following Measurements (listed as LOINC codes):<br>- [1925-7](https://athena.ohdsi.org/search-terms/terms/3003396) Base excess in Arterial blood by calculation - [1927-3](https://athena.ohdsi.org/search-terms/terms/3002032) Base excess in Venous blood by calculation - [8632-2](https://athena.ohdsi.org/search-terms/terms/3006277) QRS-Axis - [11555-0](https://athena.ohdsi.org/search-terms/terms/3012501) Base excess in Blood by calculation - [1926-5](https://athena.ohdsi.org/search-terms/terms/3003129) Base excess in Capillary blood by calculation - [28638-5](https://athena.ohdsi.org/search-terms/terms/3004959) Base excess in Arterial cord blood by calculation [28639-3](https://athena.ohdsi.org/search-terms/terms/3007435) Base excess in Venous cord blood by calculation No No
138 MEASUREMENT value_as_concept_id No integer If the raw data gives a categorial result for measurements those values are captured and mapped to standard concepts in the 'Meas Value' domain. If the raw data provides categorial results as well as continuous results for measurements, it is a valid ETL choice to preserve both values. The continuous value should go in the VALUE_AS_NUMBER field and the categorical value should be mapped to a standard concept in the 'Meas Value' domain and put in the VALUE_AS_CONCEPT_ID field. This is also the destination for the 'Maps to value' relationship. No Yes CONCEPT CONCEPT_ID
139 MEASUREMENT unit_concept_id No integer There is currently no recommended unit for individual measurements, i.e. it is not mandatory to represent Hemoglobin a1C measurements as a percentage. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. There is no standardization requirement for units associated with MEASUREMENT_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. No Yes CONCEPT CONCEPT_ID Unit
140 MEASUREMENT range_low No float Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given. If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided. No No
141 MEASUREMENT range_high No float Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given. If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided. No No
142 MEASUREMENT provider_id No integer The provider associated with measurement record, e.g. the provider who ordered the test or the provider who recorded the result. 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 admitting vs attending physician on an EHR record. No Yes PROVIDER PROVIDER_ID
143 MEASUREMENT visit_occurrence_id No integer The visit during which the Measurement occurred. Depending on the structure of the source data, this may have to be determined based on dates. If a MEASUREMENT_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the measurement record. If a measurement is related to a visit explicitly in the source data, it is possible that the result date of the Measurement falls outside of the bounds of the Visit dates. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
144 MEASUREMENT visit_detail_id No integer The VISIT_DETAIL record during which the Measurement occurred. For example, if the Person was in the ICU at the time 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. No Yes VISIT_DETAIL VISIT_DETAIL_ID
145 MEASUREMENT measurement_source_value No varchar(50) This field houses the verbatim value from the source data representing the Measurement that occurred. For example, this could be an ICD10 or Read code. This code is mapped to a Standard Measurement Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
146 MEASUREMENT measurement_source_concept_id No integer This is the concept representing the MEASUREMENT_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 Measurement necessary for a given analytic use case. Consider using MEASUREMENT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the MEASUREMENT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
147 MEASUREMENT unit_source_value No varchar(50) This field houses the verbatim value from the source data representing the unit of the Measurement that occurred. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
148 MEASUREMENT value_source_value No varchar(50) This field houses the verbatim result value of the Measurement from the source data . If both a continuous and categorical result are given in the source data such that both VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are both included, store the verbatim value that was mapped to VALUE_AS_CONCEPT_ID here. No No
149 OBSERVATION observation_id Yes integer The unique key given to an Observation record for a Person. Refer to the ETL for how duplicate Observations during the same Visit were handled. Each instance of an observation present in the source data should be assigned this unique key. Yes No
150 OBSERVATION person_id Yes integer The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code. No Yes PERSON PERSON_ID
151 OBSERVATION observation_concept_id Yes integer The OBSERVATION_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies. The CONCEPT_ID that the OBSERVATION_SOURCE_CONCEPT_ID maps to. There is no specified domain that the Concepts in this table must adhere to. The only rule is that records with Concepts in the Condition, Procedure, Drug, Measurement, or Device domains MUST go to the corresponding table. No Yes CONCEPT CONCEPT_ID
152 OBSERVATION observation_date Yes date The date of the Observation. Depending on what the Observation represents this could be the date of a lab test, the date of a survey, or the date a patient's family history was taken. For some observations the ETL may need to make a choice as to which date to choose. No No
153 OBSERVATION observation_datetime No datetime If no time is given set to midnight (00:00:00). No No
154 OBSERVATION observation_type_concept_id Yes integer This field can be used to determine the provenance of the Observation record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources. Choose the OBSERVATION_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
155 OBSERVATION value_as_number No float This is the numerical value of the Result of the Observation, if applicable and available. It is not expected that all Observations will have numeric results, rather, this field is here to house values should they exist. No No
156 OBSERVATION value_as_string No varchar(60) This is the categorical value of the Result of the Observation, if applicable and available. No No
157 OBSERVATION value_as_concept_id No Integer It is possible that some records destined for the Observation table have two clinical ideas represented in one source code. This is common with ICD10 codes that describe a family history of some Condition, for example. In OMOP the Vocabulary breaks these two clinical ideas into two codes; one becomes the OBSERVATION_CONCEPT_ID and the other becomes the VALUE_AS_CONCEPT_ID. It is important when using the Observation table to keep this possibility in mind and to examine the VALUE_AS_CONCEPT_ID field for relevant information. Note that the value of VALUE_AS_CONCEPT_ID may be provided through mapping from a source Concept which contains the content of the Observation. In those situations, the CONCEPT_RELATIONSHIP table in addition to the 'Maps to' record contains a second record with the relationship_id set to 'Maps to value'. For example, ICD10 [Z82.4](https://athena.ohdsi.org/search-terms/terms/45581076) 'Family history of ischaemic heart disease and other diseases of the circulatory system' has a 'Maps to' relationship to [4167217](https://athena.ohdsi.org/search-terms/terms/4167217) 'Family history of clinical finding' as well as a 'Maps to value' record to [134057](https://athena.ohdsi.org/search-terms/terms/134057) 'Disorder of cardiovascular system'. No Yes CONCEPT CONCEPT_ID
158 OBSERVATION qualifier_concept_id No integer This field contains all attributes specifying the clinical fact further, such as as degrees, severities, drug-drug interaction alerts etc. Use your best judgement as to what Concepts to use here and if they are necessary to accurately represent the clinical record. There is no restriction on the domain of these Concepts, they just need to be Standard. No Yes CONCEPT CONCEPT_ID
159 OBSERVATION unit_concept_id No integer There is currently no recommended unit for individual observation concepts. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. There is no standardization requirement for units associated with OBSERVATION_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. No Yes CONCEPT CONCEPT_ID Unit
160 OBSERVATION provider_id No integer The provider associated with the observation record, e.g. the provider who ordered the test or the provider who recorded the result. 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 admitting vs attending physician on an EHR record. No Yes PROVIDER PROVIDER_ID
161 OBSERVATION visit_occurrence_id No integer The visit during which the Observation occurred. Depending on the structure of the source data, this may have to be determined based on dates. If an OBSERVATION_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the observation record. If an observation is related to a visit explicitly in the source data, it is possible that the result date of the Observation falls outside of the bounds of the Visit dates. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
162 OBSERVATION visit_detail_id No integer The VISIT_DETAIL record during which the Observation occurred. For example, if the Person was in the ICU at the time 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. No Yes VISIT_DETAIL VISIT_DETAIL_ID
163 OBSERVATION observation_source_value No varchar(50) This field houses the verbatim value from the source data representing the Observation that occurred. For example, this could be an ICD10 or Read code. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
164 OBSERVATION observation_source_concept_id No integer This is the concept representing the OBSERVATION_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 Observation necessary for a given analytic use case. Consider using OBSERVATION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the OBSERVATION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
165 OBSERVATION unit_source_value No varchar(50) This field houses the verbatim value from the source data representing the unit of the Observation that occurred. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
166 OBSERVATION qualifier_source_value No varchar(50) This field houses the verbatim value from the source data representing the qualifier of the Observation that occurred. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
167 DEATH person_id Yes integer No Yes PERSON PERSON_ID
168 DEATH death_date Yes date The date the person was deceased. If the precise date include day or month is not known or not allowed, December is used as the default month, and the last day of the month the default day. No No
169 DEATH death_datetime No datetime If not available set time to midnight (00:00:00) No No
170 DEATH death_type_concept_id No integer This is the provenance of the death record, i.e., where it came from. It is possible that an administrative claims database would source death information from a government file so do not assume the Death Type is the same as the Visit Type, etc. Use the type concept that be reflects the source of the death record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
171 DEATH cause_concept_id No integer This is the Standard Concept representing the Person's cause of death, if available. There is no specified domain for this concept, just choose the Standard Concept Id that best represents the person's cause of death. No Yes CONCEPT CONCEPT_ID
172 DEATH cause_source_value No varchar(50) If available, put the source code representing the cause of death here. No No
173 DEATH cause_source_concept_id No integer If the cause of death was coded using a Vocabulary present in the OMOP Vocabularies put the CONCEPT_ID representing the cause of death here. No Yes CONCEPT CONCEPT_ID
174 NOTE note_id Yes integer A unique identifier for each note. Yes No
175 NOTE person_id Yes integer No Yes PERSON PERSON_ID
176 NOTE note_date Yes date The date the note was recorded. No No
177 NOTE note_datetime No datetime If time is not given set the time to midnight. No No
178 NOTE note_type_concept_id Yes integer The provenance of the note. Most likely this will be EHR. Put the source system of the note, as in EHR record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
179 NOTE note_class_concept_id Yes integer A Standard Concept Id representing the HL7 LOINC Document Type Vocabulary classification of the note. Map the note classification to a Standard Concept. For more information see the ETL Conventions in the description of the NOTE table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&conceptClass=Doc+Kind&conceptClass=Doc+Role&conceptClass=Doc+Setting&conceptClass=Doc+Subject+Matter&conceptClass=Doc+Type+of+Service&domain=Meas+Value&page=1&pageSize=15&query=). This Concept can alternatively be represented by concepts with the relationship 'Kind of (LOINC)' to [706391](https://athena.ohdsi.org/search-terms/terms/706391) (Note). No Yes CONCEPT CONCEPT_ID
180 NOTE note_title No varchar(250) The title of the note. No No
181 NOTE note_text Yes varchar(MAX) The content of the note. No No
182 NOTE encoding_concept_id Yes integer This is the Concept representing the character encoding type. Put the Concept Id that represents the encoding character type here. Currently the only option is UTF-8 ([32678](https://athena.ohdsi.org/search-terms/terms/32678)). It the note is encoded in any other type, like ASCII then put 0. No Yes CONCEPT CONCEPT_ID
183 NOTE language_concept_id Yes integer The language of the note. Use Concepts that are descendants of the concept [4182347](https://athena.ohdsi.org/search-terms/terms/4182347) (World Languages). No Yes CONCEPT CONCEPT_ID
184 NOTE provider_id No integer The Provider who wrote the note. The ETL may need to make a determination on which provider to put here. No Yes PROVIDER PROVIDER_ID
185 NOTE visit_occurrence_id No integer The Visit during which the note was written. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
186 NOTE visit_detail_id No integer The Visit Detail during which the note was written. No Yes VISIT_DETAIL VISIT_DETAIL_ID
187 NOTE note_source_value No varchar(50) The source value mapped to the NOTE_CLASS_CONCEPT_ID. No No
188 NOTE_NLP note_nlp_id Yes integer A unique identifier for the NLP record. Yes No
189 NOTE_NLP note_id Yes integer This is the NOTE_ID for the NOTE record the NLP record is associated to. No No
190 NOTE_NLP section_concept_id No integer The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957). No Yes CONCEPT CONCEPT_ID
191 NOTE_NLP snippet No varchar(250) A small window of text surrounding the term No No
192 NOTE_NLP offset No varchar(50) Character offset of the extracted term in the input note No No
193 NOTE_NLP lexical_variant Yes varchar(250) Raw text extracted from the NLP tool. No No
194 NOTE_NLP note_nlp_concept_id No integer No Yes CONCEPT CONCEPT_ID
195 NOTE_NLP note_nlp_source_concept_id No integer No Yes CONCEPT CONCEPT_ID
196 NOTE_NLP nlp_system No varchar(250) Name and version of the NLP system that extracted the term. Useful for data provenance. No No
197 NOTE_NLP nlp_date Yes date The date of the note processing. No No
198 NOTE_NLP nlp_datetime No datetime The date and time of the note processing. No No
199 NOTE_NLP term_exists No varchar(1) Term_exists is defined as a flag that indicates if the patient actually has or had the condition. Any of the following modifiers would make Term_exists false: Negation = true Subject = [anything other than the patient] Conditional = true/li> Rule_out = true Uncertain = very low certainty or any lower certainties A complete lack of modifiers would make Term_exists true. No No
200 NOTE_NLP term_temporal No varchar(50) Term_temporal is to indicate if a condition is present or just in the past. The following would be past:<br><br> - History = true - Concept_date = anything before the time of the report No No
201 NOTE_NLP term_modifiers No varchar(2000) For the modifiers that are there, they would have to have these values:<br><br> - Negation = false - Subject = patient - Conditional = false - Rule_out = false - Uncertain = true or high or moderate or even low (could argue about low). Term_modifiers will concatenate all modifiers for different types of entities (conditions, drugs, labs etc) into one string. Lab values will be saved as one of the modifiers. No No
202 SPECIMEN specimen_id Yes integer Unique identifier for each specimen. Yes No
203 SPECIMEN person_id Yes integer The person from whom the specimen is collected. No Yes PERSON PERSON_ID
204 SPECIMEN specimen_concept_id Yes integer The standard CONCEPT_ID that the SPECIMEN_SOURCE_VALUE maps to in the specimen domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Specimen&standardConcept=Standard&page=1&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID
205 SPECIMEN specimen_type_concept_id Yes integer Put the source of the specimen record, as in an EHR system. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
206 SPECIMEN specimen_date Yes date The date the specimen was collected. No No
207 SPECIMEN specimen_datetime No datetime No No
208 SPECIMEN quantity No float The amount of specimen collected from the person. No No
209 SPECIMEN unit_concept_id No integer The unit for the quantity of the specimen. Map the UNIT_SOURCE_VALUE to a Standard Concept in the Unit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Unit&standardConcept=Standard&page=1&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID
210 SPECIMEN anatomic_site_concept_id No integer This is the site on the body where the specimen is from. Map the ANATOMIC_SITE_SOURCE_VALUE to a Standard Concept in the Spec Anatomic Site domain. This should be coded at the lowest level of granularity [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Spec+Anatomic+Site&conceptClass=Body+Structure&page=4&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID
211 SPECIMEN disease_status_concept_id No integer No Yes CONCEPT CONCEPT_ID
212 SPECIMEN specimen_source_id No varchar(50) This is the identifier for the specimen from the source system. No No
213 SPECIMEN specimen_source_value No varchar(50) No No
214 SPECIMEN unit_source_value No varchar(50) This unit for the quantity of the specimen, as represented in the source. No No
215 SPECIMEN anatomic_site_source_value No varchar(50) This is the site on the body where the specimen was taken from, as represented in the source. No No
216 SPECIMEN disease_status_source_value No varchar(50) No No
218 FACT_RELATIONSHIP fact_id_1 Yes integer No No
219 FACT_RELATIONSHIP domain_concept_id_2 Yes integer No Yes CONCEPT CONCEPT_ID
220 FACT_RELATIONSHIP fact_id_2 Yes integer No No
221 FACT_RELATIONSHIP relationship_concept_id Yes integer No Yes CONCEPT CONCEPT_ID
222 LOCATION location_id Yes integer The unique key given to a unique Location. Each instance of a Location in the source data should be assigned this unique key. Yes No
223 LOCATION address_1 No varchar(50) This is the first line of the address. No No
224 LOCATION address_2 No varchar(50) This is the second line of the address No No
225 LOCATION city No varchar(50) No No
226 LOCATION state No varchar(2) No No
227 LOCATION zip No varchar(9) Zip codes are handled as strings of up to 9 characters length. For US addresses, these represent either a 3-digit abbreviated Zip code as provided by many sources for patient protection reasons, the full 5-digit Zip or the 9-digit (ZIP + 4) codes. Unless for specific reasons analytical methods should expect and utilize only the first 3 digits. For international addresses, different rules apply. No No
228 LOCATION county No varchar(20) No No
229 LOCATION location_source_value No varchar(50) Put the verbatim value for the location here, as it shows up in the source. No No
230 CARE_SITE care_site_id Yes integer Assign an id to each unique combination of location_id and place_of_service_source_value Yes No
231 CARE_SITE care_site_name No varchar(255) The name of the care_site as it appears in the source data No No
232 CARE_SITE place_of_service_concept_id No integer This is a high-level way of characterizing a Care Site. Typically, however, Care Sites can provide care in multiple settings (inpatient, outpatient, etc.) and this granularity should be reflected in the visit. Choose the concept in the visit domain that best represents the setting in which healthcare is provided in the Care Site. If most visits in a Care Site are Inpatient, then the place_of_service_concept_id should represent Inpatient. If information is present about a unique Care Site (e.g. Pharmacy) then a Care Site record should be created. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=2&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
233 CARE_SITE location_id No integer The location_id from the LOCATION table representing the physical location of the care_site. No Yes LOCATION LOCATION_ID
234 CARE_SITE care_site_source_value No varchar(50) The identifier of the care_site as it appears in the source data. This could be an identifier separate from the name of the care_site. No No
235 CARE_SITE place_of_service_source_value No varchar(50) Put the place of service of the care_site as it appears in the source data. No No
236 PROVIDER provider_id Yes integer It is assumed that every provider with a different unique identifier is in fact a different person and should be treated independently. This identifier can be the original id from the source data provided it is an integer, otherwise it can be an autogenerated number. Yes No
237 PROVIDER provider_name No varchar(255) This field is not necessary as it is not necessary to have the actual identity of the Provider. Rather, the idea is to uniquely and anonymously identify providers of care across the database. No No
238 PROVIDER npi No varchar(20) This is the National Provider Number issued to health care providers in the US by the Centers for Medicare and Medicaid Services (CMS). No No
239 PROVIDER dea No varchar(20) This is the identifier issued by the DEA, a US federal agency, that allows a provider to write prescriptions for controlled substances. No No
240 PROVIDER specialty_concept_id No integer This field either represents the most common specialty that occurs in the data or the most specific concept that represents all specialties listed, should the provider have more than one. This includes physician specialties such as internal medicine, emergency medicine, etc. and allied health professionals such as nurses, midwives, and pharmacists. If a Provider has more than one Specialty, there are two options: 1. Choose a concept_id which is a common ancestor to the multiple specialties, or, 2. Choose the specialty that occurs most often for the provider. Concepts in this field should be Standard with a domain of Provider. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Provider&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
241 PROVIDER care_site_id No integer This is the CARE_SITE_ID for the location that the provider primarily practices in. If a Provider has more than one Care Site, the main or most often exerted CARE_SITE_ID should be recorded. No Yes CARE_SITE CARE_SITE_ID
242 PROVIDER year_of_birth No integer No No
243 PROVIDER gender_concept_id No integer This field represents the recorded gender of the provider in the source data. If given, put a concept from the gender domain representing the recorded gender of the provider. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Gender&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Gender
244 PROVIDER provider_source_value No varchar(50) Use this field to link back to providers in the source data. This is typically used for error checking of ETL logic. Some use cases require the ability to link back to providers in the source data. This field allows for the storing of the provider identifier as it appears in the source. No No
245 PROVIDER specialty_source_value No varchar(50) This is the kind of provider or specialty as it appears in the source data. This includes physician specialties such as internal medicine, emergency medicine, etc. and allied health professionals such as nurses, midwives, and pharmacists. Put the kind of provider as it appears in the source data. This field is up to the discretion of the ETL-er as to whether this should be the coded value from the source or the text description of the lookup value. No No
246 PROVIDER specialty_source_concept_id No integer This is often zero as many sites use proprietary codes to store physician speciality. If the source data codes provider specialty in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
247 PROVIDER gender_source_value No varchar(50) This is provider's gender as it appears in the source data. Put the provider's gender as it appears in the source data. This field is up to the discretion of the ETL-er as to whether this should be the coded value from the source or the text description of the lookup value. No No
248 PROVIDER gender_source_concept_id No integer This is often zero as many sites use proprietary codes to store provider gender. If the source data codes provider gender in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
249 PAYER_PLAN_PERIOD payer_plan_period_id Yes integer A unique identifier for each unique combination of a Person, Payer, Plan, and Period of time. Yes Yes PERSON PERSON_ID
250 PAYER_PLAN_PERIOD person_id Yes integer The Person covered by the Plan. A single Person can have multiple, overlapping, PAYER_PLAN_PERIOD records No Yes PERSON PERSON_ID
251 PAYER_PLAN_PERIOD payer_plan_period_start_date Yes date Start date of Plan coverage. No No
252 PAYER_PLAN_PERIOD payer_plan_period_end_date Yes date End date of Plan coverage. No No
253 PAYER_PLAN_PERIOD payer_concept_id No integer This field represents the organization who reimburses the provider which administers care to the Person. Map the Payer directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same payer, though the name of the Payer is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Payer&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
254 PAYER_PLAN_PERIOD payer_source_value No varchar(50) This is the Payer as it appears in the source data. No No
255 PAYER_PLAN_PERIOD payer_source_concept_id No integer If the source data codes the Payer in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
256 PAYER_PLAN_PERIOD plan_concept_id No integer This field represents the specific health benefit Plan the Person is enrolled in. Map the Plan directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same health benefit Plan though the name of the Plan is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
257 PAYER_PLAN_PERIOD plan_source_value No varchar(50) This is the health benefit Plan of the Person as it appears in the source data. No No
258 PAYER_PLAN_PERIOD plan_source_concept_id No integer If the source data codes the Plan in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
259 PAYER_PLAN_PERIOD sponsor_concept_id No integer This field represents the sponsor of the Plan who finances the Plan. This includes self-insured, small group health plan and large group health plan. Map the sponsor directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same sponsor though the name of the sponsor is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Sponsor&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
260 PAYER_PLAN_PERIOD sponsor_source_value No varchar(50) The Plan sponsor as it appears in the source data. No No
261 PAYER_PLAN_PERIOD sponsor_source_concept_id No integer If the source data codes the sponsor in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
262 PAYER_PLAN_PERIOD family_source_value No varchar(50) The common identifier for all people (often a family) that covered by the same policy. Often these are the common digits of the enrollment id of the policy members. No No
263 PAYER_PLAN_PERIOD stop_reason_concept_id No integer This field represents the reason the Person left the Plan, if known. Map the stop reason directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan+Stop+Reason&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
264 PAYER_PLAN_PERIOD stop_reason_source_value No varchar(50) The Plan stop reason as it appears in the source data. No No
265 PAYER_PLAN_PERIOD stop_reason_source_concept_id No integer If the source data codes the stop reason in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
266 COST cost_id Yes integer Yes No
267 COST cost_event_id Yes integer No No
268 COST cost_domain_id Yes varchar(20) No Yes DOMAIN DOMAIN_ID
269 COST cost_type_concept_id Yes integer No Yes CONCEPT CONCEPT_ID
270 COST currency_concept_id No integer No Yes CONCEPT CONCEPT_ID
271 COST total_charge No float No No
272 COST total_cost No float No No
273 COST total_paid No float No No
274 COST paid_by_payer No float No No
275 COST paid_by_patient No float No No
276 COST paid_patient_copay No float No No
277 COST paid_patient_coinsurance No float No No
278 COST paid_patient_deductible No float No No
279 COST paid_by_primary No float No No
280 COST paid_ingredient_cost No float No No
281 COST paid_dispensing_fee No float No No
282 COST payer_plan_period_id No integer No No
283 COST amount_allowed No float No No
284 COST revenue_code_concept_id No integer No Yes CONCEPT CONCEPT_ID
285 COST revenue_code_source_value No varchar(50) Revenue codes are a method to charge for a class of procedures and conditions in the U.S. hospital system. No No
286 COST drg_concept_id No integer No Yes CONCEPT CONCEPT_ID
287 COST drg_source_value No varchar(3) Diagnosis Related Groups are US codes used to classify hospital cases into one of approximately 500 groups. No No
288 DRUG_ERA drug_era_id Yes integer Yes No
289 DRUG_ERA person_id Yes integer No Yes PERSON PERSON_ID
290 DRUG_ERA drug_concept_id Yes integer The Concept Id representing the specific drug ingredient. No Yes CONCEPT CONCEPT_ID Drug Ingredient
291 DRUG_ERA drug_era_start_date Yes datetime The Drug Era Start Date is the start date of the first Drug Exposure for a given ingredient, with at least 31 days since the previous exposure. No No
292 DRUG_ERA drug_era_end_date Yes datetime The Drug Era End Date is the end date of the last Drug Exposure. The End Date of each Drug Exposure is either taken from the field drug_exposure_end_date or, as it is typically not available, inferred using the following rules: For pharmacy prescription data, the date when the drug was dispensed plus the number of days of supply are used to extrapolate the End Date for the Drug Exposure. Depending on the country-specific healthcare system, this supply information is either explicitly provided in the day_supply field or inferred from package size or similar information. For Procedure Drugs, usually the drug is administered on a single date (i.e., the administration date). A standard Persistence Window of 30 days (gap, slack) is permitted between two subsequent such extrapolated DRUG_EXPOSURE records to be considered to be merged into a single Drug Era. No No
293 DRUG_ERA drug_exposure_count No integer No No
294 DRUG_ERA gap_days No integer The Gap Days determine how many total drug-free days are observed between all Drug Exposure events that contribute to a DRUG_ERA record. It is assumed that the drugs are "not stockpiled" by the patient, i.e. that if a new drug prescription or refill is observed (a new DRUG_EXPOSURE record is written), the remaining supply from the previous events is abandoned. The difference between Persistence Window and Gap Days is that the former is the maximum drug-free time allowed between two subsequent DRUG_EXPOSURE records, while the latter is the sum of actual drug-free days for the given Drug Era under the above assumption of non-stockpiling. No No
295 DOSE_ERA dose_era_id Yes integer Yes No
296 DOSE_ERA person_id Yes integer No Yes PERSON PERSON_ID
297 DOSE_ERA drug_concept_id Yes integer The Concept Id representing the specific drug ingredient. No Yes CONCEPT CONCEPT_ID Drug Ingredient
298 DOSE_ERA unit_concept_id Yes integer The Concept Id representing the unit of the specific drug ingredient. No Yes CONCEPT CONCEPT_ID Unit
299 DOSE_ERA dose_value Yes float The numeric value of the dosage of the drug_ingredient. No No
300 DOSE_ERA dose_era_start_date Yes datetime The date the Person started on the specific dosage, with at least 31 days since any prior exposure. No No
301 DOSE_ERA dose_era_end_date Yes datetime The date the Person was no longer exposed to the dosage of the specific drug ingredient. An era is ended if there are 31 days or more between dosage records. No No
302 CONDITION_ERA condition_era_id Yes integer Yes No
303 CONDITION_ERA person_id Yes integer No No PERSON PERSON_ID
304 CONDITION_ERA condition_concept_id Yes integer The Concept Id representing the Condition. No Yes CONCEPT CONCEPT_ID Condition
305 CONDITION_ERA condition_era_start_date Yes datetime The start date for the Condition Era constructed from the individual instances of Condition Occurrences. It is the start date of the very first chronologically recorded instance of the condition with at least 31 days since any prior record of the same Condition. No No
306 CONDITION_ERA condition_era_end_date Yes datetime The end date for the Condition Era constructed from the individual instances of Condition Occurrences. It is the end date of the final continuously recorded instance of the Condition. No No
307 CONDITION_ERA condition_occurrence_count No integer The number of individual Condition Occurrences used to construct the condition era. No No
308 METADATA metadata_concept_id Yes integer No Yes CONCEPT CONCEPT_ID
309 METADATA metadata_type_concept_id Yes integer No Yes CONCEPT CONCEPT_ID
310 METADATA name Yes varchar(250) No No
311 METADATA value_as_string No varchar(250) No No
312 METADATA value_as_concept_id No integer No Yes CONCEPT CONCEPT_ID
313 METADATA metadata_date No date No No
314 METADATA metadata_datetime No datetime No No
315 CDM_SOURCE cdm_source_name Yes varchar(255) The name of the CDM instance. No No
316 CDM_SOURCE cdm_source_abbreviation No varchar(25) The abbreviation of the CDM instance. No No
317 CDM_SOURCE cdm_holder No varchar(255) The holder of the CDM instance. No No
318 CDM_SOURCE source_description No varchar(MAX) The description of the CDM instance. No No
319 CDM_SOURCE source_documentation_reference No varchar(255) No No
320 CDM_SOURCE cdm_etl_reference No varchar(255) Put the link to the CDM version used. No No
321 CDM_SOURCE source_release_date No date The release date of the source data. No No
322 CDM_SOURCE cdm_release_date No date The release data of the CDM instance. No No
323 CDM_SOURCE cdm_version No varchar(10) No No
324 CDM_SOURCE vocabulary_version No varchar(20) No No
325 CONCEPT concept_id Yes integer A unique identifier for each Concept across all domains. Yes No
326 CONCEPT concept_name Yes varchar(255) An unambiguous, meaningful and descriptive name for the Concept. No No
327 CONCEPT domain_id Yes varchar(20) A foreign key to the [DOMAIN](https://ohdsi.github.io/CommonDataModel/cdm531.html#domain) table the Concept belongs to. No Yes DOMAIN DOMAIN_ID
328 CONCEPT vocabulary_id Yes varchar(20) A foreign key to the [VOCABULARY](https://ohdsi.github.io/CommonDataModel/cdm531.html#vocabulary) table indicating from which source the Concept has been adapted. No Yes VOCABULARY VOCABULARY_ID
329 CONCEPT concept_class_id Yes varchar(20) The attribute or concept class of the Concept. Examples are 'Clinical Drug', 'Ingredient', 'Clinical Finding' etc. No Yes CONCEPT_CLASS CONCEPT_CLASS_ID
330 CONCEPT standard_concept No varchar(1) This flag determines where a Concept is a Standard Concept, i.e. is used in the data, a Classification Concept, or a non-standard Source Concept. The allowable values are 'S' (Standard Concept) and 'C' (Classification Concept), otherwise the content is NULL. No No
331 CONCEPT concept_code Yes varchar(50) The concept code represents the identifier of the Concept in the source vocabulary, such as SNOMED-CT concept IDs, RxNorm RXCUIs etc. Note that concept codes are not unique across vocabularies. No No
332 CONCEPT valid_start_date Yes date The date when the Concept was first recorded. The default value is 1-Jan-1970, meaning, the Concept has no (known) date of inception. No No
333 CONCEPT valid_end_date Yes date The date when the Concept became invalid because it was deleted or superseded (updated) by a new concept. The default value is 31-Dec-2099, meaning, the Concept is valid until it becomes deprecated. No No
334 CONCEPT invalid_reason No varchar(1) Reason the Concept was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value. No No
335 VOCABULARY vocabulary_id Yes varchar(20) A unique identifier for each Vocabulary, such as ICD9CM, SNOMED, Visit. Yes No
336 VOCABULARY vocabulary_name Yes varchar(255) The name describing the vocabulary, for example, International Classification of Diseases, Ninth Revision, Clinical Modification, Volume 1 and 2 (NCHS) etc. No No
337 VOCABULARY vocabulary_reference Yes varchar(255) External reference to documentation or available download of the about the vocabulary. No No
338 VOCABULARY vocabulary_version No varchar(255) Version of the Vocabulary as indicated in the source. No No
339 VOCABULARY vocabulary_concept_id Yes integer A Concept that represents the Vocabulary the VOCABULARY record belongs to. No Yes CONCEPT CONCEPT_ID
340 DOMAIN domain_id Yes varchar(20) A unique key for each domain. Yes No
341 DOMAIN domain_name Yes varchar(255) The name describing the Domain, e.g. Condition, Procedure, Measurement etc. No No
342 DOMAIN domain_concept_id Yes integer A Concept representing the Domain Concept the DOMAIN record belongs to. No Yes CONCEPT CONCEPT_ID
343 CONCEPT_CLASS concept_class_id Yes varchar(20) A unique key for each class. Yes No
344 CONCEPT_CLASS concept_class_name Yes varchar(255) The name describing the Concept Class, e.g. Clinical Finding, Ingredient, etc. No No
345 CONCEPT_CLASS concept_class_concept_id Yes integer A Concept that represents the Concept Class. No Yes CONCEPT CONCEPT_ID
346 CONCEPT_RELATIONSHIP concept_id_1 Yes integer No Yes CONCEPT CONCEPT_ID
347 CONCEPT_RELATIONSHIP concept_id_2 Yes integer No Yes CONCEPT CONCEPT_ID
348 CONCEPT_RELATIONSHIP relationship_id Yes varchar(20) The relationship between CONCEPT_ID_1 and CONCEPT_ID_2. Please see the [Vocabulary Conventions](https://ohdsi.github.io/CommonDataModel/dataModelConventions.html#concept_relationships). for more information. No Yes RELATIONSHIP RELATIONSHIP_ID
349 CONCEPT_RELATIONSHIP valid_start_date Yes date The date when the relationship is first recorded. No No
350 CONCEPT_RELATIONSHIP valid_end_date Yes date The date when the relationship is invalidated. No No
351 CONCEPT_RELATIONSHIP invalid_reason No varchar(1) Reason the relationship was invalidated. Possible values are 'D' (deleted), 'U' (updated) or NULL. No No
352 RELATIONSHIP relationship_id Yes varchar(20) The type of relationship captured by the relationship record. Yes No
353 RELATIONSHIP relationship_name Yes varchar(255) No No
354 RELATIONSHIP is_hierarchical Yes varchar(1) Defines whether a relationship defines concepts into classes or hierarchies. Values are 1 for hierarchical relationship or 0 if not. No No
355 RELATIONSHIP defines_ancestry Yes varchar(1) Defines whether a hierarchical relationship contributes to the concept_ancestor table. These are subsets of the hierarchical relationships. Valid values are 1 or 0. No No
356 RELATIONSHIP reverse_relationship_id Yes varchar(20) The identifier for the relationship used to define the reverse relationship between two concepts. No No
357 RELATIONSHIP relationship_concept_id Yes integer A foreign key that refers to an identifier in the [CONCEPT](https://ohdsi.github.io/CommonDataModel/cdm531.html#concept) table for the unique relationship concept. No Yes CONCEPT CONCEPT_ID
358 CONCEPT_SYNONYM concept_id Yes integer No Yes CONCEPT CONCEPT_ID
359 CONCEPT_SYNONYM concept_synonym_name Yes varchar(1000) No No
360 CONCEPT_SYNONYM language_concept_id Yes integer No Yes CONCEPT CONCEPT_ID
361 CONCEPT_ANCESTOR ancestor_concept_id Yes integer The Concept Id for the higher-level concept that forms the ancestor in the relationship. No Yes CONCEPT CONCEPT_ID
362 CONCEPT_ANCESTOR descendant_concept_id Yes integer The Concept Id for the lower-level concept that forms the descendant in the relationship. No Yes CONCEPT CONCEPT_ID
363 CONCEPT_ANCESTOR min_levels_of_separation Yes integer The minimum separation in number of levels of hierarchy between ancestor and descendant concepts. This is an attribute that is used to simplify hierarchic analysis. No No
364 CONCEPT_ANCESTOR max_levels_of_separation Yes integer The maximum separation in number of levels of hierarchy between ancestor and descendant concepts. This is an attribute that is used to simplify hierarchic analysis. No No
365 SOURCE_TO_CONCEPT_MAP source_code Yes varchar(50) The source code being translated into a Standard Concept. No No
366 SOURCE_TO_CONCEPT_MAP source_concept_id Yes integer A foreign key to the Source Concept that is being translated into a Standard Concept. This is either 0 or should be a number above 2 billion, which are the Concepts reserved for site-specific codes and mappings. No Yes CONCEPT CONCEPT_ID
367 SOURCE_TO_CONCEPT_MAP source_vocabulary_id Yes varchar(20) A foreign key to the VOCABULARY table defining the vocabulary of the source code that is being translated to a Standard Concept. No No
368 SOURCE_TO_CONCEPT_MAP source_code_description No varchar(255) An optional description for the source code. This is included as a convenience to compare the description of the source code to the name of the concept. No No
369 SOURCE_TO_CONCEPT_MAP target_concept_id Yes integer The target Concept to which the source code is being mapped. No Yes CONCEPT CONCEPT_ID
370 SOURCE_TO_CONCEPT_MAP target_vocabulary_id Yes varchar(20) The Vocabulary of the target Concept. No Yes VOCABULARY VOCABULARY_ID
371 SOURCE_TO_CONCEPT_MAP valid_start_date Yes date The date when the mapping instance was first recorded. No No
372 SOURCE_TO_CONCEPT_MAP valid_end_date Yes date The date when the mapping instance became invalid because it was deleted or superseded (updated) by a new relationship. Default value is 31-Dec-2099. No No
373 SOURCE_TO_CONCEPT_MAP invalid_reason No varchar(1) Reason the mapping instance was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value. No No
374 DRUG_STRENGTH drug_concept_id Yes integer The Concept representing the Branded Drug or Clinical Drug Product. No Yes CONCEPT CONCEPT_ID
375 DRUG_STRENGTH ingredient_concept_id Yes integer The Concept representing the active ingredient contained within the drug product. Combination Drugs will have more than one record in this table, one for each active Ingredient. No Yes CONCEPT CONCEPT_ID
376 DRUG_STRENGTH amount_value No float The numeric value or the amount of active ingredient contained within the drug product. No No
377 DRUG_STRENGTH amount_unit_concept_id No integer The Concept representing the Unit of measure for the amount of active ingredient contained within the drug product. No Yes CONCEPT CONCEPT_ID
378 DRUG_STRENGTH numerator_value No float The concentration of the active ingredient contained within the drug product. No No
379 DRUG_STRENGTH numerator_unit_concept_id No integer The Concept representing the Unit of measure for the concentration of active ingredient. No Yes CONCEPT CONCEPT_ID
380 DRUG_STRENGTH denominator_value No float The amount of total liquid (or other divisible product, such as ointment, gel, spray, etc.). No No
381 DRUG_STRENGTH denominator_unit_concept_id No integer The Concept representing the denominator unit for the concentration of active ingredient. No Yes CONCEPT CONCEPT_ID
382 DRUG_STRENGTH box_size No integer The number of units of Clinical Branded Drug or Quantified Clinical or Branded Drug contained in a box as dispensed to the patient. No No
383 DRUG_STRENGTH valid_start_date Yes date The date when the Concept was first recorded. The default value is <<<<<<< HEAD:inst/csv/OMOP_CDMv5.3_Field_Level.csv 1-Jan-1970. No No
384 DRUG_STRENGTH valid_end_date Yes date The date when then Concept became invalid. No No
385 DRUG_STRENGTH invalid_reason No varchar(1) Reason the concept was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value. No No
386 COHORT_DEFINITION cohort_definition_id Yes integer This is the identifier given to the cohort, usually by the ATLAS application No No
387 COHORT_DEFINITION cohort_definition_name Yes varchar(255) A short description of the cohort No No
388 COHORT_DEFINITION cohort_definition_description No varchar(MAX) A complete description of the cohort. No No
389 COHORT_DEFINITION definition_type_concept_id Yes integer Type defining what kind of Cohort Definition the record represents and how the syntax may be executed. No Yes CONCEPT CONCEPT_ID
390 COHORT_DEFINITION cohort_definition_syntax No varchar(MAX) Syntax or code to operationalize the Cohort Definition. No No
391 COHORT_DEFINITION subject_concept_id Yes integer This field contains a Concept that represents the domain of the subjects that are members of the cohort (e.g., Person, Provider, Visit). No Yes CONCEPT CONCEPT_ID
392 COHORT_DEFINITION cohort_initiation_date No date A date to indicate when the Cohort was initiated in the COHORT table. No No
393 ATTRIBUTE_DEFINITION attribute_definition_id Yes integer No No
394 ATTRIBUTE_DEFINITION attribute_name Yes varchar(255) No No
395 ATTRIBUTE_DEFINITION attribute_description No varchar(MAX) No No
396 ATTRIBUTE_DEFINITION attribute_type_concept_id Yes integer No Yes CONCEPT CONCEPT_ID
397 ATTRIBUTE_DEFINITION attribute_syntax No varchar(MAX) No No
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516

View File

@ -27,22 +27,22 @@ VISIT_OCCURRENCE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
VISIT_OCCURRENCE,visit_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_OCCURRENCE,visit_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_OCCURRENCE,visit_start_date,Yes,date,"For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same.","When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction.",No,No,,,,, VISIT_OCCURRENCE,visit_start_date,Yes,date,"For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same.","When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction.",No,No,,,,,
VISIT_OCCURRENCE,visit_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_OCCURRENCE,visit_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_OCCURRENCE,visit_end_date,Yes,date,For inpatient visits the end date is typically the discharge date.,"Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them: VISIT_OCCURRENCE,visit_end_date,Yes,date,"For inpatient visits the end date is typically the discharge date. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.","Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:
- Outpatient Visit: visit_end_datetime = visit_start_datetime - Outpatient Visit: visit_end_datetime = visit_start_datetime
- Emergency Room Visit: visit_end_datetime = visit_start_datetime - Emergency Room Visit: visit_end_datetime = visit_start_datetime
- Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs.
- Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs. - Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.
For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete. For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete.
- All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date.",No,No,,,,, - All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date.",No,No,,,,,
VISIT_OCCURRENCE,visit_end_datetime,No,datetime,,"If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_OCCURRENCE,visit_end_datetime,No,datetime,"If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.","If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_OCCURRENCE,visit_type_concept_id,Yes,Integer,"Use this field to understand the provenance of the visit record, or where the record comes from.","Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, VISIT_OCCURRENCE,visit_type_concept_id,Yes,Integer,"Use this field to understand the provenance of the visit record, or where the record comes from.","Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
VISIT_OCCURRENCE,provider_id,No,integer,"There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table.","If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the [VISIT_DETAIL](https://ohdsi.github.io/CommonDataModel/cdm531.html#visit_detail) table.",No,Yes,PROVIDER,PROVIDER_ID,,, VISIT_OCCURRENCE,provider_id,No,integer,"There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table.","If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the [VISIT_DETAIL](https://ohdsi.github.io/CommonDataModel/cdm531.html#visit_detail) table.",No,Yes,PROVIDER,PROVIDER_ID,,,
VISIT_OCCURRENCE,care_site_id,No,integer,This field provides information about the Care Site where the Visit took place.,There should only be one Care Site associated with a Visit.,No,Yes,CARE_SITE,CARE_SITE_ID,,, VISIT_OCCURRENCE,care_site_id,No,integer,This field provides information about the Care Site where the Visit took place.,There should only be one Care Site associated with a Visit.,No,Yes,CARE_SITE,CARE_SITE_ID,,,
VISIT_OCCURRENCE,visit_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,, VISIT_OCCURRENCE,visit_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,,
VISIT_OCCURRENCE,visit_source_concept_id,No,integer,,If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, VISIT_OCCURRENCE,visit_source_concept_id,No,integer,,If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
VISIT_OCCURRENCE,admitted_from_concept_id,No,integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_OCCURRENCE,admitted_from_concept_id,No,integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If a person was admitted from home, set this to 0.",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_OCCURRENCE,admitted_from_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,, VISIT_OCCURRENCE,admitted_from_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,,
VISIT_OCCURRENCE,discharged_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example.","If available, map the discharge_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_OCCURRENCE,discharged_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for ""home"". Use concept id = 0 when a person is discharged to home.","If available, map the discharged_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_OCCURRENCE,discharged_to_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,, VISIT_OCCURRENCE,discharged_to_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,,
VISIT_OCCURRENCE,preceding_visit_occurrence_id,No,integer,Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between.,"This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, VISIT_OCCURRENCE,preceding_visit_occurrence_id,No,integer,Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between.,"This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
VISIT_DETAIL,visit_detail_id,Yes,integer,Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.,This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time.,Yes,No,,,,, VISIT_DETAIL,visit_detail_id,Yes,integer,Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.,This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time.,Yes,No,,,,,
@ -50,23 +50,23 @@ VISIT_DETAIL,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
VISIT_DETAIL,visit_detail_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_DETAIL,visit_detail_concept_id,Yes,integer,"This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.","Populate this field based on the kind of visit that took place for the person. For example this could be ""Inpatient Visit"", ""Outpatient Visit"", ""Ambulatory Visit"", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_DETAIL,visit_detail_start_date,Yes,date,This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.,"When populating VISIT_DETAIL_START_DATE, you should think about the patient experience to make decisions on how to define visits. Most likely this should be the date of the patient-provider interaction.",No,No,,,,, VISIT_DETAIL,visit_detail_start_date,Yes,date,This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.,"When populating VISIT_DETAIL_START_DATE, you should think about the patient experience to make decisions on how to define visits. Most likely this should be the date of the patient-provider interaction.",No,No,,,,,
VISIT_DETAIL,visit_detail_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_DETAIL,visit_detail_start_datetime,No,datetime,,"If no time is given for the start date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_DETAIL,visit_detail_end_date,Yes,date,This the end date of the patient-provider interaction.,"Visit Detail end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:<br> VISIT_DETAIL,visit_detail_end_date,Yes,date,"This the end date of the patient-provider interaction. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.","Visit Detail end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:<br>
- Outpatient Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Outpatient Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime
- Emergency Room Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Emergency Room Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime
- Inpatient Visit Detail: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Inpatient Visit Detail: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs.
- Non-hospital institution Visit Details: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.<br> - Non-hospital institution Visit Details: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.<br>
For Inpatient Visit Details ongoing at the date of ETL, put date of processing the data into visit_detai_end_datetime and visit_detail_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete. For Inpatient Visit Details ongoing at the date of ETL, put date of processing the data into visit_detai_end_datetime and visit_detail_type_concept_id with 32220 ""Still patient"" to identify the visit as incomplete.
All other Visits Details: visit_detail_end_datetime = visit_detail_start_datetime. ",No,No,,,,, All other Visits Details: visit_detail_end_datetime = visit_detail_start_datetime. ",No,No,,,,,
VISIT_DETAIL,visit_detail_end_datetime,No,datetime,,"If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,, VISIT_DETAIL,visit_detail_end_datetime,No,datetime,"If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.","If no time is given for the end date of a visit, set it to midnight (00:00:0000).",No,No,,,,,
VISIT_DETAIL,visit_detail_type_concept_id,Yes,integer,"Use this field to understand the provenance of the visit detail record, or where the record comes from.","Populate this field based on the provenance of the visit detail record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, VISIT_DETAIL,visit_detail_type_concept_id,Yes,integer,"Use this field to understand the provenance of the visit detail record, or where the record comes from.","Populate this field based on the provenance of the visit detail record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
VISIT_DETAIL,provider_id,No,integer,"There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",The additional providers associated to a Visit can be stored in this table where each VISIT_DETAIL record represents a different provider.,No,Yes,PROVIDER,PROVIDER_ID,,, VISIT_DETAIL,provider_id,No,integer,"There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",The additional providers associated to a Visit can be stored in this table where each VISIT_DETAIL record represents a different provider.,No,Yes,PROVIDER,PROVIDER_ID,,,
VISIT_DETAIL,care_site_id,No,integer,This field provides information about the Care Site where the Visit Detail took place.,There should only be one Care Site associated with a Visit Detail.,No,Yes,CARE_SITE,CARE_SITE_ID,,, VISIT_DETAIL,care_site_id,No,integer,This field provides information about the Care Site where the Visit Detail took place.,There should only be one Care Site associated with a Visit Detail.,No,Yes,CARE_SITE,CARE_SITE_ID,,,
VISIT_DETAIL,visit_detail_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit detail in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the VISIT_DETAIL_SOURCE_VALUE, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,, VISIT_DETAIL,visit_detail_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)","If there is information about the kind of visit detail in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the VISIT_DETAIL_SOURCE_VALUE, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created.",No,No,,,,,
VISIT_DETAIL,visit_detail_source_concept_id,No,Integer,,If the VISIT_DETAIL_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, VISIT_DETAIL,visit_detail_source_concept_id,No,Integer,,If the VISIT_DETAIL_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
VISIT_DETAIL,admitted_from_concept_id,No,Integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_DETAIL,admitted_from_concept_id,No,Integer,"Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.","If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If the person was admitted from home, set this to 0.",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_DETAIL,admitted_from_source_value,No,Varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,, VISIT_DETAIL,admitted_from_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits.",No,No,,,,,
VISIT_DETAIL,discharged_to_source_value,No,Varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,, VISIT_DETAIL,discharged_to_source_value,No,varchar(50),,"This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more.",No,No,,,,,
VISIT_DETAIL,discharged_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit detail record. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example.","If available, map the DISCHARGE_TO_SOURCE_VALUE to a Standard Concept in the Visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,, VISIT_DETAIL,discharged_to_concept_id,No,integer,"Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for ""home"". Use concept id = 0 when a person is discharged to home.","If available, map the DISCHARGE_TO_SOURCE_VALUE to a Standard Concept in the Visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Visit,,
VISIT_DETAIL,preceding_visit_detail_id,No,integer,Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.,"The PRECEDING_VISIT_DETAIL_ID can be used to link a visit immediately preceding the current Visit Detail. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, VISIT_DETAIL,preceding_visit_detail_id,No,integer,Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.,"The PRECEDING_VISIT_DETAIL_ID can be used to link a visit immediately preceding the current Visit Detail. Note this is not symmetrical, and there is no such thing as a ""following_visit_id"".",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
VISIT_DETAIL,parent_visit_detail_id,No,integer,Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.,"If there are multiple nested levels to how Visits are represented in the source, the VISIT_DETAIL_PARENT_ID can be used to record this relationship. ",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, VISIT_DETAIL,parent_visit_detail_id,No,integer,Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.,"If there are multiple nested levels to how Visits are represented in the source, the VISIT_DETAIL_PARENT_ID can be used to record this relationship. ",No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
VISIT_DETAIL,visit_occurrence_id,Yes,integer,Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.,Put the VISIT_OCCURRENCE_ID that subsumes the VISIT_DETAIL record here.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, VISIT_DETAIL,visit_occurrence_id,Yes,integer,Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.,Put the VISIT_OCCURRENCE_ID that subsumes the VISIT_DETAIL record here.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
@ -110,23 +110,23 @@ DRUG_EXPOSURE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which t
DRUG_EXPOSURE,drug_source_value,No,varchar(50),"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.,No,No,,,,, DRUG_EXPOSURE,drug_source_value,No,varchar(50),"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.,No,No,,,,,
DRUG_EXPOSURE,drug_source_concept_id,No,integer,"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.,No,Yes,CONCEPT,CONCEPT_ID,,, DRUG_EXPOSURE,drug_source_concept_id,No,integer,"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.,No,Yes,CONCEPT,CONCEPT_ID,,,
DRUG_EXPOSURE,route_source_value,No,varchar(50),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.,No,No,,,,, DRUG_EXPOSURE,route_source_value,No,varchar(50),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.,No,No,,,,,
DRUG_EXPOSURE,dose_unit_source_value,No,varchar(50),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.,No,No,,,,, DRUG_EXPOSURE,dose_unit_source_value,No,varchar(50),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.**,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_occurrence_id,Yes,integer,The unique key given to a procedure record for a person. Refer to the ETL for how duplicate procedures during the same visit were handled.,"Each instance of a procedure occurrence in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same procedure within the same visit. It is valid to keep these duplicates and assign them individual, unique, PROCEDURE_OCCURRENCE_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,, PROCEDURE_OCCURRENCE,procedure_occurrence_id,Yes,integer,The unique key given to a procedure record for a person. Refer to the ETL for how duplicate procedures during the same visit were handled.,"Each instance of a procedure occurrence in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same procedure within the same visit. It is valid to keep these duplicates and assign them individual, unique, PROCEDURE_OCCURRENCE_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,,
PROCEDURE_OCCURRENCE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the procedure is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, PROCEDURE_OCCURRENCE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the procedure is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
PROCEDURE_OCCURRENCE,procedure_concept_id,Yes,integer,"The PROCEDURE_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 value which represents a procedure","The CONCEPT_ID that the PROCEDURE_SOURCE_VALUE maps to. Only records whose source values map to standard concepts with a domain of ""Procedure"" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Procedure&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Procedure,, PROCEDURE_OCCURRENCE,procedure_concept_id,Yes,integer,"The PROCEDURE_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 value which represents a procedure","The CONCEPT_ID that the PROCEDURE_SOURCE_VALUE maps to. Only records whose source values map to standard concepts with a domain of ""Procedure"" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Procedure&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Procedure,,
PROCEDURE_OCCURRENCE,procedure_date,Yes,date,Use this date to determine the date the procedure occurred.,"If a procedure lasts more than a day, then it should be recorded as a separate record for each day the procedure occurred, this logic is in lieu of the procedure_end_date, which will be added in a future version of the CDM.",No,No,,,,, PROCEDURE_OCCURRENCE,procedure_date,Yes,date,Use this date to determine the date the procedure started.,This is meant to be the **start date** of the procedure. It will be renamed in a future version to **PROCEDURE_START_DATE**. ,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_datetime,No,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)",No,No,,,,, PROCEDURE_OCCURRENCE,procedure_datetime,No,datetime,,"If the procedure has a start time in the native date, use this field to house that information. This will be renamed in a future version to **PROCEDURE_START_DATETIME**.",No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_end_date,No,date,Use this field to house the date that the procedure ended. ,This is meant to be the end date of the procedure. It is not required and for most cases will be the same as the PROCEDURE_START_DATE.,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_end_datetime,No,datetime,Use this field to house the datetime that the procedure ended. ,This is meant to house the end datetime of the procedure and will most often be used in conjunction with the procedure_start_datetime to determine the length of the procedure.,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Procedure record, as in whether the procedure was from an EHR system, insurance claim, registry, or other sources.","Choose the PROCEDURE_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. If a procedure is recorded as an EHR encounter, the PROCEDURE_TYPE_CONCEPT would be 'EHR encounter record'. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, PROCEDURE_OCCURRENCE,procedure_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Procedure record, as in whether the procedure was from an EHR system, insurance claim, registry, or other sources.","Choose the PROCEDURE_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. If a procedure is recorded as an EHR encounter, the PROCEDURE_TYPE_CONCEPT would be 'EHR encounter record'. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
PROCEDURE_OCCURRENCE,modifier_concept_id,No,integer,The modifiers are intended to give additional information about the procedure but as of now the vocabulary is under review.,"It is up to the ETL to choose how to map modifiers if they exist in source data. These concepts are typically distinguished by 'Modifier' concept classes (e.g., 'CPT4 Modifier' as part of the 'CPT4' vocabulary). If there is more than one modifier on a record, one should be chosen that pertains to the procedure rather than provider. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?conceptClass=CPT4+Modifier&conceptClass=HCPCS+Modifier&vocabulary=CPT4&vocabulary=HCPCS&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, PROCEDURE_OCCURRENCE,modifier_concept_id,No,integer,The modifiers are intended to give additional information about the procedure but as of now the vocabulary is under review.,"It is up to the ETL to choose how to map modifiers if they exist in source data. These concepts are typically distinguished by 'Modifier' concept classes (e.g., 'CPT4 Modifier' as part of the 'CPT4' vocabulary). If there is more than one modifier on a record, one should be chosen that pertains to the procedure rather than provider. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?conceptClass=CPT4+Modifier&conceptClass=HCPCS+Modifier&vocabulary=CPT4&vocabulary=HCPCS&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
PROCEDURE_OCCURRENCE,quantity,No,integer,"If the quantity value is omitted, a single procedure is assumed.","If a Procedure has a quantity of '0' in the source, this should default to '1' in the ETL. If there is a record in the source it can be assumed the exposure occurred at least once",No,No,,,,, PROCEDURE_OCCURRENCE,quantity,No,integer,"If the quantity value is omitted, a single procedure is assumed.","If a Procedure has a quantity of '0' in the source, this should default to '1' in the ETL. If there is a record in the source it can be assumed the exposure occurred at least once",No,No,,,,,
PROCEDURE_OCCURRENCE,provider_id,No,integer,"The provider associated with the procedure record, e.g. the provider who performed the Procedure.","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 admitting vs attending physician on an EHR record.",No,No,PROVIDER,PROVIDER_ID,,, PROCEDURE_OCCURRENCE,provider_id,No,integer,"The provider associated with the procedure record, e.g. the provider who performed the Procedure.","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 admitting vs attending physician on an EHR record.",No,Yes,PROVIDER,PROVIDER_ID,,,
PROCEDURE_OCCURRENCE,visit_occurrence_id,No,integer,The visit during which the procedure occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a PROCEDURE_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the PROCEDURE_OCCURRENCE record.",No,No,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, PROCEDURE_OCCURRENCE,visit_occurrence_id,No,integer,The visit during which the procedure occurred.,"Depending on the structure of the source data, this may have to be determined based on dates. If a PROCEDURE_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the PROCEDURE_OCCURRENCE record.",No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
PROCEDURE_OCCURRENCE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure 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.,No,No,VISIT_DETAIL,VISIT_DETAIL_ID,,, PROCEDURE_OCCURRENCE,visit_detail_id,No,integer,"The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure 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.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
PROCEDURE_OCCURRENCE,procedure_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code.",Use this value to look up the source concept id and then map the source concept id to a standard concept id.,No,No,,,,, PROCEDURE_OCCURRENCE,procedure_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code.",Use this value to look up the source concept id and then map the source concept id to a standard concept id.,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_source_concept_id,No,integer,"This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,No,CONCEPT,CONCEPT_ID,,, PROCEDURE_OCCURRENCE,procedure_source_concept_id,No,integer,"This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
PROCEDURE_OCCURRENCE,modifier_source_value,No,varchar(50),,The original modifier code from the source is stored here for reference.,No,No,,,,, PROCEDURE_OCCURRENCE,modifier_source_value,No,varchar(50),,The original modifier code from the source is stored here for reference.,No,No,,,,,
PROCEDURE_OCCURRENCE,procedure_status_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the procedure status (primary or secondary).,"This information may be called something different in the source data but the field is meant to contain a value indicating whether the procedure was the primary reason for performing a surgical operation, infusion, etc. This source value is mapped to a standard concept which is stored in the PROCEDURE_STATUS_CONCEPT_ID field.",,,,,,,
PROCEDURE_OCCURRENCE,procedure_status_concept_id,Yes,integer,"This concept represents if the procedure was the primary reason for the surgical operation, infusion, etc . ",Choose the Concept in the Procedure Status domain that best represents the status ( [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition+Status&standardConcept=Standard&page=1&pageSize=15&query=).,,,,,,,
DEVICE_EXPOSURE,device_exposure_id,Yes,integer,The unique key given to records a person's exposure to a foreign physical object or instrument.,Each instance of an exposure to a foreign object or device present in the source data should be assigned this unique key. ,Yes,No,,,,, DEVICE_EXPOSURE,device_exposure_id,Yes,integer,The unique key given to records a person's exposure to a foreign physical object or instrument.,Each instance of an exposure to a foreign object or device present in the source data should be assigned this unique key. ,Yes,No,,,,,
DEVICE_EXPOSURE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, DEVICE_EXPOSURE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
DEVICE_EXPOSURE,device_concept_id,Yes,integer,"The DEVICE_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 foreign object or instrument the person was exposed to. ",The CONCEPT_ID that the DEVICE_SOURCE_VALUE maps to. ,No,Yes,CONCEPT,CONCEPT_ID,Device,, DEVICE_EXPOSURE,device_concept_id,Yes,integer,"The DEVICE_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 foreign object or instrument the person was exposed to. ",The CONCEPT_ID that the DEVICE_SOURCE_VALUE maps to. ,No,Yes,CONCEPT,CONCEPT_ID,Device,,
@ -136,16 +136,16 @@ DEVICE_EXPOSURE,device_exposure_end_date,No,date,"The DEVICE_EXPOSURE_END_DATE d
DEVICE_EXPOSURE,device_exposure_end_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,, DEVICE_EXPOSURE,device_exposure_end_datetime,No,datetime,,If a source does not specify datetime the convention is to set the time to midnight (00:00:0000),No,No,,,,,
DEVICE_EXPOSURE,device_type_concept_id,Yes,integer,"You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. ","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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, DEVICE_EXPOSURE,device_type_concept_id,Yes,integer,"You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. ","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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
DEVICE_EXPOSURE,unique_device_id,No,varchar(255),"This is the Unique Device Identification (UDI-DI) number for devices regulated by the FDA, if given. ","For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field.",No,No,,,,, DEVICE_EXPOSURE,unique_device_id,No,varchar(255),"This is the Unique Device Identification (UDI-DI) number for devices regulated by the FDA, if given. ","For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field.",No,No,,,,,
DEVICE_EXPOSURE,production_id,No,varchar(255),This is the Production Identifier (UDI-PI) portion of the Unique Device Identification.,,,,,,,, DEVICE_EXPOSURE,production_id,No,varchar(255),This is the Production Identifier (UDI-PI) portion of the Unique Device Identification.,,No,No,,,,,
DEVICE_EXPOSURE,quantity,No,integer,,,No,No,,,,, DEVICE_EXPOSURE,quantity,No,integer,,,No,No,,,,,
DEVICE_EXPOSURE,provider_id,No,integer,"The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device.",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.,No,Yes,PROVIDER,PROVIDER_ID,,, DEVICE_EXPOSURE,provider_id,No,integer,"The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device.",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.,No,Yes,PROVIDER,PROVIDER_ID,,,
DEVICE_EXPOSURE,visit_occurrence_id,No,integer,The Visit during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, DEVICE_EXPOSURE,visit_occurrence_id,No,integer,The Visit during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit.,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
DEVICE_EXPOSURE,visit_detail_id,No,integer,The Visit Detail during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit detail record.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, DEVICE_EXPOSURE,visit_detail_id,No,integer,The Visit Detail during which the device was prescribed or given.,To populate this field device exposures must be explicitly initiated in the visit detail record.,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
DEVICE_EXPOSURE,device_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the device exposure that occurred. For example, this could be an NDC or Gemscript code.",This code is mapped to a Standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, DEVICE_EXPOSURE,device_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the device exposure that occurred. For example, this could be an NDC or Gemscript code.",This code is mapped to a Standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
DEVICE_EXPOSURE,device_source_concept_id,No,integer,"This is the concept representing the device 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 Device necessary for a given analytic use case. Consider using DEVICE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the DEVICE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, DEVICE_EXPOSURE,device_source_concept_id,No,integer,"This is the concept representing the device 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 Device necessary for a given analytic use case. Consider using DEVICE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the DEVICE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
DEVICE_EXPOSURE,unit_concept_id,No,integer,UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. ,"There is no standardization requirement for units associated with DEVICE_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. If there is no unit associated with a Device record, set to NULL.",,,,,,, DEVICE_EXPOSURE,unit_concept_id,No,integer,UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. ,"There is no standardization requirement for units associated with DEVICE_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. If there is no unit associated with a Device record, set to NULL.",No,Yes,CONCEPT,CONCEPT_ID,Unit,,
DEVICE_EXPOSURE,unit_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the unit of the Device. For example, blood transfusions are considered devices and can be given in mL quantities. ","This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. Using the blood transfusion example, blood transfusion is represented by the DEVICE_CONCEPT_ID and the unit (mL) would be housed in the UNIT_SOURCE_VALUE and mapped to a standard concept in the unit domain. ",,,,,,, DEVICE_EXPOSURE,unit_source_value,No,varchar(50),"This field houses the verbatim value from the source data representing the unit of the Device. For example, blood transfusions are considered devices and can be given in mL quantities. ","This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. Using the blood transfusion example, blood transfusion is represented by the DEVICE_CONCEPT_ID and the unit (mL) would be housed in the UNIT_SOURCE_VALUE and mapped to a standard concept in the unit domain. ",No,No,,,,,
DEVICE_EXPOSURE,unit_source_concept_id,No,integer,"This is the concept representing the UNIT_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 Unit necessary for a given analytic use case. Consider using UNIT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the UNIT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. ,,,,,,, DEVICE_EXPOSURE,unit_source_concept_id,No,integer,"This is the concept representing the UNIT_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 Unit necessary for a given analytic use case. Consider using UNIT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.",If the UNIT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. ,No,Yes,CONCEPT,CONCEPT_ID,,,
MEASUREMENT,measurement_id,Yes,integer,The unique key given to a Measurement record for a Person. Refer to the ETL for how duplicate Measurements during the same Visit were handled.,"Each instance of a measurement present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same measurement within the same visit. It is valid to keep these duplicates and assign them individual, unique, MEASUREMENT_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,, MEASUREMENT,measurement_id,Yes,integer,The unique key given to a Measurement record for a Person. Refer to the ETL for how duplicate Measurements during the same Visit were handled.,"Each instance of a measurement present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same measurement within the same visit. It is valid to keep these duplicates and assign them individual, unique, MEASUREMENT_IDs, though it is up to the ETL how they should be handled.",Yes,No,,,,,
MEASUREMENT,person_id,Yes,integer,The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, MEASUREMENT,person_id,Yes,integer,The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
MEASUREMENT,measurement_concept_id,Yes,integer,"The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.","The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of ""Measurement"" should go in this table.",No,Yes,CONCEPT,CONCEPT_ID,Measurement,, MEASUREMENT,measurement_concept_id,Yes,integer,"The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.","The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of ""Measurement"" should go in this table.",No,Yes,CONCEPT,CONCEPT_ID,Measurement,,
@ -167,7 +167,7 @@ MEASUREMENT,measurement_source_concept_id,No,integer,"This is the concept repres
MEASUREMENT,unit_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the unit of the Measurement that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,, MEASUREMENT,unit_source_value,No,varchar(50),This field houses the verbatim value from the source data representing the unit of the Measurement that occurred. ,This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,No,No,,,,,
MEASUREMENT,unit_source_concept_id,No,integer,"""This is the concept representing the UNIT_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 Measurement necessary for a given analytic use case. Consider using UNIT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.""",If the UNIT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,, MEASUREMENT,unit_source_concept_id,No,integer,"""This is the concept representing the UNIT_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 Measurement necessary for a given analytic use case. Consider using UNIT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.""",If the UNIT_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here.,No,Yes,CONCEPT,CONCEPT_ID,,,
MEASUREMENT,value_source_value,No,varchar(50),This field houses the verbatim result value of the Measurement from the source data . ,"If both a continuous and categorical result are given in the source data such that both VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are both included, store the verbatim value that was mapped to VALUE_AS_CONCEPT_ID here.",No,No,,,,, MEASUREMENT,value_source_value,No,varchar(50),This field houses the verbatim result value of the Measurement from the source data . ,"If both a continuous and categorical result are given in the source data such that both VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are both included, store the verbatim value that was mapped to VALUE_AS_CONCEPT_ID here.",No,No,,,,,
MEASUREMENT,measurement_event_id,No,bigint,"If the Measurement record is related to another record in the database, this field is the primary key of the linked record. ","Put the primary key of the linked record, if applicable, here. ",No,No,,,,, MEASUREMENT,measurement_event_id,No,bigint,"If the Measurement record is related to another record in the database, this field is the primary key of the linked record. ","Put the primary key of the linked record, if applicable, here.",No,No,,,,,
MEASUREMENT,meas_event_field_concept_id,No,integer,"If the Measurement record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. ",Put the CONCEPT_ID that identifies which table and field the MEASUREMENT_EVENT_ID came from.,No,Yes,CONCEPT,CONCEPT_ID,,, MEASUREMENT,meas_event_field_concept_id,No,integer,"If the Measurement record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. ",Put the CONCEPT_ID that identifies which table and field the MEASUREMENT_EVENT_ID came from.,No,Yes,CONCEPT,CONCEPT_ID,,,
OBSERVATION,observation_id,Yes,integer,The unique key given to an Observation record for a Person. Refer to the ETL for how duplicate Observations during the same Visit were handled.,Each instance of an observation present in the source data should be assigned this unique key. ,Yes,No,,,,, OBSERVATION,observation_id,Yes,integer,The unique key given to an Observation record for a Person. Refer to the ETL for how duplicate Observations during the same Visit were handled.,Each instance of an observation present in the source data should be assigned this unique key. ,Yes,No,,,,,
OBSERVATION,person_id,Yes,integer,The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,, OBSERVATION,person_id,Yes,integer,The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code.,,No,Yes,PERSON,PERSON_ID,,,
@ -199,8 +199,6 @@ DEATH,cause_source_value,No,varchar(50),,"If available, put the source code repr
DEATH,cause_source_concept_id,No,integer,,If the cause of death was coded using a Vocabulary present in the OMOP Vocabularies put the CONCEPT_ID representing the cause of death here.,No,Yes,CONCEPT,CONCEPT_ID,,, DEATH,cause_source_concept_id,No,integer,,If the cause of death was coded using a Vocabulary present in the OMOP Vocabularies put the CONCEPT_ID representing the cause of death here.,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE,note_id,Yes,integer,A unique identifier for each note.,,Yes,No,,,,, NOTE,note_id,Yes,integer,A unique identifier for each note.,,Yes,No,,,,,
NOTE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,, NOTE,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
NOTE,note_event_id,No,bigint,"If the Note record is related to another record in the database, this field is the primary key of the linked record. ","Put the primary key of the linked record, if applicable, here.",No,No,,,,,
NOTE,note_event_field_concept_id,No,integer,"If the Note record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. ",Put the CONCEPT_ID that identifies which table and field the NOTE_EVENT_ID came from.,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE,note_date,Yes,date,The date the note was recorded.,,No,No,,,,, NOTE,note_date,Yes,date,The date the note was recorded.,,No,No,,,,,
NOTE,note_datetime,No,datetime,,If time is not given set the time to midnight.,No,No,,,,, NOTE,note_datetime,No,datetime,,If time is not given set the time to midnight.,No,No,,,,,
NOTE,note_type_concept_id,Yes,integer,The provenance of the note. Most likely this will be EHR. ,"Put the source system of the note, as in EHR record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, NOTE,note_type_concept_id,Yes,integer,The provenance of the note. Most likely this will be EHR. ,"Put the source system of the note, as in EHR record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
@ -214,11 +212,13 @@ NOTE,provider_id,No,integer,The Provider who wrote the note.,The ETL may need to
NOTE,visit_occurrence_id,No,integer,The Visit during which the note was written. ,,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,, NOTE,visit_occurrence_id,No,integer,The Visit during which the note was written. ,,No,Yes,VISIT_OCCURRENCE,VISIT_OCCURRENCE_ID,,,
NOTE,visit_detail_id,No,integer,The Visit Detail during which the note was written.,,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,, NOTE,visit_detail_id,No,integer,The Visit Detail during which the note was written.,,No,Yes,VISIT_DETAIL,VISIT_DETAIL_ID,,,
NOTE,note_source_value,No,varchar(50),,The source value mapped to the NOTE_CLASS_CONCEPT_ID.,No,No,,,,, NOTE,note_source_value,No,varchar(50),,The source value mapped to the NOTE_CLASS_CONCEPT_ID.,No,No,,,,,
NOTE,note_event_id,No,bigint,"If the Note record is related to another record in the database, this field is the primary key of the linked record. ","Put the primary key of the linked record, if applicable, here.",No,No,,,,,
NOTE,note_event_field_concept_id,No,integer,"If the Note record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. ",Put the CONCEPT_ID that identifies which table and field the NOTE_EVENT_ID came from.,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE_NLP,note_nlp_id,Yes,integer,A unique identifier for the NLP record.,,Yes,No,,,,, NOTE_NLP,note_nlp_id,Yes,integer,A unique identifier for the NLP record.,,Yes,No,,,,,
NOTE_NLP,note_id,Yes,integer,This is the NOTE_ID for the NOTE record the NLP record is associated to.,,No,No,,,,, NOTE_NLP,note_id,Yes,integer,This is the NOTE_ID for the NOTE record the NLP record is associated to.,,No,No,,,,,
NOTE_NLP,section_concept_id,No,integer,,"The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957).",No,Yes,CONCEPT,CONCEPT_ID,,, NOTE_NLP,section_concept_id,No,integer,,"The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957).",No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE_NLP,snippet,No,varchar(250),A small window of text surrounding the term,,No,No,,,,, NOTE_NLP,snippet,No,varchar(250),A small window of text surrounding the term,,No,No,,,,,
NOTE_NLP,offset,No,varchar(50),Character offset of the extracted term in the input note,,No,No,,,,, NOTE_NLP,"""offset""",No,varchar(50),Character offset of the extracted term in the input note,,No,No,,,,,
NOTE_NLP,lexical_variant,Yes,varchar(250),Raw text extracted from the NLP tool.,,No,No,,,,, NOTE_NLP,lexical_variant,Yes,varchar(250),Raw text extracted from the NLP tool.,,No,No,,,,,
NOTE_NLP,note_nlp_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, NOTE_NLP,note_nlp_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
NOTE_NLP,note_nlp_source_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, NOTE_NLP,note_nlp_source_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
@ -266,14 +266,14 @@ LOCATION,location_id,Yes,integer,The unique key given to a unique Location.,Each
LOCATION,address_1,No,varchar(50),This is the first line of the address.,,No,No,,,,, LOCATION,address_1,No,varchar(50),This is the first line of the address.,,No,No,,,,,
LOCATION,address_2,No,varchar(50),This is the second line of the address,,No,No,,,,, LOCATION,address_2,No,varchar(50),This is the second line of the address,,No,No,,,,,
LOCATION,city,No,varchar(50),,,No,No,,,,, LOCATION,city,No,varchar(50),,,No,No,,,,,
LOCATION,state,No,varchar(2),Please see the user guide for the location table for clarification on what this field represents in locations outside of the US.,,No,No,,,,, LOCATION,state,No,varchar(2),,,No,No,,,,,
LOCATION,zip,No,varchar(9),,"Zip codes are handled as strings of up to 9 characters length. For US addresses, these represent either a 3-digit abbreviated Zip code as provided by many sources for patient protection reasons, the full 5-digit Zip or the 9-digit (ZIP + 4) codes. Unless for specific reasons analytical methods should expect and utilize only the first 3 digits. For international addresses, different rules apply.",No,No,,,,, LOCATION,zip,No,varchar(9),,"Zip codes are handled as strings of up to 9 characters length. For US addresses, these represent either a 3-digit abbreviated Zip code as provided by many sources for patient protection reasons, the full 5-digit Zip or the 9-digit (ZIP + 4) codes. Unless for specific reasons analytical methods should expect and utilize only the first 3 digits. For international addresses, different rules apply.",No,No,,,,,
LOCATION,county,No,varchar(20),,,No,No,,,,, LOCATION,county,No,varchar(20),,,No,No,,,,,
LOCATION,location_source_value,No,varchar(50),,"Put the verbatim value for the location here, as it shows up in the source. ",No,No,,,,, LOCATION,location_source_value,No,varchar(50),,"Put the verbatim value for the location here, as it shows up in the source. ",No,No,,,,,
LOCATION,country_concept_id,No,integer,The Concept Id representing the country. Values should conform to the [Geography](https://athena.ohdsi.org/search-terms/terms?domain=Geography&standardConcept=Standard&page=1&pageSize=15&query=&boosts) domain. ,,,,,,,, LOCATION,country_concept_id,No,integer,The Concept Id representing the country. Values should conform to the [Geography](https://athena.ohdsi.org/search-terms/terms?domain=Geography&standardConcept=Standard&page=1&pageSize=15&query=&boosts) domain. ,,No,Yes,CONCEPT,CONCEPT_ID,,,
LOCATION,country_source_value,No,varchar(80),The name of the country.,,,,,,,, LOCATION,country_source_value,No,varchar(80),The name of the country.,,No,No,,,,,
LOCATION,latitude,No,float,,Must be between -90 and 90.,,,,,,, LOCATION,latitude,No,float,,Must be between -90 and 90.,No,No,,,,,
LOCATION,longitude,No,float,,Must be between -180 and 180.,,,,,,, LOCATION,longitude,No,float,,Must be between -180 and 180.,No,No,,,,,
CARE_SITE,care_site_id,Yes,integer,,Assign an id to each unique combination of location_id and place_of_service_source_value,Yes,No,,,,, CARE_SITE,care_site_id,Yes,integer,,Assign an id to each unique combination of location_id and place_of_service_source_value,Yes,No,,,,,
CARE_SITE,care_site_name,No,varchar(255),The name of the care_site as it appears in the source data,,No,No,,,,, CARE_SITE,care_site_name,No,varchar(255),The name of the care_site as it appears in the source data,,No,No,,,,,
CARE_SITE,place_of_service_concept_id,No,integer,"This is a high-level way of characterizing a Care Site. Typically, however, Care Sites can provide care in multiple settings (inpatient, outpatient, etc.) and this granularity should be reflected in the visit.","Choose the concept in the visit domain that best represents the setting in which healthcare is provided in the Care Site. If most visits in a Care Site are Inpatient, then the place_of_service_concept_id should represent Inpatient. If information is present about a unique Care Site (e.g. Pharmacy) then a Care Site record should be created. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=2&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,, CARE_SITE,place_of_service_concept_id,No,integer,"This is a high-level way of characterizing a Care Site. Typically, however, Care Sites can provide care in multiple settings (inpatient, outpatient, etc.) and this granularity should be reflected in the visit.","Choose the concept in the visit domain that best represents the setting in which healthcare is provided in the Care Site. If most visits in a Care Site are Inpatient, then the place_of_service_concept_id should represent Inpatient. If information is present about a unique Care Site (e.g. Pharmacy) then a Care Site record should be created. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=2&pageSize=15&query=).",No,Yes,CONCEPT,CONCEPT_ID,,,
@ -350,7 +350,7 @@ DOSE_ERA,dose_value,Yes,float,The numeric value of the dosage of the drug_ingred
DOSE_ERA,dose_era_start_date,Yes,datetime,"The date the Person started on the specific dosage, with at least 31 days since any prior exposure.",,No,No,,,,, DOSE_ERA,dose_era_start_date,Yes,datetime,"The date the Person started on the specific dosage, with at least 31 days since any prior exposure.",,No,No,,,,,
DOSE_ERA,dose_era_end_date,Yes,datetime,,The date the Person was no longer exposed to the dosage of the specific drug ingredient. An era is ended if there are 31 days or more between dosage records.,No,No,,,,, DOSE_ERA,dose_era_end_date,Yes,datetime,,The date the Person was no longer exposed to the dosage of the specific drug ingredient. An era is ended if there are 31 days or more between dosage records.,No,No,,,,,
CONDITION_ERA,condition_era_id,Yes,integer,,,Yes,No,,,,, CONDITION_ERA,condition_era_id,Yes,integer,,,Yes,No,,,,,
CONDITION_ERA,person_id,Yes,integer,,,No,No,PERSON,PERSON_ID,,, CONDITION_ERA,person_id,Yes,integer,,,No,Yes,PERSON,PERSON_ID,,,
CONDITION_ERA,condition_concept_id,Yes,integer,The Concept Id representing the Condition.,,No,Yes,CONCEPT,CONCEPT_ID,Condition,, CONDITION_ERA,condition_concept_id,Yes,integer,The Concept Id representing the Condition.,,No,Yes,CONCEPT,CONCEPT_ID,Condition,,
CONDITION_ERA,condition_era_start_date,Yes,datetime,"The start date for the Condition Era CONDITION_ERA,condition_era_start_date,Yes,datetime,"The start date for the Condition Era
constructed from the individual constructed from the individual
@ -367,21 +367,21 @@ Condition.",,No,No,,,,,
CONDITION_ERA,condition_occurrence_count,No,integer,"The number of individual Condition CONDITION_ERA,condition_occurrence_count,No,integer,"The number of individual Condition
Occurrences used to construct the Occurrences used to construct the
condition era.",,No,No,,,,, condition era.",,No,No,,,,,
EPISODE,episode_id,Yes,integer,A unique identifier for each Episode.,,Yes,No,,,,, EPISODE,episode_id,Yes,bigint,A unique identifier for each Episode.,,Yes,No,,,,,
EPISODE,person_id,Yes,integer,The PERSON_ID of the PERSON for whom the episode is recorded.,,No,Yes,PERSON,PERSON_ID,,, EPISODE,person_id,Yes,bigint,The PERSON_ID of the PERSON for whom the episode is recorded.,,No,Yes,PERSON,PERSON_ID,,,
EPISODE,episode_concept_id,Yes,integer,"The EPISODE_CONCEPT_ID represents the kind abstraction related to the disease phase, outcome or treatment.","Choose a concept in the Episode domain that best represents the ongoing disease phase, outcome, or treatment. Please see [article] for cancers and [article] for non-cancers describing how these are defined. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Episode&page=1&pageSize=15&query=)",No,Yes,CONCEPT,CONCEPT_ID,,, EPISODE,episode_concept_id,Yes,integer,"The EPISODE_CONCEPT_ID represents the kind abstraction related to the disease phase, outcome or treatment.","Choose a concept in the Episode domain that best represents the ongoing disease phase, outcome, or treatment. Please see [article] for cancers and [article] for non-cancers describing how these are defined. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Episode&page=1&pageSize=15&query=)",No,Yes,CONCEPT,CONCEPT_ID,Episode,,
EPISODE,episode_start_date,Yes,date,The date when the Episode beings. ,Please see [article] for how to define an Episode start date.,No,No,,,,, EPISODE,episode_start_date,Yes,date,The date when the Episode beings. ,Please see [article] for how to define an Episode start date.,No,No,,,,,
EPISODE,episode_start_datetime,No,datetime,The date and time when the Episode begins.,,No,No,,,,, EPISODE,episode_start_datetime,No,datetime,The date and time when the Episode begins.,,No,No,,,,,
EPISODE,episode_end_date,No,date,The date when the instance of the Episode is considered to have ended.,Please see [article] for how to define an Episode end date.,,,,,,, EPISODE,episode_end_date,No,date,The date when the instance of the Episode is considered to have ended.,Please see [article] for how to define an Episode end date.,No,No,,,,,
EPISODE,episode_end_datetime,No,datetime,The date when the instance of the Episode is considered to have ended.,,No,No,,,,, EPISODE,episode_end_datetime,No,datetime,The date when the instance of the Episode is considered to have ended.,,No,No,,,,,
EPISODE,episode_parent_id,No,integer,Use this field to find the Episode that subsumes the given Episode record. This is used in the case that an Episode are nested into each other.,"If there are multiple nested levels to how Episodes are represented, the EPISODE_PARENT_ID can be used to record this relationship. ",No,No,,,,, EPISODE,episode_parent_id,No,bigint,Use this field to find the Episode that subsumes the given Episode record. This is used in the case that an Episode are nested into each other.,"If there are multiple nested levels to how Episodes are represented, the EPISODE_PARENT_ID can be used to record this relationship. ",No,No,,,,,
EPISODE,episode_number,No,integer,"For sequences of episodes, this is used to indicate the order the episodes occurred. For example, lines of treatment could be indicated here. ",Please see [article] for the details of how to count episodes.,No,No,,,,, EPISODE,episode_number,No,integer,"For sequences of episodes, this is used to indicate the order the episodes occurred. For example, lines of treatment could be indicated here. ",Please see [article] for the details of how to count episodes.,No,No,,,,,
EPISODE,episode_object_concept_id,Yes,integer,"A Standard Concept representing the disease phase, outcome, or other abstraction of which the episode consists. For example, if the EPISODE_CONCEPT_ID is [treatment regimen](https://athena.ohdsi.org/search-terms/terms/32531) then the EPISODE_OBJECT_CONCEPT_ID should contain the chemotherapy regimen concept, like [Afatinib monotherapy](https://athena.ohdsi.org/search-terms/terms/35804392). ",Episode entries from the 'Disease Episode' concept class should have an episode_object_concept_id that comes from the Condition domain. Episode entries from the 'Treatment Episode' concept class should have an episode_object_concept_id that scome from the 'Procedure' domain or 'Regimen' concept class.,No,Yes,CONCEPT,CONCEPT_ID,,, EPISODE,episode_object_concept_id,Yes,integer,"A Standard Concept representing the disease phase, outcome, or other abstraction of which the episode consists. For example, if the EPISODE_CONCEPT_ID is [treatment regimen](https://athena.ohdsi.org/search-terms/terms/32531) then the EPISODE_OBJECT_CONCEPT_ID should contain the chemotherapy regimen concept, like [Afatinib monotherapy](https://athena.ohdsi.org/search-terms/terms/35804392). ",Episode entries from the 'Disease Episode' concept class should have an episode_object_concept_id that comes from the Condition domain. Episode entries from the 'Treatment Episode' concept class should have an episode_object_concept_id that scome from the 'Procedure' domain or 'Regimen' concept class.,No,Yes,CONCEPT,CONCEPT_ID,"Procedure, Regimen",,
EPISODE,episode_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Episode record, as in whether the episode was from an EHR system, insurance claim, registry, or other sources.",Choose the EPISODE_TYPE_CONCEPT_ID that best represents the provenance of the record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,, EPISODE,episode_type_concept_id,Yes,integer,"This field can be used to determine the provenance of the Episode record, as in whether the episode was from an EHR system, insurance claim, registry, or other sources.",Choose the EPISODE_TYPE_CONCEPT_ID that best represents the provenance of the record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=).,No,Yes,CONCEPT,CONCEPT_ID,Type Concept,,
EPISODE,episode_source_value,No,varchar(50),The source code for the Episdoe as it appears in the source data. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,,No,No,,,,, EPISODE,episode_source_value,No,varchar(50),The source code for the Episdoe as it appears in the source data. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference.,,No,No,,,,,
EPISODE,episode_source_concept_id,No,integer,A foreign key to a Episode Concept that refers to the code used in the source.,Given that the Episodes are user-defined it is unlikely that there will be a Source Concept available. If that is the case then set this field to zero. ,No,Yes,CONCEPT,CONCEPT_ID,,, EPISODE,episode_source_concept_id,No,integer,A foreign key to a Episode Concept that refers to the code used in the source.,Given that the Episodes are user-defined it is unlikely that there will be a Source Concept available. If that is the case then set this field to zero. ,No,Yes,CONCEPT,CONCEPT_ID,,,
EPISODE_EVENT,episode_id,Yes,integer,Use this field to link the EPISODE_EVENT record to its EPISODE.,Put the EPISODE_ID that subsumes the EPISODE_EVENT record here.,No,Yes,EPISODE,EPISODE_ID,,, EPISODE_EVENT,episode_id,Yes,bigint,Use this field to link the EPISODE_EVENT record to its EPISODE.,Put the EPISODE_ID that subsumes the EPISODE_EVENT record here.,No,Yes,EPISODE,EPISODE_ID,,,
EPISODE_EVENT,event_id,Yes,integer,"This field is the primary key of the linked record in the database. For example, if the Episode Event is a Condition Occurrence, then the CONDITION_OCCURRENCE_ID of the linked record goes in this field. ",Put the primary key of the linked record here. ,No,No,,,,, EPISODE_EVENT,event_id,Yes,bigint,"This field is the primary key of the linked record in the database. For example, if the Episode Event is a Condition Occurrence, then the CONDITION_OCCURRENCE_ID of the linked record goes in this field. ",Put the primary key of the linked record here. ,No,No,,,,,
EPISODE_EVENT,episode_event_field_concept_id,Yes,integer,This field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. ,Put the CONCEPT_ID that identifies which table and field the EVENT_ID came from. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?vocabulary=CDM&conceptClass=Field&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,Metadata,, EPISODE_EVENT,episode_event_field_concept_id,Yes,integer,This field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. ,Put the CONCEPT_ID that identifies which table and field the EVENT_ID came from. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?vocabulary=CDM&conceptClass=Field&page=1&pageSize=15&query=),No,Yes,CONCEPT,CONCEPT_ID,Metadata,,
METADATA,metadata_id,Yes,integer,The unique key given to a Metadata record.,Attribute value is auto-generated,Yes,No,,,,, METADATA,metadata_id,Yes,integer,The unique key given to a Metadata record.,Attribute value is auto-generated,Yes,No,,,,,
METADATA,metadata_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, METADATA,metadata_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
@ -389,7 +389,7 @@ METADATA,metadata_type_concept_id,Yes,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
METADATA,name,Yes,varchar(250),,,No,No,,,,, METADATA,name,Yes,varchar(250),,,No,No,,,,,
METADATA,value_as_string,No,varchar(250),,,No,No,,,,, METADATA,value_as_string,No,varchar(250),,,No,No,,,,,
METADATA,value_as_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,, METADATA,value_as_concept_id,No,integer,,,No,Yes,CONCEPT,CONCEPT_ID,,,
METADATA,value_as_number,No,float,"This is the numerical value of the Result of the Metadata, if applicable and available. It is not expected that all Metadata will have numeric results, rather, this field is here to house values should they exist. ",,No,No,,,,, METADATA,value_as_number,No,float,"This is the numerical value of the result of the Metadata, if applicable and available. It is not expected that all Metadata will have numeric results, rather, this field is here to house values should they exist. ",,No,No,,,,,
METADATA,metadata_date,No,date,,,No,No,,,,, METADATA,metadata_date,No,date,,,No,No,,,,,
METADATA,metadata_datetime,No,datetime,,,No,No,,,,, METADATA,metadata_datetime,No,datetime,,,No,No,,,,,
CDM_SOURCE,cdm_source_name,Yes,varchar(255),The name of the CDM instance.,,No,No,,,,, CDM_SOURCE,cdm_source_name,Yes,varchar(255),The name of the CDM instance.,,No,No,,,,,
@ -401,7 +401,7 @@ CDM_SOURCE,cdm_etl_reference,No,varchar(255),,Put the link to the CDM version us
CDM_SOURCE,source_release_date,Yes,date,The release date of the source data.,,No,No,,,,, CDM_SOURCE,source_release_date,Yes,date,The release date of the source data.,,No,No,,,,,
CDM_SOURCE,cdm_release_date,Yes,date,The release data of the CDM instance.,,No,No,,,,, CDM_SOURCE,cdm_release_date,Yes,date,The release data of the CDM instance.,,No,No,,,,,
CDM_SOURCE,cdm_version,No,varchar(10),,,No,No,,,,, CDM_SOURCE,cdm_version,No,varchar(10),,,No,No,,,,,
CDM_SOURCE,cdm_version_concept_id,Yes,integer,The Concept Id representing the version of the CDM.,,,,,,,, CDM_SOURCE,cdm_version_concept_id,Yes,integer,The Concept Id representing the version of the CDM.,,No,Yes,CONCEPT,CONCEPT_ID,,,
CDM_SOURCE,vocabulary_version,Yes,varchar(20),,,No,No,,,,, CDM_SOURCE,vocabulary_version,Yes,varchar(20),,,No,No,,,,,
CONCEPT,concept_id,Yes,integer,A unique identifier for each Concept across all domains.,,Yes,No,,,,, CONCEPT,concept_id,Yes,integer,A unique identifier for each Concept across all domains.,,Yes,No,,,,,
CONCEPT,concept_name,Yes,varchar(255),"An unambiguous, meaningful and descriptive name for the Concept.",,No,No,,,,, CONCEPT,concept_name,Yes,varchar(255),"An unambiguous, meaningful and descriptive name for the Concept.",,No,No,,,,,
@ -444,7 +444,7 @@ VOCABULARY,vocabulary_name,Yes,varchar(255),"The name describing the vocabulary,
example, International Classification of example, International Classification of
Diseases, Ninth Revision, Clinical Diseases, Ninth Revision, Clinical
Modification, Volume 1 and 2 (NCHS) etc.",,No,No,,,,, Modification, Volume 1 and 2 (NCHS) etc.",,No,No,,,,,
VOCABULARY,vocabulary_reference,Yes,varchar(255),"External reference to documentation or VOCABULARY,vocabulary_reference,No,varchar(255),"External reference to documentation or
available download of the about the available download of the about the
vocabulary.",,No,No,,,,, vocabulary.",,No,No,,,,,
VOCABULARY,vocabulary_version,No,varchar(255),"Version of the Vocabulary as indicated in VOCABULARY,vocabulary_version,No,varchar(255),"Version of the Vocabulary as indicated in
@ -542,7 +542,7 @@ COHORT,cohort_definition_id,Yes,integer,,,No,No,,,,,
COHORT,subject_id,Yes,integer,,,No,No,,,,, COHORT,subject_id,Yes,integer,,,No,No,,,,,
COHORT,cohort_start_date,Yes,date,,,No,No,,,,, COHORT,cohort_start_date,Yes,date,,,No,No,,,,,
COHORT,cohort_end_date,Yes,date,,,No,No,,,,, COHORT,cohort_end_date,Yes,date,,,No,No,,,,,
COHORT_DEFINITION,cohort_definition_id,Yes,integer,"This is the identifier given to the cohort, usually by the ATLAS application",,No,No,COHORT,COHORT_DEFINITION_ID,,, COHORT_DEFINITION,cohort_definition_id,Yes,integer,"This is the identifier given to the cohort, usually by the ATLAS application",,No,Yes,COHORT,COHORT_DEFINITION_ID,,,
COHORT_DEFINITION,cohort_definition_name,Yes,varchar(255),A short description of the cohort,,No,No,,,,, COHORT_DEFINITION,cohort_definition_name,Yes,varchar(255),A short description of the cohort,,No,No,,,,,
COHORT_DEFINITION,cohort_definition_description,No,varchar(MAX),A complete description of the cohort.,,No,No,,,,, COHORT_DEFINITION,cohort_definition_description,No,varchar(MAX),A complete description of the cohort.,,No,No,,,,,
COHORT_DEFINITION,definition_type_concept_id,Yes,integer,Type defining what kind of Cohort Definition the record represents and how the syntax may be executed.,,No,Yes,CONCEPT,CONCEPT_ID,,, COHORT_DEFINITION,definition_type_concept_id,Yes,integer,Type defining what kind of Cohort Definition the record represents and how the syntax may be executed.,,No,Yes,CONCEPT,CONCEPT_ID,,,

1 cdmTableName cdmFieldName isRequired cdmDatatype userGuidance etlConventions isPrimaryKey isForeignKey fkTableName fkFieldName fkDomain fkClass unique DQ identifiers
27 VISIT_OCCURRENCE visit_concept_id Yes integer This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain. Populate this field based on the kind of visit that took place for the person. For example this could be "Inpatient Visit", "Outpatient Visit", "Ambulatory Visit", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
28 VISIT_OCCURRENCE visit_start_date Yes date For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same. When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction. No No
29 VISIT_OCCURRENCE visit_start_datetime No datetime If no time is given for the start date of a visit, set it to midnight (00:00:0000). No No
30 VISIT_OCCURRENCE visit_end_date Yes date For inpatient visits the end date is typically the discharge date. For inpatient visits the end date is typically the discharge date. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull. Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them: - Outpatient Visit: visit_end_datetime = visit_start_datetime - Emergency Room Visit: visit_end_datetime = visit_start_datetime - Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs. For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 "Still patient" to identify the visit as incomplete. - All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date. No No
31 VISIT_OCCURRENCE visit_end_datetime No datetime If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull. If no time is given for the end date of a visit, set it to midnight (00:00:0000). No No
32 VISIT_OCCURRENCE visit_type_concept_id Yes Integer Use this field to understand the provenance of the visit record, or where the record comes from. Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
33 VISIT_OCCURRENCE provider_id No integer There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table. If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the [VISIT_DETAIL](https://ohdsi.github.io/CommonDataModel/cdm531.html#visit_detail) table. No Yes PROVIDER PROVIDER_ID
34 VISIT_OCCURRENCE care_site_id No integer This field provides information about the Care Site where the Visit took place. There should only be one Care Site associated with a Visit. No Yes CARE_SITE CARE_SITE_ID
35 VISIT_OCCURRENCE visit_source_value No varchar(50) This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.) If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created. No No
36 VISIT_OCCURRENCE visit_source_concept_id No integer If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
37 VISIT_OCCURRENCE admitted_from_concept_id No integer Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example. If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If a person was admitted from home, set this to 0. No Yes CONCEPT CONCEPT_ID Visit
38 VISIT_OCCURRENCE admitted_from_source_value No varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits. No No
39 VISIT_OCCURRENCE discharged_to_concept_id No integer Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example. Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for "home". Use concept id = 0 when a person is discharged to home. If available, map the discharge_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If available, map the discharged_to_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
40 VISIT_OCCURRENCE discharged_to_source_value No varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more. No No
41 VISIT_OCCURRENCE preceding_visit_occurrence_id No integer Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between. This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a "following_visit_id". No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
42 VISIT_DETAIL visit_detail_id Yes integer Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail. This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time. Yes No
43 VISIT_DETAIL person_id Yes integer No Yes PERSON PERSON_ID
44 VISIT_DETAIL visit_detail_concept_id Yes integer This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain. Populate this field based on the kind of visit that took place for the person. For example this could be "Inpatient Visit", "Outpatient Visit", "Ambulatory Visit", etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
45 VISIT_DETAIL visit_detail_start_date Yes date This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with. When populating VISIT_DETAIL_START_DATE, you should think about the patient experience to make decisions on how to define visits. Most likely this should be the date of the patient-provider interaction. No No
46 VISIT_DETAIL visit_detail_start_datetime No datetime If no time is given for the start date of a visit, set it to midnight (00:00:0000). No No
47 VISIT_DETAIL visit_detail_end_date Yes date This the end date of the patient-provider interaction. This the end date of the patient-provider interaction. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull. Visit Detail end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them:<br> - Outpatient Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Emergency Room Visit Detail: visit_detail_end_datetime = visit_detail_start_datetime - Inpatient Visit Detail: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Non-hospital institution Visit Details: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs.<br> For Inpatient Visit Details ongoing at the date of ETL, put date of processing the data into visit_detai_end_datetime and visit_detail_type_concept_id with 32220 "Still patient" to identify the visit as incomplete. All other Visits Details: visit_detail_end_datetime = visit_detail_start_datetime. No No
48 VISIT_DETAIL visit_detail_end_datetime No datetime If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull. If no time is given for the end date of a visit, set it to midnight (00:00:0000). No No
50 VISIT_DETAIL provider_id No integer There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record. The additional providers associated to a Visit can be stored in this table where each VISIT_DETAIL record represents a different provider. No Yes PROVIDER PROVIDER_ID
51 VISIT_DETAIL care_site_id No integer This field provides information about the Care Site where the Visit Detail took place. There should only be one Care Site associated with a Visit Detail. No Yes CARE_SITE CARE_SITE_ID
52 VISIT_DETAIL visit_detail_source_value No varchar(50) This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.) If there is information about the kind of visit detail in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the VISIT_DETAIL_SOURCE_VALUE, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created. No No
53 VISIT_DETAIL visit_detail_source_concept_id No Integer If the VISIT_DETAIL_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
54 VISIT_DETAIL admitted_from_concept_id No Integer Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example. If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If available, map the admitted_from_source_value to a standard concept in the visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). If the person was admitted from home, set this to 0. No Yes CONCEPT CONCEPT_ID Visit
55 VISIT_DETAIL admitted_from_source_value No Varchar(50) varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits. No No
56 VISIT_DETAIL discharged_to_source_value No Varchar(50) varchar(50) This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more. No No
57 VISIT_DETAIL discharged_to_concept_id No integer Use this field to determine where the patient was discharged to after a visit detail record. This concept is part of the visit domain and can indicate if a patient was discharged to home or sent to a long-term care facility, for example. Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for "home". Use concept id = 0 when a person is discharged to home. If available, map the DISCHARGE_TO_SOURCE_VALUE to a Standard Concept in the Visit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Visit&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Visit
58 VISIT_DETAIL preceding_visit_detail_id No integer Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between. The PRECEDING_VISIT_DETAIL_ID can be used to link a visit immediately preceding the current Visit Detail. Note this is not symmetrical, and there is no such thing as a "following_visit_id". No Yes VISIT_DETAIL VISIT_DETAIL_ID
59 VISIT_DETAIL parent_visit_detail_id No integer Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship. If there are multiple nested levels to how Visits are represented in the source, the VISIT_DETAIL_PARENT_ID can be used to record this relationship. No Yes VISIT_DETAIL VISIT_DETAIL_ID
60 VISIT_DETAIL visit_occurrence_id Yes integer Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE. Put the VISIT_OCCURRENCE_ID that subsumes the VISIT_DETAIL record here. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
61 CONDITION_OCCURRENCE condition_occurrence_id Yes integer The unique key given to a condition record for a person. Refer to the ETL for how duplicate conditions during the same visit were handled. Each instance of a condition present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same condition within the same visit. It is valid to keep these duplicates and assign them individual, unique, CONDITION_OCCURRENCE_IDs, though it is up to the ETL how they should be handled. Yes No
62 CONDITION_OCCURRENCE person_id Yes integer The PERSON_ID of the PERSON for whom the condition is recorded. No Yes PERSON PERSON_ID
63 CONDITION_OCCURRENCE condition_concept_id Yes integer The CONDITION_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 value which represents a condition The CONCEPT_ID that the CONDITION_SOURCE_VALUE maps to. Only records whose source values map to concepts with a domain of "Condition" should go in this table. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Condition
64 CONDITION_OCCURRENCE condition_start_date Yes date Use this date to determine the start date of the condition Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE. No No
65 CONDITION_OCCURRENCE condition_start_datetime No datetime If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) No No
66 CONDITION_OCCURRENCE condition_end_date No date Use this date to determine the end date of the condition Most often data sources do not have the idea of a start date for a condition. Rather, if a source only has one date associated with a condition record it is acceptable to use that date for both the CONDITION_START_DATE and the CONDITION_END_DATE. No No
67 CONDITION_OCCURRENCE condition_end_datetime No datetime If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) No No
68 CONDITION_OCCURRENCE condition_type_concept_id Yes integer This field can be used to determine the provenance of the Condition record, as in whether the condition was from an EHR system, insurance claim, registry, or other sources. Choose the CONDITION_TYPE_CONCEPT_ID that best represents the provenance of the record. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
69 CONDITION_OCCURRENCE condition_status_concept_id No integer This concept represents the point during the visit the diagnosis was given (admitting diagnosis, final diagnosis), whether the diagnosis was determined due to laboratory findings, if the diagnosis was exclusionary, or if it was a preliminary diagnosis, among others. Choose the Concept in the Condition Status domain that best represents the point during the visit when the diagnosis was given. These can include admitting diagnosis, principal diagnosis, and secondary diagnosis. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition+Status&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Condition Status
70 CONDITION_OCCURRENCE stop_reason No varchar(20) The Stop Reason indicates why a Condition is no longer valid with respect to the purpose within the source data. Note that a Stop Reason does not necessarily imply that the condition is no longer occurring. 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. No No
71 CONDITION_OCCURRENCE provider_id No integer The provider associated with condition record, e.g. the provider who made the diagnosis or the provider who recorded the symptom. 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 admitting vs attending physician on an EHR record. No Yes PROVIDER PROVIDER_ID
72 CONDITION_OCCURRENCE visit_occurrence_id No integer The visit during which the condition occurred. Depending on the structure of the source data, this may have to be determined based on dates. If a CONDITION_START_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the CONDITION_OCCURRENCE record. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
110 PROCEDURE_OCCURRENCE visit_detail_id provider_id No integer The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure the VISIT_OCCURRENCE record would reflect the overall hospital stay and the VISIT_DETAIL record would reflect the ICU stay during the hospital visit. The provider associated with the procedure record, e.g. the provider who performed the Procedure. Same rules apply as for the VISIT_OCCURRENCE_ID. 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 admitting vs attending physician on an EHR record. No No Yes VISIT_DETAIL PROVIDER VISIT_DETAIL_ID PROVIDER_ID
111 PROCEDURE_OCCURRENCE procedure_source_value visit_occurrence_id No varchar(50) integer This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code. The visit during which the procedure occurred. Use this value to look up the source concept id and then map the source concept id to a standard concept id. Depending on the structure of the source data, this may have to be determined based on dates. If a PROCEDURE_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the Visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the PROCEDURE_OCCURRENCE record. No No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
112 PROCEDURE_OCCURRENCE procedure_source_concept_id visit_detail_id No integer This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. The VISIT_DETAIL record during which the Procedure occurred. For example, if the Person was in the ICU at the time of the Procedure the VISIT_OCCURRENCE record would reflect the overall hospital stay and the VISIT_DETAIL record would reflect the ICU stay during the hospital visit. If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. Same rules apply as for the VISIT_OCCURRENCE_ID. No No Yes CONCEPT VISIT_DETAIL CONCEPT_ID VISIT_DETAIL_ID
113 PROCEDURE_OCCURRENCE modifier_source_value procedure_source_value No varchar(50) This field houses the verbatim value from the source data representing the procedure that occurred. For example, this could be an CPT4 or OPCS4 code. The original modifier code from the source is stored here for reference. Use this value to look up the source concept id and then map the source concept id to a standard concept id. No No
114 PROCEDURE_OCCURRENCE procedure_status_source_value procedure_source_concept_id No varchar(50) integer This field houses the verbatim value from the source data representing the procedure status (primary or secondary). This is the concept representing the procedure 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 Procedure necessary for a given analytic use case. Consider using PROCEDURE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. This information may be called something different in the source data but the field is meant to contain a value indicating whether the procedure was the primary reason for performing a surgical operation, infusion, etc. This source value is mapped to a standard concept which is stored in the PROCEDURE_STATUS_CONCEPT_ID field. If the PROCEDURE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
115 PROCEDURE_OCCURRENCE procedure_status_concept_id modifier_source_value Yes No integer varchar(50) This concept represents if the procedure was the primary reason for the surgical operation, infusion, etc . Choose the Concept in the Procedure Status domain that best represents the status ( [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Condition+Status&standardConcept=Standard&page=1&pageSize=15&query=). The original modifier code from the source is stored here for reference. No No
116 DEVICE_EXPOSURE device_exposure_id Yes integer The unique key given to records a person's exposure to a foreign physical object or instrument. Each instance of an exposure to a foreign object or device present in the source data should be assigned this unique key. Yes No
117 DEVICE_EXPOSURE person_id Yes integer No Yes PERSON PERSON_ID
118 DEVICE_EXPOSURE device_concept_id Yes integer The DEVICE_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 foreign object or instrument the person was exposed to. The CONCEPT_ID that the DEVICE_SOURCE_VALUE maps to. No Yes CONCEPT CONCEPT_ID Device
119 DEVICE_EXPOSURE device_exposure_start_date Yes date Use this date to determine the start date of the device record. Valid entries include a start date of a procedure to implant a device, the date of a prescription for a device, or the date of device administration. No No
120 DEVICE_EXPOSURE device_exposure_start_datetime No 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) No No
121 DEVICE_EXPOSURE device_exposure_start_date device_exposure_end_date Yes No date Use this date to determine the start date of the device record. The DEVICE_EXPOSURE_END_DATE denotes the day the device exposure ended for the patient, if given. Valid entries include a start date of a procedure to implant a device, the date of a prescription for a device, or the date of device administration. Put the end date or discontinuation date as it appears from the source data or leave blank if unavailable. No No
122 DEVICE_EXPOSURE device_exposure_start_datetime device_exposure_end_datetime No 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) If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) No No
123 DEVICE_EXPOSURE device_exposure_end_date device_type_concept_id No Yes date integer The DEVICE_EXPOSURE_END_DATE denotes the day the device exposure ended for the patient, if given. You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. Put the end date or discontinuation date as it appears from the source data or leave blank if unavailable. 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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No No Yes CONCEPT CONCEPT_ID Type Concept
124 DEVICE_EXPOSURE device_exposure_end_datetime unique_device_id No datetime varchar(255) This is the Unique Device Identification (UDI-DI) number for devices regulated by the FDA, if given. If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field. No No
125 DEVICE_EXPOSURE device_type_concept_id production_id Yes No integer varchar(255) You can use the TYPE_CONCEPT_ID to denote the provenance of the record, as in whether the record is from administrative claims or EHR. This is the Production Identifier (UDI-PI) portion of the Unique Device Identification. 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](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes No CONCEPT CONCEPT_ID Type Concept
126 DEVICE_EXPOSURE unique_device_id quantity No varchar(255) integer This is the Unique Device Identification (UDI-DI) number for devices regulated by the FDA, if given. For medical devices that are regulated by the FDA, a Unique Device Identification (UDI) is provided if available in the data source and is recorded in the UNIQUE_DEVICE_ID field. No No
127 DEVICE_EXPOSURE production_id provider_id No varchar(255) integer This is the Production Identifier (UDI-PI) portion of the Unique Device Identification. The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device. 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. No Yes PROVIDER PROVIDER_ID
128 DEVICE_EXPOSURE quantity visit_occurrence_id No integer The Visit during which the device was prescribed or given. To populate this field device exposures must be explicitly initiated in the visit. No No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
129 DEVICE_EXPOSURE provider_id visit_detail_id No integer The Provider associated with device record, e.g. the provider who wrote the prescription or the provider who implanted the device. The Visit Detail during which the device was prescribed or given. 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. To populate this field device exposures must be explicitly initiated in the visit detail record. No Yes PROVIDER VISIT_DETAIL PROVIDER_ID VISIT_DETAIL_ID
DEVICE_EXPOSURE visit_occurrence_id No integer The Visit during which the device was prescribed or given. To populate this field device exposures must be explicitly initiated in the visit. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
DEVICE_EXPOSURE visit_detail_id No integer The Visit Detail during which the device was prescribed or given. To populate this field device exposures must be explicitly initiated in the visit detail record. No Yes VISIT_DETAIL VISIT_DETAIL_ID
130 DEVICE_EXPOSURE device_source_value No varchar(50) This field houses the verbatim value from the source data representing the device exposure that occurred. For example, this could be an NDC or Gemscript code. This code is mapped to a Standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
131 DEVICE_EXPOSURE device_source_concept_id No integer This is the concept representing the device 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 Device necessary for a given analytic use case. Consider using DEVICE_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the DEVICE_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
132 DEVICE_EXPOSURE unit_concept_id No integer UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. There is no standardization requirement for units associated with DEVICE_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. If there is no unit associated with a Device record, set to NULL. No Yes CONCEPT CONCEPT_ID Unit
136 MEASUREMENT person_id Yes integer The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code. No Yes PERSON PERSON_ID
137 MEASUREMENT measurement_concept_id Yes integer The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies. The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of "Measurement" should go in this table. No Yes CONCEPT CONCEPT_ID Measurement
138 MEASUREMENT measurement_date Yes date Use this date to determine the date of the measurement. If there are multiple dates in the source data associated with a record such as order_date, draw_date, and result_date, choose the one that is closest to the date the sample was drawn from the patient. No No
139 MEASUREMENT measurement_datetime No 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) No No
140 MEASUREMENT measurement_time No varchar(10) This is present for backwards compatibility and will be deprecated in an upcoming version. No No
141 MEASUREMENT measurement_type_concept_id Yes integer This field can be used to determine the provenance of the Measurement record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources. Choose the MEASUREMENT_TYPE_CONCEPT_ID that best represents the provenance of the record, for example whether it came from an EHR record or billing claim. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
142 MEASUREMENT operator_concept_id No integer The meaning of Concept [4172703](https://athena.ohdsi.org/search-terms/terms/4172703) for '=' is identical to omission of a OPERATOR_CONCEPT_ID value. Since the use of this field is rare, it's important when devising analyses to not to forget testing for the content of this field for values different from =. Operators are <, <=, =, >=, > and these concepts belong to the 'Meas Value Operator' domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Meas+Value+Operator&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
143 MEASUREMENT value_as_number No float This is the numerical value of the Result of the Measurement, if available. Note that measurements such as blood pressures will be split into their component parts i.e. one record for systolic, one record for diastolic. If there is a negative value coming from the source, set the VALUE_AS_NUMBER to NULL, with the exception of the following Measurements (listed as LOINC codes):<br>- [1925-7](https://athena.ohdsi.org/search-terms/terms/3003396) Base excess in Arterial blood by calculation - [1927-3](https://athena.ohdsi.org/search-terms/terms/3002032) Base excess in Venous blood by calculation - [8632-2](https://athena.ohdsi.org/search-terms/terms/3006277) QRS-Axis - [11555-0](https://athena.ohdsi.org/search-terms/terms/3012501) Base excess in Blood by calculation - [1926-5](https://athena.ohdsi.org/search-terms/terms/3003129) Base excess in Capillary blood by calculation - [28638-5](https://athena.ohdsi.org/search-terms/terms/3004959) Base excess in Arterial cord blood by calculation [28639-3](https://athena.ohdsi.org/search-terms/terms/3007435) Base excess in Venous cord blood by calculation No No
144 MEASUREMENT value_as_concept_id No integer If the raw data gives a categorial result for measurements those values are captured and mapped to standard concepts in the 'Meas Value' domain. If the raw data provides categorial results as well as continuous results for measurements, it is a valid ETL choice to preserve both values. The continuous value should go in the VALUE_AS_NUMBER field and the categorical value should be mapped to a standard concept in the 'Meas Value' domain and put in the VALUE_AS_CONCEPT_ID field. This is also the destination for the 'Maps to value' relationship. No Yes CONCEPT CONCEPT_ID
145 MEASUREMENT unit_concept_id No integer There is currently no recommended unit for individual measurements, i.e. it is not mandatory to represent Hemoglobin a1C measurements as a percentage. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. There is no standardization requirement for units associated with MEASUREMENT_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. No Yes CONCEPT CONCEPT_ID Unit
146 MEASUREMENT range_low No float Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given. If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided. No No
147 MEASUREMENT range_high No float Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given. If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided. No No
148 MEASUREMENT provider_id No integer The provider associated with measurement record, e.g. the provider who ordered the test or the provider who recorded the result. 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 admitting vs attending physician on an EHR record. No Yes PROVIDER PROVIDER_ID
149 MEASUREMENT visit_occurrence_id No integer The visit during which the Measurement occurred. Depending on the structure of the source data, this may have to be determined based on dates. If a MEASUREMENT_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the measurement record. If a measurement is related to a visit explicitly in the source data, it is possible that the result date of the Measurement falls outside of the bounds of the Visit dates. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
150 MEASUREMENT visit_detail_id No integer The VISIT_DETAIL record during which the Measurement occurred. For example, if the Person was in the ICU at the time 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. No Yes VISIT_DETAIL VISIT_DETAIL_ID
151 MEASUREMENT measurement_source_value No varchar(50) This field houses the verbatim value from the source data representing the Measurement that occurred. For example, this could be an ICD10 or Read code. This code is mapped to a Standard Measurement Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
167 OBSERVATION qualifier_concept_id No integer This field contains all attributes specifying the clinical fact further, such as as degrees, severities, drug-drug interaction alerts etc. Use your best judgement as to what Concepts to use here and if they are necessary to accurately represent the clinical record. There is no restriction on the domain of these Concepts, they just need to be Standard. No Yes CONCEPT CONCEPT_ID
168 OBSERVATION unit_concept_id No integer There is currently no recommended unit for individual observation concepts. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. There is no standardization requirement for units associated with OBSERVATION_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. No Yes CONCEPT CONCEPT_ID Unit
169 OBSERVATION provider_id No integer The provider associated with the observation record, e.g. the provider who ordered the test or the provider who recorded the result. 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 admitting vs attending physician on an EHR record. No Yes PROVIDER PROVIDER_ID
170 OBSERVATION visit_occurrence_id No integer The visit during which the Observation occurred. Depending on the structure of the source data, this may have to be determined based on dates. If an OBSERVATION_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the observation record. If an observation is related to a visit explicitly in the source data, it is possible that the result date of the Observation falls outside of the bounds of the Visit dates. No Yes VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
171 OBSERVATION visit_detail_id No integer The VISIT_DETAIL record during which the Observation occurred. For example, if the Person was in the ICU at the time 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. No Yes VISIT_DETAIL VISIT_DETAIL_ID
172 OBSERVATION observation_source_value No varchar(50) This field houses the verbatim value from the source data representing the Observation that occurred. For example, this could be an ICD10 or Read code. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference. No No
173 OBSERVATION observation_source_concept_id No integer This is the concept representing the OBSERVATION_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 Observation necessary for a given analytic use case. Consider using OBSERVATION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the OBSERVATION_SOURCE_VALUE is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. No Yes CONCEPT CONCEPT_ID
199 NOTE visit_occurrence_id note_source_value No integer varchar(50) The Visit during which the note was written. The source value mapped to the NOTE_CLASS_CONCEPT_ID. No Yes No VISIT_OCCURRENCE VISIT_OCCURRENCE_ID
200 NOTE visit_detail_id note_event_id No integer bigint The Visit Detail during which the note was written. If the Note record is related to another record in the database, this field is the primary key of the linked record. Put the primary key of the linked record, if applicable, here. No Yes No VISIT_DETAIL VISIT_DETAIL_ID
201 NOTE note_source_value note_event_field_concept_id No varchar(50) integer If the Note record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. The source value mapped to the NOTE_CLASS_CONCEPT_ID. Put the CONCEPT_ID that identifies which table and field the NOTE_EVENT_ID came from. No No Yes CONCEPT CONCEPT_ID
NOTE_NLP note_nlp_id Yes integer A unique identifier for the NLP record. Yes No
NOTE_NLP note_id Yes integer This is the NOTE_ID for the NOTE record the NLP record is associated to. No No
202 NOTE_NLP section_concept_id note_nlp_id No Yes integer A unique identifier for the NLP record. The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957). No Yes Yes No CONCEPT CONCEPT_ID
203 NOTE_NLP snippet note_id No Yes varchar(250) integer A small window of text surrounding the term This is the NOTE_ID for the NOTE record the NLP record is associated to. No No
204 NOTE_NLP offset section_concept_id No varchar(50) integer Character offset of the extracted term in the input note The SECTION_CONCEPT_ID should be used to represent the note section contained in the NOTE_NLP record. These concepts can be found as parts of document panels and are based on the type of note written, i.e. a discharge summary. These panels can be found as concepts with the relationship 'Subsumes' to CONCEPT_ID [45875957](https://athena.ohdsi.org/search-terms/terms/45875957). No No Yes CONCEPT CONCEPT_ID
212 NOTE_NLP term_temporal nlp_datetime No varchar(50) datetime The date and time of the note processing. Term_temporal is to indicate if a condition is present or just in the past. The following would be past:<br><br> - History = true - Concept_date = anything before the time of the report No No
213 NOTE_NLP term_modifiers term_exists No varchar(2000) varchar(1) For the modifiers that are there, they would have to have these values:<br><br> - Negation = false - Subject = patient - Conditional = false - Rule_out = false - Uncertain = true or high or moderate or even low (could argue about low). Term_modifiers will concatenate all modifiers for different types of entities (conditions, drugs, labs etc) into one string. Lab values will be saved as one of the modifiers. Term_exists is defined as a flag that indicates if the patient actually has or had the condition. Any of the following modifiers would make Term_exists false: Negation = true Subject = [anything other than the patient] Conditional = true/li> Rule_out = true Uncertain = very low certainty or any lower certainties A complete lack of modifiers would make Term_exists true. No No
214 SPECIMEN NOTE_NLP specimen_id term_temporal Yes No integer varchar(50) Unique identifier for each specimen. Term_temporal is to indicate if a condition is present or just in the past. The following would be past:<br><br> - History = true - Concept_date = anything before the time of the report Yes No No
215 NOTE_NLP term_modifiers No varchar(2000) For the modifiers that are there, they would have to have these values:<br><br> - Negation = false - Subject = patient - Conditional = false - Rule_out = false - Uncertain = true or high or moderate or even low (could argue about low). Term_modifiers will concatenate all modifiers for different types of entities (conditions, drugs, labs etc) into one string. Lab values will be saved as one of the modifiers. No No
216 SPECIMEN specimen_id Yes integer Unique identifier for each specimen. Yes No
217 SPECIMEN person_id Yes integer The person from whom the specimen is collected. No Yes PERSON PERSON_ID
218 SPECIMEN specimen_concept_id Yes integer The standard CONCEPT_ID that the SPECIMEN_SOURCE_VALUE maps to in the specimen domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Specimen&standardConcept=Standard&page=1&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID
219 SPECIMEN specimen_type_concept_id Yes integer Put the source of the specimen record, as in an EHR system. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID Type Concept
220 SPECIMEN specimen_date Yes date The date the specimen was collected. No No
221 SPECIMEN specimen_datetime No datetime No No
222 SPECIMEN quantity No float The amount of specimen collected from the person. No No
223 SPECIMEN unit_concept_id No integer The unit for the quantity of the specimen. Map the UNIT_SOURCE_VALUE to a Standard Concept in the Unit domain. [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?domain=Unit&standardConcept=Standard&page=1&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID
224 SPECIMEN anatomic_site_concept_id No integer This is the site on the body where the specimen is from. Map the ANATOMIC_SITE_SOURCE_VALUE to a Standard Concept in the Spec Anatomic Site domain. This should be coded at the lowest level of granularity [Accepted Concepts](https://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Spec+Anatomic+Site&conceptClass=Body+Structure&page=4&pageSize=15&query=) No Yes CONCEPT CONCEPT_ID
266 PROVIDER gender_source_concept_id No integer This is often zero as many sites use proprietary codes to store provider gender. If the source data codes provider gender in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
267 PAYER_PLAN_PERIOD payer_plan_period_id Yes integer A unique identifier for each unique combination of a Person, Payer, Plan, and Period of time. Yes Yes PERSON PERSON_ID
268 PAYER_PLAN_PERIOD person_id Yes integer The Person covered by the Plan. A single Person can have multiple, overlapping, PAYER_PLAN_PERIOD records No Yes PERSON PERSON_ID
269 PAYER_PLAN_PERIOD payer_plan_period_start_date Yes date Start date of Plan coverage. No No
270 PAYER_PLAN_PERIOD payer_plan_period_end_date Yes date End date of Plan coverage. No No
271 PAYER_PLAN_PERIOD payer_concept_id No integer This field represents the organization who reimburses the provider which administers care to the Person. Map the Payer directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same payer, though the name of the Payer is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Payer&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
272 PAYER_PLAN_PERIOD payer_source_value No varchar(50) This is the Payer as it appears in the source data. No No
273 PAYER_PLAN_PERIOD payer_source_concept_id No integer If the source data codes the Payer in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
274 PAYER_PLAN_PERIOD plan_concept_id No integer This field represents the specific health benefit Plan the Person is enrolled in. Map the Plan directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same health benefit Plan though the name of the Plan is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Plan&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
275 PAYER_PLAN_PERIOD plan_source_value No varchar(50) This is the health benefit Plan of the Person as it appears in the source data. No No
276 PAYER_PLAN_PERIOD plan_source_concept_id No integer If the source data codes the Plan in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
277 PAYER_PLAN_PERIOD sponsor_concept_id No integer This field represents the sponsor of the Plan who finances the Plan. This includes self-insured, small group health plan and large group health plan. Map the sponsor directly to a standard CONCEPT_ID. If one does not exists please contact the vocabulary team. There is no global controlled vocabulary available for this information. The point is to stratify on this information and identify if Persons have the same sponsor though the name of the sponsor is not necessary. [Accepted Concepts](http://athena.ohdsi.org/search-terms/terms?domain=Sponsor&standardConcept=Standard&page=1&pageSize=15&query=). No Yes CONCEPT CONCEPT_ID
278 PAYER_PLAN_PERIOD sponsor_source_value No varchar(50) The Plan sponsor as it appears in the source data. No No
279 PAYER_PLAN_PERIOD sponsor_source_concept_id No integer If the source data codes the sponsor in an OMOP supported vocabulary store the concept_id here. No Yes CONCEPT CONCEPT_ID
350 METADATA metadata_datetime No datetime No No
351 CDM_SOURCE cdm_source_name Yes varchar(255) The name of the CDM instance. No No
352 CDM_SOURCE cdm_source_abbreviation Yes varchar(25) The abbreviation of the CDM instance. No No
353 CDM_SOURCE cdm_holder Yes varchar(255) The holder of the CDM instance. No No
354 CDM_SOURCE source_description No varchar(MAX) The description of the CDM instance. No No
355 CDM_SOURCE source_documentation_reference No varchar(255) No No
356 CDM_SOURCE cdm_etl_reference No varchar(255) Put the link to the CDM version used. No No
367 CONCEPT standard_concept No varchar(1) This flag determines where a Concept is a Standard Concept, i.e. is used in the data, a Classification Concept, or a non-standard Source Concept. The allowable values are 'S' (Standard Concept) and 'C' (Classification Concept), otherwise the content is NULL. No No
368 CONCEPT concept_code Yes varchar(50) The concept code represents the identifier of the Concept in the source vocabulary, such as SNOMED-CT concept IDs, RxNorm RXCUIs etc. Note that concept codes are not unique across vocabularies. No No
369 CONCEPT valid_start_date Yes date The date when the Concept was first recorded. The default value is 1-Jan-1970, meaning, the Concept has no (known) date of inception. No No
370 CONCEPT valid_end_date Yes date The date when the Concept became invalid because it was deleted or superseded (updated) by a new concept. The default value is 31-Dec-2099, meaning, the Concept is valid until it becomes deprecated. No No
371 CONCEPT invalid_reason No varchar(1) Reason the Concept was invalidated. Possible values are D (deleted), U (replaced with an update) or NULL when valid_end_date has the default value. No No
372 VOCABULARY vocabulary_id Yes varchar(20) A unique identifier for each Vocabulary, such as ICD9CM, SNOMED, Visit. Yes No
373 VOCABULARY vocabulary_name Yes varchar(255) The name describing the vocabulary, for example, International Classification of Diseases, Ninth Revision, Clinical Modification, Volume 1 and 2 (NCHS) etc. No No
374 VOCABULARY vocabulary_reference Yes No varchar(255) External reference to documentation or available download of the about the vocabulary. No No
375 VOCABULARY vocabulary_version No varchar(255) Version of the Vocabulary as indicated in the source. No No
376 VOCABULARY vocabulary_concept_id Yes integer A Concept that represents the Vocabulary the VOCABULARY record belongs to. No Yes CONCEPT CONCEPT_ID
377 DOMAIN domain_id Yes varchar(20) A unique key for each domain. Yes No
378 DOMAIN domain_name Yes varchar(255) The name describing the Domain, e.g. Condition, Procedure, Measurement etc. No No
379 DOMAIN domain_concept_id Yes integer A Concept representing the Domain Concept the DOMAIN record belongs to. No Yes CONCEPT CONCEPT_ID
380 CONCEPT_CLASS concept_class_id Yes varchar(20) A unique key for each class. Yes No
381 CONCEPT_CLASS concept_class_name Yes varchar(255) The name describing the Concept Class, e.g. Clinical Finding, Ingredient, etc. No No
382 CONCEPT_CLASS concept_class_concept_id Yes integer A Concept that represents the Concept Class. No Yes CONCEPT CONCEPT_ID
383 CONCEPT_RELATIONSHIP concept_id_1 Yes integer No Yes CONCEPT CONCEPT_ID
384 CONCEPT_RELATIONSHIP concept_id_2 Yes integer No Yes CONCEPT CONCEPT_ID
385 CONCEPT_RELATIONSHIP relationship_id Yes varchar(20) The relationship between CONCEPT_ID_1 and CONCEPT_ID_2. Please see the [Vocabulary Conventions](https://ohdsi.github.io/CommonDataModel/dataModelConventions.html#concept_relationships). for more information. No Yes RELATIONSHIP RELATIONSHIP_ID
386 CONCEPT_RELATIONSHIP valid_start_date Yes date The date when the relationship is first recorded. No No
387 CONCEPT_RELATIONSHIP valid_end_date Yes date The date when the relationship is invalidated. No No
389 RELATIONSHIP relationship_id Yes varchar(20) The type of relationship captured by the relationship record. Yes No
390 RELATIONSHIP relationship_name Yes varchar(255) No No
391 RELATIONSHIP is_hierarchical Yes varchar(1) Defines whether a relationship defines concepts into classes or hierarchies. Values are 1 for hierarchical relationship or 0 if not. No No
392 RELATIONSHIP defines_ancestry Yes varchar(1) Defines whether a hierarchical relationship contributes to the concept_ancestor table. These are subsets of the hierarchical relationships. Valid values are 1 or 0. No No
393 RELATIONSHIP reverse_relationship_id Yes varchar(20) The identifier for the relationship used to define the reverse relationship between two concepts. No No
394 RELATIONSHIP relationship_concept_id Yes integer A foreign key that refers to an identifier in the [CONCEPT](https://ohdsi.github.io/CommonDataModel/cdm531.html#concept) table for the unique relationship concept. No Yes CONCEPT CONCEPT_ID
395 CONCEPT_SYNONYM concept_id Yes integer No Yes CONCEPT CONCEPT_ID
401 CONCEPT_ANCESTOR max_levels_of_separation Yes integer The maximum separation in number of levels of hierarchy between ancestor and descendant concepts. This is an attribute that is used to simplify hierarchic analysis. No No
402 SOURCE_TO_CONCEPT_MAP source_code Yes varchar(50) The source code being translated into a Standard Concept. No No
403 SOURCE_TO_CONCEPT_MAP source_concept_id Yes integer A foreign key to the Source Concept that is being translated into a Standard Concept. This is either 0 or should be a number above 2 billion, which are the Concepts reserved for site-specific codes and mappings. No Yes CONCEPT CONCEPT_ID
404 SOURCE_TO_CONCEPT_MAP source_vocabulary_id Yes varchar(20) A foreign key to the VOCABULARY table defining the vocabulary of the source code that is being translated to a Standard Concept. No No
405 SOURCE_TO_CONCEPT_MAP source_code_description No varchar(255) An optional description for the source code. This is included as a convenience to compare the description of the source code to the name of the concept. No No
406 SOURCE_TO_CONCEPT_MAP target_concept_id Yes integer The target Concept to which the source code is being mapped. No Yes CONCEPT CONCEPT_ID
407 SOURCE_TO_CONCEPT_MAP target_vocabulary_id Yes varchar(20) The Vocabulary of the target Concept. No Yes VOCABULARY VOCABULARY_ID
444
445
446
447
448
449
450
542
543
544
545
546
547
548

View File

@ -40,7 +40,7 @@ SPECIMEN,CDM,No,SPECIMEN_,Yes,0,,The specimen domain contains the records identi
FACT_RELATIONSHIP,CDM,No,,No,,,"The FACT_RELATIONSHIP table contains records about the relationships between facts stored as records in any table of the CDM. Relationships can be defined between facts from the same domain, or different domains. Examples of Fact Relationships include: [Person relationships](https://athena.ohdsi.org/search-terms/terms?domain=Relationship&standardConcept=Standard&page=2&pageSize=15&query=) (parent-child), care site relationships (hierarchical organizational structure of facilities within a health system), indication relationship (between drug exposures and associated conditions), usage relationships (of devices during the course of an associated procedure), or facts derived from one another (measurements derived from an associated specimen).",,"All relationships are directional, and each relationship is represented twice symmetrically within the FACT_RELATIONSHIP table. For example, two persons if person_id = 1 is the mother of person_id = 2 two records are in the FACT_RELATIONSHIP table (all strings in fact concept_id records in the Concept table: FACT_RELATIONSHIP,CDM,No,,No,,,"The FACT_RELATIONSHIP table contains records about the relationships between facts stored as records in any table of the CDM. Relationships can be defined between facts from the same domain, or different domains. Examples of Fact Relationships include: [Person relationships](https://athena.ohdsi.org/search-terms/terms?domain=Relationship&standardConcept=Standard&page=2&pageSize=15&query=) (parent-child), care site relationships (hierarchical organizational structure of facilities within a health system), indication relationship (between drug exposures and associated conditions), usage relationships (of devices during the course of an associated procedure), or facts derived from one another (measurements derived from an associated specimen).",,"All relationships are directional, and each relationship is represented twice symmetrically within the FACT_RELATIONSHIP table. For example, two persons if person_id = 1 is the mother of person_id = 2 two records are in the FACT_RELATIONSHIP table (all strings in fact concept_id records in the Concept table:
- Person, 1, Person, 2, parent of - Person, 1, Person, 2, parent of
- Person, 2, Person, 1, child of" - Person, 2, Person, 1, child of"
LOCATION,CDM,No,,No,,,The LOCATION table represents a generic way to capture physical location or address information of Persons and Care Sites.,"The current iteration of the LOCATION table is US centric. Until a major release to correct this, certain fields can be used to represent different international values. <br><br> - STATE can also be used for province or district<br>- ZIP is also the postal code or postcode","Each address or Location is unique and is present only once in the table. Locations do not contain names, such as the name of a hospital. In order to construct a full address that can be used in the postal service, the address information from the Location needs to be combined with information from the Care Site." LOCATION,CDM,No,,No,,,The LOCATION table represents a generic way to capture physical location or address information of Persons and Care Sites.,"The current iteration of the LOCATION table is US centric. Until a major release to correct this, certain fields can be used to represent different international values. <br><br> - STATE can also be used for province or district<br>- ZIP is also the postal code or postcode <br>- COUNTY can also be used to represent region","Each address or Location is unique and is present only once in the table. Locations do not contain names, such as the name of a hospital. In order to construct a full address that can be used in the postal service, the address information from the Location needs to be combined with information from the Care Site."
CARE_SITE,CDM,No,,No,,,"The CARE_SITE table contains a list of uniquely identified institutional (physical or organizational) units where healthcare delivery is practiced (offices, wards, hospitals, clinics, etc.).",,"Care site is a unique combination of location_id and place_of_service_source_value. Care site does not take into account the provider (human) information such a specialty. Many source data do not make a distinction between individual and institutional providers. The CARE_SITE table contains the institutional providers. If the source, instead of uniquely identifying individual Care Sites, only provides limited information such as Place of Service, generic or ""pooled"" Care Site records are listed in the CARE_SITE table. There can be hierarchical and business relationships between Care Sites. For example, wards can belong to clinics or departments, which can in turn belong to hospitals, which in turn can belong to hospital systems, which in turn can belong to HMOs.The relationships between Care Sites are defined in the FACT_RELATIONSHIP table." CARE_SITE,CDM,No,,No,,,"The CARE_SITE table contains a list of uniquely identified institutional (physical or organizational) units where healthcare delivery is practiced (offices, wards, hospitals, clinics, etc.).",,"Care site is a unique combination of location_id and place_of_service_source_value. Care site does not take into account the provider (human) information such a specialty. Many source data do not make a distinction between individual and institutional providers. The CARE_SITE table contains the institutional providers. If the source, instead of uniquely identifying individual Care Sites, only provides limited information such as Place of Service, generic or ""pooled"" Care Site records are listed in the CARE_SITE table. There can be hierarchical and business relationships between Care Sites. For example, wards can belong to clinics or departments, which can in turn belong to hospitals, which in turn can belong to hospital systems, which in turn can belong to HMOs.The relationships between Care Sites are defined in the FACT_RELATIONSHIP table."
PROVIDER,CDM,No,,No,,,"The PROVIDER table contains a list of uniquely identified healthcare providers. These are individuals providing hands-on healthcare to patients, such as physicians, nurses, midwives, physical therapists etc.","Many sources do not make a distinction between individual and institutional providers. The PROVIDER table contains the individual providers. If the source, instead of uniquely identifying individual providers, only provides limited information such as specialty, generic or 'pooled' Provider records are listed in the PROVIDER table.", PROVIDER,CDM,No,,No,,,"The PROVIDER table contains a list of uniquely identified healthcare providers. These are individuals providing hands-on healthcare to patients, such as physicians, nurses, midwives, physical therapists etc.","Many sources do not make a distinction between individual and institutional providers. The PROVIDER table contains the individual providers. If the source, instead of uniquely identifying individual providers, only provides limited information such as specialty, generic or 'pooled' Provider records are listed in the PROVIDER table.",
PAYER_PLAN_PERIOD,CDM,No,,Yes,0,,"The PAYER_PLAN_PERIOD table captures details of the period of time that a Person is continuously enrolled under a specific health Plan benefit structure from a given Payer. Each Person receiving healthcare is typically covered by a health benefit plan, which pays for (fully or partially), or directly provides, the care. These benefit plans are provided by payers, such as health insurances or state or government agencies. In each plan the details of the health benefits are defined for the Person or her family, and the health benefit Plan might change over time typically with increasing utilization (reaching certain cost thresholds such as deductibles), plan availability and purchasing choices of the Person. The unique combinations of Payer organizations, health benefit Plans and time periods in which they are valid for a Person are recorded in this table.","A Person can have multiple, overlapping, Payer_Plan_Periods in this table. For example, medical and drug coverage in the US can be represented by two Payer_Plan_Periods. The details of the benefit structure of the Plan is rarely known, the idea is just to identify that the Plans are different.", PAYER_PLAN_PERIOD,CDM,No,,Yes,0,,"The PAYER_PLAN_PERIOD table captures details of the period of time that a Person is continuously enrolled under a specific health Plan benefit structure from a given Payer. Each Person receiving healthcare is typically covered by a health benefit plan, which pays for (fully or partially), or directly provides, the care. These benefit plans are provided by payers, such as health insurances or state or government agencies. In each plan the details of the health benefits are defined for the Person or her family, and the health benefit Plan might change over time typically with increasing utilization (reaching certain cost thresholds such as deductibles), plan availability and purchasing choices of the Person. The unique combinations of Payer organizations, health benefit Plans and time periods in which they are valid for a Person are recorded in this table.","A Person can have multiple, overlapping, Payer_Plan_Periods in this table. For example, medical and drug coverage in the US can be represented by two Payer_Plan_Periods. The details of the benefit structure of the Plan is rarely known, the idea is just to identify that the Plans are different.",

1 cdmTableName schema isRequired conceptPrefix measurePersonCompleteness measurePersonCompletenessThreshold validation tableDescription userGuidance etlConventions
40 COHORT_DEFINITION RESULTS No No The COHORT_DEFINITION table contains records defining a Cohort derived from the data through the associated description and syntax and upon instantiation (execution of the algorithm) placed into the COHORT table. Cohorts are a set of subjects that satisfy a given combination of inclusion criteria for a duration of time. The COHORT_DEFINITION table provides a standardized structure for maintaining the rules governing the inclusion of a subject into a cohort, and can store operational programming code to instantiate the cohort within the OMOP Common Data Model.
41
42
43
44
45
46

View File

@ -1,2 +1,2 @@
setwd("/Users/clairblacketer/Documents/GitHub/CdmDdlBase/rmd")# setwd("/Users/clairblacketer/Documents/Github/CommonDataModel/rmd")#
rmarkdown::render_site() rmarkdown::render_site()

View File

@ -9,6 +9,9 @@ output:
exclude: ["extras"] exclude: ["extras"]
navbar: navbar:
title: '<div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div>' title: '<div><img src="ohdsi16x16.png"></img> OMOP Common Data Model </div>'
right:
- icon: fa-github
href: https://github.com/OHDSI/CommonDataModel
left: left:
- icon: fa-home - icon: fa-home
href: index.html href: index.html
@ -17,52 +20,58 @@ navbar:
menu: menu:
- text: "Model Background" - text: "Model Background"
href: background.html href: background.html
- text: "CDM Refresh Process"
href: cdmRefreshProcess.html
- text: "How the Vocabulary is Built" - text: "How the Vocabulary is Built"
href: vocabulary.html href: vocabulary.html
- text: "Conventions" - text: "Conventions"
icon: fa-list-alt icon: fa-list-alt
href: dataModelConventions.html menu:
- text: "General Conventions"
href: dataModelConventions.html
- text: "Observation Periods for EHR Data"
href: ehrObsPeriods.html
- text: "Patient Privacy and OMOP"
href: cdmPrivacy.html
- text: "CDM Versions" - text: "CDM Versions"
icon: fa-history icon: fa-history
menu: menu:
- text: "CDM v3.0" - text: "CDM v3.0"
href: cdm30.html href: cdm30.html
- text: "CDM v5.3"
href: cdm53.html
- text: "CDM v5.4"
href: cdm54.html
- text: "CDM v6.0" - text: "CDM v6.0"
href: cdm60.html href: cdm60.html
- text: "CDM v5.3"
href: cdm53.html
- text: "NEW CDM v5.4"
menu:
- text: "CDM v5.4"
href: cdm54.html
- text: "Changes from CDM v5.3"
href: cdm54Changes.html
- text: "Proposals" - text: "Proposals"
icon: fa-plus-square icon: fa-plus-square
menu: menu:
- text: "Under Review" - text: "Under Review"
href: reviewProposals.html href: https://github.com/OHDSI/CommonDataModel/issues?q=is%3Aopen+is%3Aissue+label%3AProposal
- text: "Accepted" - text: "Accepted"
menu: menu:
- text: "Oncology CDM Proposal"
href: oncology.html
- text: "Region_concept_id" - text: "Region_concept_id"
href: https://github.com/OHDSI/CommonDataModel/issues/252 href: https://github.com/OHDSI/CommonDataModel/issues/252
- text: "Units in Device Table" - text: "How to"
href: https://github.com/OHDSI/CommonDataModel/issues/264
- text: "Help"
icon: fa-question icon: fa-question
menu:
- text: "Download the DDL"
href: download.html
- text: "Use the CDM R Package"
href: cdmRPackage.html
- text: "Calculate Drug Dose"
href: drug_dose.html
- text: "Support"
icon: fa-life-ring
menu: menu:
- text: "FAQ" - text: "FAQ"
href: faq.html href: faq.html
- text: "Ask a Question"
href: contribute.html
- text: "How to"
icon: fa-wrench
menu:
- text: "SQL Scripts" - text: "SQL Scripts"
href: sqlScripts.html href: sqlScripts.html
- text: "Download the DDL" - text: "Ask a Question"
href: download.html href: contribute.html
- text: "Calculate Drug Dose"
href: drug_dose.html
right:
- icon: fa-github fa-lg
href: https://github.com/OHDSI/CommonDataModel

View File

@ -13,7 +13,7 @@ The Observational Medical Outcomes Partnership (OMOP) was a public-private partn
- Develop tools and capabilities for transforming, characterizing, and analysing disparate data sources across the health care delivery spectrum - Develop tools and capabilities for transforming, characterizing, and analysing disparate data sources across the health care delivery spectrum
- Establish a shared resource so that the broader research community can collaboratively advance the science - Establish a shared resource so that the broader research community can collaboratively advance the science
The results of OMOP's research has been widely published and presented at scientific conferences, including [annual symposia](https://www.ohdsi.org/events/2019-ohdsi-symposium/). The results of OMOP's research has been widely published and presented at scientific conferences, including [annual symposia](https://www.ohdsi.org/2021-ohdsi-global-symposium-info/).
The OMOP Legacy continues... The OMOP Legacy continues...

View File

@ -1,109 +1,106 @@
--- ---
output: output:
# pdf_document: html_document:
# toc: yes toc: yes
# toc_depth: '5' toc_depth: 5
html_document: toc_float: yes
toc: yes ---
toc_depth: 5
toc_float: yes ```{r setup, include=FALSE, eval=TRUE}
---
#todo figure out how to get the document dynamically without specifying the name
```{r setup, include=FALSE, eval=TRUE} library(rmarkdown)
library(knitr)
#todo figure out how to get the document dynamically without specifying the name library(kableExtra)
library(rmarkdown) library(magrittr)
library(knitr) library(dplyr)
library(kableExtra) library(stringr)
library(magrittr)
library(dplyr) ```
library(stringr)
# **OMOP CDM v5.3**
```
Below is the specification document for the OMOP Common Data Model, v5.3 (previously v5.3.1). Each table is represented with a high-level description and ETL conventions that should be followed. This is continued with a discussion of each field in each table, any conventions related to the field, and constraints that should be followed (like primary key, foreign key, etc). Should you have questions please feel free to visit the [forums](https://forums.ohdsi.org/) or the [github issue](https://github.com/ohdsi/CommonDataModel/issues) page.
# **OMOP CDM v5.3**
*__Special Note__ This documentation previously referenced v5.3.1. During the OHDSI/CommonDataModel Hack-A-Thon that occurred on August 18, 2021 the decision was made to align documentation with the minor releases. Hot fixes and minor.minor release can be found through the searching of tags.*
Below is the specification document for the OMOP Common Data Model, v5.3 (previously v5.3.1). Each table is represented with a high-level description and ETL conventions that should be followed. This is continued with a discussion of each field in each table, any conventions related to the field, and constraints that should be followed (like primary key, foreign key, etc). Should you have questions please feel free to visit the [forums](https://forums.ohdsi.org/) or the [github issue](https://github.com/ohdsi/CommonDataModel/issues) page.
--after regeneration of DDLs
*__Special Note__ This documentation previously referenced v5.3.1. During the OHDSI/CommonDataModel Hack-A-Thon that occurred on August 18, 2021 the decision was made to align documentation with the minor releases. Hot fixes and minor.minor release can be found through the searching of tags.* link to csv of cdm
link to pdf of cdm documentation
--after regeneration of DDLs link to forum on doc page
link to csv of cdm
link to pdf of cdm documentation ```{r docLoop53, echo=FALSE, results='asis'}
link to forum on doc page tableSpecs <- read.csv("../inst/csv/OMOP_CDMv5.3_Table_Level.csv", stringsAsFactors = FALSE)
cdmSpecs <- read.csv("../inst/csv/OMOP_CDMv5.3_Field_Level.csv", stringsAsFactors = FALSE)
```{r docLoop53, echo=FALSE, results='asis'}
tableSpecs <- read.csv("../inst/csv/OMOP_CDMv5.3_Table_Level.csv", stringsAsFactors = FALSE) tables <- tableSpecs$cdmTableName
cdmSpecs <- read.csv("../inst/csv/OMOP_CDMv5.3_Field_Level.csv", stringsAsFactors = FALSE)
cdmSpecsClean <- cdmSpecs %>%
tables <- tableSpecs$cdmTableName dplyr::select(`CDM Table` = cdmTableName,
`CDM Field` = cdmFieldName,
cdmSpecsClean <- cdmSpecs %>% `User Guide` = userGuidance,
dplyr::select(`CDM Table` = cdmTableName, `ETL Conventions` = etlConventions,
`CDM Field` = cdmFieldName, `Datatype` = cdmDatatype,
`User Guide` = userGuidance, `Required` = isRequired,
`ETL Conventions` = etlConventions, `Primary Key` = isPrimaryKey,
`Datatype` = cdmDatatype, `Foreign Key` = isForeignKey,
`Required` = isRequired, `FK Table` = fkTableName,
`Primary Key` = isPrimaryKey, `FK Domain` = fkDomain
`Foreign Key` = isForeignKey, )
`FK Table` = fkTableName,
`FK Domain` = fkDomain cdmSpecsClean[is.na(cdmSpecsClean)] <- ""
)
for(tb in tables) {
cdmSpecsClean[is.na(cdmSpecsClean)] <- ""
if(tb == 'PERSON'){
for(tb in tables) { cat("## **Clinical Data Tables**\n\n")
}
if(tb == 'PERSON'){
cat("## **Clinical Data Tables**\n\n") if(tb == 'LOCATION'){
} cat("## **Health System Data Tables**\n\n")
}
if(tb == 'LOCATION'){
cat("## **Health System Data Tables**\n\n") if(tb == 'PAYER_PLAN_PERIOD'){
} cat("## **Health Economics Data Tables**\n\n")
}
if(tb == 'PAYER_PLAN_PERIOD'){
cat("## **Health Economics Data Tables**\n\n") if(tb == 'DRUG_ERA'){
} cat("## **Standardized Derived Elements**\n\n")
}
if(tb == 'DRUG_ERA'){
cat("## **Standardized Derived Elements**\n\n") if(tb == 'METADATA'){
} cat("## **Metadata Tables**\n\n")
}
if(tb == 'METADATA'){ if(tb == 'CONCEPT'){
cat("## **Metadata Tables**\n\n") cat("## **Vocabulary Tables**\n\n")
} }
if(tb == 'CONCEPT'){
cat("## **Vocabulary Tables**\n\n") cat("###", tb, "{.tabset .tabset-pills} \n\n")
}
tableInfo <- subset(tableSpecs, cdmTableName == tb)
cat("###", tb, "{.tabset .tabset-pills} \n\n") cat("**Table Description**\n\n",tableInfo[,"tableDescription"], "\n\n")
tableInfo <- subset(tableSpecs, cdmTableName == tb) if(!isTRUE(tableInfo[,"userGuidance"]=="")){
cat("**Table Description**\n\n",tableInfo[,"tableDescription"], "\n\n") cat("**User Guide**\n\n",tableInfo[,"userGuidance"],"\n\n")
}
if(!isTRUE(tableInfo[,"userGuidance"]=="")){
cat("**User Guide**\n\n",tableInfo[,"userGuidance"],"\n\n") if(!isTRUE(tableInfo[,"etlConventions"]=="")){
} cat("**ETL Conventions**\n\n",tableInfo[,"etlConventions"],"\n\n")
}
if(!isTRUE(tableInfo[,"etlConventions"]=="")){
cat("**ETL Conventions**\n\n",tableInfo[,"etlConventions"],"\n\n") loopTable <- subset(cdmSpecsClean, `CDM Table` == tb)
} loopTable <- subset(loopTable, select = -c(1))
loopTable <- subset(cdmSpecsClean, `CDM Table` == tb) print(kable(x = loopTable, align = "l", row.names = FALSE, format = "html", escape = FALSE) %>%
loopTable <- subset(loopTable, select = -c(1)) column_spec(1, bold = T) %>%
column_spec(2, width = "3in", include_thead = T) %>%
print(kable(x = loopTable, align = "l", row.names = FALSE, format = "html", escape = FALSE) %>% column_spec(3, width = "4in", include_thead = T) %>%
column_spec(1, bold = T) %>% column_spec(4:9, width = "1in", include_thead = T) %>%
column_spec(2, width = "3in", include_thead = T) %>% kable_styling(c("condensed","hover"), position = "center", full_width = T, font_size = 13))
column_spec(3, width = "4in", include_thead = T) %>%
column_spec(4:9, width = "1in", include_thead = T) %>%
kable_styling(c("condensed","hover"), position = "center", full_width = T, font_size = 13)) }
}
```
```

Binary file not shown.

View File

@ -1,107 +1,101 @@
--- ---
output: output:
# pdf_document: html_document:
# toc: yes toc: yes
# toc_depth: '5' toc_depth: 5
html_document: toc_float: yes
toc: yes ---
toc_depth: 5
toc_float: yes ```{r setup, include=FALSE, eval=TRUE}
---
#todo figure out how to get the document dynamically without specifying the name
```{r setup, include=FALSE, eval=TRUE} library(rmarkdown)
library(knitr)
#todo figure out how to get the document dynamically without specifying the name library(kableExtra)
library(rmarkdown) library(magrittr)
library(knitr) library(dplyr)
library(kableExtra) library(stringr)
library(magrittr)
library(dplyr) ```
library(stringr)
# **OMOP CDM v5.4**
```
Below is the specification document for the OMOP Common Data Model, v5.4. **This is the latest version of the OMOP CDM.** Each table is represented with a high-level description and ETL conventions that should be followed. This is continued with a discussion of each field in each table, any conventions related to the field, and constraints that should be followed (like primary key, foreign key, etc). Should you have questions please feel free to visit the [forums](https://forums.ohdsi.org/) or the [github issue](https://github.com/ohdsi/CommonDataModel/issues) page.
# **OMOP CDM v5.4**
Looking to send us a pull request for a bug fix? Please see the [readme](https://github.com/OHDSI/CommonDataModel#readme) on the main github page.
Below is the specification document for the OMOP Common Data Model, v5.4. Each table is represented with a high-level description and ETL conventions that should be followed. This is continued with a discussion of each field in each table, any conventions related to the field, and constraints that should be followed (like primary key, foreign key, etc). Should you have questions please feel free to visit the [forums](https://forums.ohdsi.org/) or the [github issue](https://github.com/ohdsi/CommonDataModel/issues) page.
```{r docLoop54, echo=FALSE, results='asis'}
--after regeneration of DDLs tableSpecs <- read.csv("../inst/csv/OMOP_CDMv5.4_Table_Level.csv", stringsAsFactors = FALSE)
link to csv of cdm cdmSpecs <- read.csv("../inst/csv/OMOP_CDMv5.4_Field_Level.csv", stringsAsFactors = FALSE)
link to pdf of cdm documentation
link to forum on doc page tables <- tableSpecs$cdmTableName
```{r docLoop53, echo=FALSE, results='asis'} cdmSpecsClean <- cdmSpecs %>%
tableSpecs <- read.csv("../inst/csv/OMOP_CDMv5.4_Table_Level.csv", stringsAsFactors = FALSE) dplyr::select(`CDM Table` = cdmTableName,
cdmSpecs <- read.csv("../inst/csv/OMOP_CDMv5.4_Field_Level.csv", stringsAsFactors = FALSE) `CDM Field` = cdmFieldName,
`User Guide` = userGuidance,
tables <- tableSpecs$cdmTableName `ETL Conventions` = etlConventions,
`Datatype` = cdmDatatype,
cdmSpecsClean <- cdmSpecs %>% `Required` = isRequired,
dplyr::select(`CDM Table` = cdmTableName, `Primary Key` = isPrimaryKey,
`CDM Field` = cdmFieldName, `Foreign Key` = isForeignKey,
`User Guide` = userGuidance, `FK Table` = fkTableName,
`ETL Conventions` = etlConventions, `FK Domain` = fkDomain
`Datatype` = cdmDatatype, )
`Required` = isRequired,
`Primary Key` = isPrimaryKey, cdmSpecsClean[is.na(cdmSpecsClean)] <- ""
`Foreign Key` = isForeignKey,
`FK Table` = fkTableName, for(tb in tables) {
`FK Domain` = fkDomain
) if(tb == 'PERSON'){
cat("## **Clinical Data Tables**\n\n")
cdmSpecsClean[is.na(cdmSpecsClean)] <- "" }
for(tb in tables) { if(tb == 'LOCATION'){
cat("## **Health System Data Tables**\n\n")
if(tb == 'PERSON'){ }
cat("## **Clinical Data Tables**\n\n")
} if(tb == 'PAYER_PLAN_PERIOD'){
cat("## **Health Economics Data Tables**\n\n")
if(tb == 'LOCATION'){ }
cat("## **Health System Data Tables**\n\n")
} if(tb == 'DRUG_ERA'){
cat("## **Standardized Derived Elements**\n\n")
if(tb == 'PAYER_PLAN_PERIOD'){ }
cat("## **Health Economics Data Tables**\n\n")
} if(tb == 'METADATA'){
cat("## **Metadata Tables**\n\n")
if(tb == 'DRUG_ERA'){ }
cat("## **Standardized Derived Elements**\n\n") if(tb == 'CONCEPT'){
} cat("## **Vocabulary Tables**\n\n")
}
if(tb == 'METADATA'){
cat("## **Metadata Tables**\n\n") cat("###", tb, "{.tabset .tabset-pills} \n\n")
}
if(tb == 'CONCEPT'){ tableInfo <- subset(tableSpecs, cdmTableName == tb)
cat("## **Vocabulary Tables**\n\n") cat("**Table Description**\n\n",tableInfo[,"tableDescription"], "\n\n")
}
if(!isTRUE(tableInfo[,"userGuidance"]=="")){
cat("###", tb, "{.tabset .tabset-pills} \n\n") cat("**User Guide**\n\n",tableInfo[,"userGuidance"],"\n\n")
}
tableInfo <- subset(tableSpecs, cdmTableName == tb)
cat("**Table Description**\n\n",tableInfo[,"tableDescription"], "\n\n") if(!isTRUE(tableInfo[,"etlConventions"]=="")){
cat("**ETL Conventions**\n\n",tableInfo[,"etlConventions"],"\n\n")
if(!isTRUE(tableInfo[,"userGuidance"]=="")){ }
cat("**User Guide**\n\n",tableInfo[,"userGuidance"],"\n\n")
} loopTable <- subset(cdmSpecsClean, `CDM Table` == tb)
loopTable <- subset(loopTable, select = -c(1))
if(!isTRUE(tableInfo[,"etlConventions"]=="")){
cat("**ETL Conventions**\n\n",tableInfo[,"etlConventions"],"\n\n") print(kable(x = loopTable, align = "l", row.names = FALSE, format = "html", escape = FALSE) %>%
} column_spec(1, bold = T) %>%
column_spec(2, width = "3in", include_thead = T) %>%
loopTable <- subset(cdmSpecsClean, `CDM Table` == tb) column_spec(3, width = "4in", include_thead = T) %>%
loopTable <- subset(loopTable, select = -c(1)) column_spec(4:9, width = "1in", include_thead = T) %>%
kable_styling(c("condensed","hover"), position = "center", full_width = T, font_size = 13))
print(kable(x = loopTable, align = "l", row.names = FALSE, format = "html", escape = FALSE) %>%
column_spec(1, bold = T) %>%
column_spec(2, width = "3in", include_thead = T) %>% }
column_spec(3, width = "4in", include_thead = T) %>%
column_spec(4:9, width = "1in", include_thead = T) %>%
kable_styling(c("condensed","hover"), position = "center", full_width = T, font_size = 13))
```
}
```

184
rmd/cdm54Changes.rmd Normal file
View File

@ -0,0 +1,184 @@
---
output:
html_document:
toc: TRUE
toc_float: TRUE
---
# **Changes by Table**
*from CDM v5.3 -> CDM v5.4*
For a full description of each table and field listed here, please see the [CDM specification](http://ohdsi.github.io/CommonDataModel/cdm54.html).
Notation:
- a **\+** indicates an addition to the model, either a table or field
- a **->** indicates an alteration either in naming or specification
- a **-** indicates a subtraction from the model, either a table or field
## PERSON
- No change
## OBSERVATION_PERIOD
- No change
## VISIT_OCCURRENCE
- Admitting_source_concept_id -> **Admitted_from_concept_id**
- Admitting_source_value -> **Admitted_from_source_value**
- Discharge_to_concept_id -> **Discharged_to_concept_id**
- Discharge_to_source_value -> **Discharged_to_concept_id**
## VISIT_DETAIL
- Admitting_source_concept_id -> **Admitted_from_concept_id**
- Admitting_source_value -> **Admitted_from_source_value**
- Discharge_to_concept_id -> **Discharged_to_concept_id**
- Discharge_to_source_value -> **Discharged_to_concept_id**
- Visit_detail_parent_id -> **Parent_visit_detail_id**
## CONDITION_OCCURRENCE
- No change
## DRUG_EXPOSURE
- No change
## PROCEDURE_OCCURRENCE
- \+ **Procedure_end_date**
- \+ **Procedure_end_datetime**
## DEVICE_EXPOSURE
- Unique_device_id -> **Changed to varchar(255)**
- \+ **Production_id**
- \+ **Unit_concept_id**
- \+ **Unit_source_value**
- \+ **Unit_source_concept_id**
## MEASUREMENT
- \+ **Unit_source_concept_id**
- \+ **Measurement_event_id**
- \+ **Meas_event_field_concept_id**
## OBSERVATION
- \+ **Value_source_value**
- \+ **Observation_event_id**
- \+ **Obs_event_field_concept_id**
## DEATH
- No change
## NOTE
- \+ **Note_event_id**
- \+ **Note_event_field_concept_id**
## NOTE_NLP
- No change
## SPECIMEN
- No change
## FACT_RELATIONSHIP
- No change
## LOCATION
- \+ **Country_concept_id**
- \+ **Country_source_value**
- \+ **Latitude**
- \+ **Longitude**
## CARE_SITE
- No change
## PAYER_PLAN_PERIOD
- No change
## COST
- No change
## DRUG_ERA
- No change
## DOSE_ERA
- No change
## CONDITION_ERA
- No change
## \+ **EPISODE**
| EPISODE |
|----------------------------------|
| episode_id |
| person_id |
| episode_concept_id |
| episode_start_date |
| episode_start_datetime |
| episode_end_date |
| episode_end_datetime |
| episode_parent_id |
| episode_number |
| episode_object_concept_id |
| episode_type_concept_id |
| episode_source_value |
| episode_source_concept_id |
## \+ **EPISODE_EVENT**
| EPISODE_EVENT |
|------------------------------------|
| episode_id |
| event_id |
| episode_event_field_concept_id |
## METADATA
- \+ **Metadata_id**
- \+ **Value_as_number**
## CDM_SOURCE
- Cdm_source_name -> **Mandatory field**
- Cdm_source_abbreviation -> **Mandatory field**
- Cdm_holder -> **Mandatory field**
- Source_release_date -> **Mandatory field**
- Cdm_release_date -> **Mandatory field**
- \+ **Cdm_version_concept_id**
## CONCEPT
- No change
## VOCABULARY
- Vocabulary_reference -> **Non-mandatory field**
- Vocabulary_version -> **Non-mandatory field**
## DOMAIN
- No change
## CONCEPT_CLASS
- No change
## CONCEPT_RELATIONSHIP
- No change
## RELATIONSHIP
- No change
## CONCEPT_SYNONYM
- No change
## CONCEPT_ANCESTOR
- No change
## SOURCE_TO_CONCEPT_MAP
- No change
## DRUG_STRENGTH
- No change
## - **ATTRIBUTE_DEFINITION**
## \+ **COHORT**
| COHORT |
|------------------------------------|
| cohort_definition_id |
| subject_id |
| cohort_start_date |
| cohort_end_date |

157
rmd/cdmPrivacy.Rmd Normal file
View File

@ -0,0 +1,157 @@
---
title: "Preserving Privacy in an OMOP CDM Implementation"
output:
html_document:
toc: TRUE
toc_float: TRUE
---
*By Kristin Kostka*
# Background
The OMOP CDM is a person-centric model. Being person-centric means the model can retain attributes that may be considered personal identified information (PII) or protected health information (PHI). There are many different ways a site may treat their OMOP CDM to uphold their privacy protocols. In this article we provide guidance on overall process and the potential fields that should be monitored to adhere to these various privacy preserving protocols.
### Defining PII and PHI
- PII is defined as any representation of information that permits the identity of an individual to whom the information applies to be reasonably inferred to either direct or indirect means [1].
- The United States Department of Health & Human Services´ Office for Civil Rights has defined PHI as any Personal Identifying Information (PII) that individually or combined could potentially identify a specific individual, their past, present or future healthcare, or the method of payment. There are eighteen unique identifiers considered to be PHI: 1) names, 2) geographic data, 3) all elements of dates, 4) telephone numbers, 5) FAX numbers, 6) email addresses, 7) Social Security numbers (SSN), 8) medical record numbers (MRN), 9) health plan beneficiary numbers, 10) account numbers, 11) certificate/license numbers, 12) vehicle identifiers and serial numbers including license places, 13) device identifiers and serial numbers, 14) web URLs, 15) internet protocol addresses, 16) biometric identifiers (i.e. retinal scan, fingerprints), 17) full face photos and comparable images, and 18) any unique identifying number, characteristic or code. PHI is no longer considered PHI when it de-identified of these unique attributes. PHI is commonly referred to in relation to the Health Insurance Portability and Accountability Act (HIPAA) and associated legislation such as the Health Information Technology for Economic and Clinical Health Act (HITECH) [2].
# The Data Holder's Responsibility
In OHDSI, it is the responsibility of each data holder to know, understand and follow local data governance processes related to use of the OMOP CDM. In the United States, these processes will follow your organization's local interpretation for maintaining compliance to PII and PHI protection. In OMOP CDM implementations containing European Union citizen data, local governance processes will include measures to comply with General Data Protection Regulation (GDPR) [3]. As a community, the OHDSI data network covers more than 330 databases from 34 countries. There is extensive community knowledge on the interpretation of rule sets and exemplar IRB and local governance workflows that can be made available to institutions navigating these processes for the first time. If your organization does not have an established data governance process, please reach out on the [OHDSI Forums](forums.ohdsi.org) under "Implementers" and the community can respond with shared guidance from their own deployments. As a community, we aim to conduct research that keeps patient-level data local and share only aggregate results.
# Complying with Privacy Preservation
Complying with local governance processes depends on the rule set being used. There may be allowable times when data use agreements and data transfer agreements exist between collaborating institutions to facilitate sharing of PII and PHI. In this section we will discuss common rule sets that organizations adhere to.
## Limited Data Sets
A limited data set (LDS) is defined as protected health information that excludes certain direct identifiers of an individual or of relatives, employers or household members of the individual — but may include city, state, ZIP code and elements of dates. A LDS can be disclosed only for purposes of research, public health or health care operations. LDS requirements are dictated by the HIPAA Privacy Rule.
## De-identified Data Sets
A de-identified data, as defined by Section 164.514(a) of the HIPAA Privacy rule, is health information that does not identify an individual and with respect to which there is no reasonable basis to believe that the information can be used to identify an individual is not individually identifiable health information. There are two methods for achieving de-identification in accordance with HIPAA [4].
1) Expert Determination (§164.514(a))- Implementation specifications: requirements for de-identification of protected health information. A covered entity may determine that health information is not individually identifiable health information only if:
(1) A person with appropriate knowledge of and experience with generally accepted statistical and scientific principles and methods for rendering information not individually identifiable:
(i) Applying such principles and methods, determines that the risk is very small that the information could be used, alone or in combination with other reasonably available information, by an anticipated recipient to identify an individual who is a subject of the information; and
(ii) Documents the methods and results of the analysis that justify such determination.
2) Safe Harbor (§164.514(b)) The eighteen unique identifiers are obfuscated. This includes processes such as:
A) Dates of service are algorithmically shifted to protect patient privacy.
B) Patient ZIP codes are truncated to the first three digits or removed entirely if the ZIP code represents fewer than 20,000 individuals.
C) Removing and, when necessary, replacing unique identifiers
AND
The entity does not have actual knowledge that the information could be used alone or in combination with other information to identify an individual who is a subject of the information.
## Field-level Implications of De-identification Processes
### PERSON Table Attributes
In the OMOP CDM, the PERSON table serves as the central identity management for all Persons in the database. It contains records that uniquely identify each person or patient, and some demographic information. It is a table that has a number of field-level implications for privacy preserving protocols.
Considerations include:
- PERSON.person_id should never contain Medical Record Number, Social Security Number or similar uniquely identifiable number. This should be a number that is essentially meaningless but has the ability to be a primary key across tables.
- PERSON.year_of_birth, PERSON.month_of_birth and PERSON.date_of_birth, PERSON.birth_datetime may require some redaction or modification depending on interpretation of rule set. Consult local guidance on the need to modify these fields when creating compliant views of de-identified data.
- PERSON.person_source_value may contain sensitive information used to generate the person_id field. It is advised to practice caution when creating views of these data. It would be wise to obfuscate or redact this field if you are not sure what is contained in the raw information being extracted, transformed and loaded into the CDM.
## Date Fields Across Domains
Date fields are used across many OMOP domains including: OBSERVATION_PERIOD, VISIT_OCCURRENCE, VISIT_DETAIL, CONDITION_OCCURRENCE, DRUG_EXPOSURE, PROCEDURE_OCCURRENCE, DEVICE_EXPOSURE, MEASUREMENT, OBSERVATION, DEATH, NOTE, NOTE_NLP, SPECIMEN, PAYER_PLAN_PERIOD, DRUG_ERA, DOSE_ERA, and CONDITION_ERA.
As discussed previously, some rule sets may require algorithmically shifting dates. It is advised that when date shifting is applied, it is done holistically. This means that when shifting dates, you should not treat each record independently. Instead, a robust date shifting algorithm will link off the *.person_id (where * is the domain name such as CONDITION_OCCURRENCE, etc) and apply the same offset to all events. This allows researchers to have the ability to understand the sequence of events while preserving patient privacy.
The implications of not holistically shifting all events together by the same offset means that information may be out of sequence or illogical. An example would be a death record that happens prior to other event records (conditions, drugs, procedures, etc). When applying an algorithmic shift of dates, it is important to educate your OMOP CDM user group of the known offset. This is especially important in temporal studies which may be looking to make statements about disease history relative to the time when an event is observed.
Some rule sets do not require algorithmic shifting of dates, such as Limited Data Sets. In these situations, a user of a LDS OMOP CDM would not be expecting dates to the shifted. If a shift is applied, it should be disclosed and the offset amount (e.g. +/- 7 days, +/- 30 days, etc) should be made available to those who have received permission to use a LDS dataset. Otherwise, these data are not upholding the assumptions of the rule set applied.
## LOCATION Table Attributes
The LOCATION table represents a generic way to capture physical location or address information of Persons and Care Sites. When applying privacy preserving procedures, this table should be reviewed and scrubbed relative to the rule set. The LOCATION.zip field should be redacted relative to the type of process applied (e.g. 3-digit zip for de-identified data). The LOCATION.location_source_value should be reviewed for potential PII/PHI. It would be wise to obfuscate or redact this field if you are not sure what is contained in the raw information being extracted, transformed and loaded into the CDM.
## PROVIDER Table Attributes
The PROVIDER table contains a list of uniquely identified healthcare providers. These are individuals providing hands-on healthcare to patients, such as physicians, nurses, midwives, physical therapists etc. In some privacy preserving processes, the PROVIDER.npi and PROVIDER.dea fields may be redacted. Please review this field and confirm that you are adhering to privacy rule sets. The PROVIDER.year_of_birth field is an optional field that may also require treatment in certain rule sets.
## OBSERVATION Table Attributes
The OBSERVATION table captures clinical facts about a Person obtained in the context of examination, questioning or a procedure. Any data that cannot be represented by any other domains, such as social and lifestyle facts, medical history, family history, etc. are recorded here.
We strongly caution ETL teams to review the OBSERVATION table for potential PII/PHI. In some source systems, there can be information coming in these vocabularies that are not laboratory or clinical observations but instead are patient identifiers. If you search in ATHENA, you will find there are a number of standard terms in the SNOMED and LOINC vocabularies that can represent phone numbers, emails, and other PII information.
It is difficult to create an exhaustive list of terms because these ontologies do not maintain or publish lists of terms that may contain patient identifiers. It is, therefore, up to data holders to perform a review of this domain with an eye for these potential privacy issues. The National COVID Cohort Collaborative, a NIH consortium which uses the OMOP CDM, has published a resource for sites needing assistance with identifying these potentially problematic records. A “live” version of this table that will track updates over time is hosted at https://github.com/data2health/next-gen-data-sharing/blob/master/CodesWithPPIPotential.csv. We welcome additions to this list from the community.
## Scrutinizing *_source_value
The *_source_value (where * is the domain name such as CONDITION_OCCURRENCE, etc) fields present an opportunity for sites to carry forward potential PII/PHI in ETL processes. Because the convention of the OMOP CDM has minimal boundaries on what are retained in these fields, it is important to treat all source_value fields as potentially containing PII/PHI. We highly advise all data holders to scrutinize these fields when applying privacy preserving processes. It is not uncommon for fields to be overloaded and contain potential patient identifiers. Please use caution when transmitting or making views of these fields available to users.
## Scrutinizing String Fields
Across OMOP Domains, there are many fields which permit the use of strings (e.g. DRUG_EXPOSURE.sig, MEASUREMENT.value_as_string, OBSERVATION.value_as_string, We've discussed some of these in prior sections. It is advised that fields with strings often have the potential to contain unintentional PII/PHI. Targeted regular expressions can be built into ETL processes in order to “sniff” out any additional PII (or potential PII)--such as any data in the format of a phone number, or a person or place name. (E.g., the regular expression "Mr\.|Mrs\.|\bMiss\b|Dr\.|, M\.?D\.?" will find any string with an English name prefix.) Depending on risk tolerance, the expressions could err toward sensitivity or specificity, and could be tweaked over time to meet different rule sets.
Extensive regular expression matching during ETL may add significant processing time and should therefore not be relied upon as a sole solution, but rather an extra protection against edge cases. Other algorithmic rules may also prove useful, such as automatically quarantining records with lengthy string values (which could signal the presence of free text). If these approaches are implemented, records that match the regular expressions or rules can be quarantined in a separate table or staging area to be manually reviewed by a data broker. Thus, in addition to adding another layer of PII protection, another advantage of these approaches is the potential to uncover ways that underlying vocabularies may be contributing to unintentional sharing of PII and create awareness for future privacy preserving processes shared across the community.
## NOTE and NOTE_NLP Table Attributes
The NOTE table captures unstructured information that was recorded by a provider about a patient in free text (in ASCII, or preferably in UTF8 format) notes on a given date. The NOTE_NLP table encodes all output of NLP on clinical notes. Each row represents a single extracted term from a note. There is a high potential these tables may retain information that is considered PII/PHI. In addition to overall string searching, these tables are likely to be dropped altogether to adhere to the most stringent rule sets.
It is highly advised that if you are conducting a study with NOTE and NOTE_NLP table information, please consult with your local governance and privacy officers to ensure compliance with local rule sets.
## Conclusion
Privacy preserving processes are not one-size fits all. There are many different rule sets that can be applied to datasets. Data holders are recommended to consult with their local privacy officer(s) to ensure all processes applied to a database are compliant with local interpretation of the selected rule set.
# References
1.
BibText version:
@MISC{noauthor_undated-mg,
title = "Guidance on the Protection of Personal Identifiable
Information",
abstract = "Personal Identifiable Information (PII) is defined as:",
howpublished = "\url{https://www.dol.gov/general/ppii}",
note = "Accessed: 2021-8-18"
}
Regular citation:
Guidance on the Protection of Personal Identifiable Information. [cited 18 Aug 2021]. Available: https://www.dol.gov/general/ppii
2.
BibText version:
@MISC{HIPAA_Journal2017-yo,
title = "What Does {PHI} Stand For?",
author = "{HIPAA Journal}",
abstract = "PHI is a term used in connection with health data, but what
does PHI stand for? What information is included in the
definition of PHI.",
month = dec,
year = 2017,
howpublished = "\url{https://www.hipaajournal.com/what-does-phi-stand-for/}",
note = "Accessed: 2021-8-18",
language = "en"
}
Regular citation:
HIPAA Journal. What Does PHI Stand For? 23 Dec 2017 [cited 18 Aug 2021]. Available: https://www.hipaajournal.com/what-does-phi-stand-for/
3.
BibText version:
@MISC{noauthor_2018-mt,
title = "General Data Protection Regulation ({GDPR}) Compliance
Guidelines",
abstract = "The EU General Data Protection Regulation went into effect on
May 25, 2018, replacing the Data Protection Directive
95/46/EC. Designed to increase data privacy for EU citizens,
the regulation levies steep fines on organizations that don't
follow the law.",
month = jun,
year = 2018,
howpublished = "\url{https://gdpr.eu/}",
note = "Accessed: 2021-8-18",
language = "en"
}
Regular citation:
General Data Protection Regulation (GDPR) Compliance Guidelines. 18 Jun 2018 [cited 18 Aug 2021]. Available: https://gdpr.eu/
4.
BibText version:
@MISC{Office_for_Civil_Rights_OCR_undated-zy,
title = "Methods for De-identification of {PHI}",
author = "{Office for Civil Rights (OCR)}",
abstract = "Guidance about methods and approaches to achieve
de-identification in accordance with the Health Insurance
Portability and Accountability Act of 1996.",
howpublished = "\url{https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html}",
note = "Accessed: 2021-8-19"
}
Regular citation:
Office for Civil Rights (OCR). Methods for De-identification of PHI. [cited 19 Aug 2021]. Available: https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html

7
rmd/cdmRPackage.rmd Normal file
View File

@ -0,0 +1,7 @@
---
output:
html_document:
toc: TRUE
toc_float: TRUE
---

55
rmd/cdmRefreshProcess.Rmd Normal file
View File

@ -0,0 +1,55 @@
---
title: '<div><img src="ohdsi40x40.png"></img> CDM Refresh Process </div>'
output:
html_document:
toc: TRUE
toc_float: TRUE
---
The OMOP Common Data Model is managed by the OHDSI CDM Working Group. The formal remit of the CDM Working Group (WG) is to hear proposals for change, ratifying only those with valid use cases and data to support them. Then, once ratified, these proposals are incorporated into the next version of the CDM. In the past, this was done by the WG alone. The group would invite others from around the community to present use cases for change and suggestions for improvement. The WG would then vote on the proposals and a new CDM version would be released after a certain period of time or if enough proposals were voted in. This approach worked when the community was smaller but as it is growing rapidly the CDM WG needed to adapt the refresh cycle such that everyone has an opportunity to weigh in on the proposed changes.
## CDM Refresh Cycle
![](images/CDM_refresh_cycle.png)
### 1. Define New Version [Completed for v5.4]
The image above describes the new CDM refresh cycle. It begins with **defining a new version**. This has been completed for the current cycle. Issues and proposals on the github were considered during a 4-hour workshop where it was decided the next CDM version will be CDM v5.4, building off of CDM v5.3. The group then participated in a rapid-fire voting activity to identify which changes should be incorporated into CDM v5.4. Any items that were not unanimously agreed upon were then discussed in small groups to hone the proposal and suggestions were presented back to the group. The final roadmap for CDM v5.4 can be found [here](https://github.com/OHDSI/CommonDataModel/projects/3).
Looking to open a proposal to change or augment the CDM? Please open an [issue](https://github.com/OHDSI/CommonDataModel/issues) and use the **proposal template**.
### 2. Sign off from Work Groups [Completed for v5.4]
Each member of the CDM WG is a liaison for another workgroup in the community. They are responsible for presenting the proposed changes to the CDM and collecting the feedback. This has resulted in very helpful suggestions from the EHR, Data Quality, Device, HADES, and ACHILLES groups. This outreach has proven to be very effective and should result in a very stable version.
### 3. Release DDLs
After all changes and suggestions are agreed upon by the community and work groups the next step is to generate the DDLs. The CDM WG hosted a hackathon on August 18-19, 2021. During this time the group created an R package to automatically generate the DDLs and the code to instantiate an empty CDM instance. Changes were made to v5.3 to generate v5.4 and the repository was refactored.
### 4. Software Update
There will be period of time once the DDLs are ready to allow the software and methods developers to prepare for the official release of the CDM. This is meant to serve as a buffer so that once the community starts adopting the new model, the tools and methods will be ready to support it.
### 5. Community Support
This is the final stage of the CDM refresh cycle. Once the DDLs are ready and the software and tools supports the new version, the CDM WG will work to help the community convert their data to the new model.
# CDM WG Meeting Information
The CDM working group meets the first and third Tuesday of the month. See below for links to the meetings.
**Every first Tuesday of the month at 1pm est** [Teams Meeting](https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1601910741972?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%2281c21b6d-448d-4634-abbc-6b0962d1138a%22%7d)
**Every third Tuesday of the month at 1pm est** [Teams Meeting](https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1611000164347?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%223c193b7f-c2ab-4bcf-b88c-f89a6b1fba38%22%7d)
**Note** These were recently changed from a Skype meeting to a Microsoft Teams meeting. If you do you have access to the OHDSI Teams Tenet, please contact Clair Blacketer at mblacke@its.jnj.com.
### CDM WG Important Links
- [Google Drive Location](https://drive.google.com/open?id=1DaNKe6ivIAZPJeI31VJ-pzNB9wS9hDqu)
- [Running Agenda](https://docs.google.com/document/d/1WgKePjrI_cGdqn2XQCe1JdGaTzdMqU4p5ihkMt8fcAc/edit?usp=sharing)
- [CDM Github](https://github.com/OHDSI/CommonDataModel)

View File

@ -64,10 +64,6 @@ identify Descendants that may appear in the data. See CONCEPT_ANCESTOR table. No
Concepts can only appear in *_source_concept_id fields and are not used in [CONCEPT_ANCESTOR](https://ohdsi.github.io/CommonDataModel/cdm531.html#concept_ancestor) Concepts can only appear in *_source_concept_id fields and are not used in [CONCEPT_ANCESTOR](https://ohdsi.github.io/CommonDataModel/cdm531.html#concept_ancestor)
table. Please refer to the Standardized Vocabularies specifications for details of the Standard Concept table. Please refer to the Standardized Vocabularies specifications for details of the Standard Concept
designation. designation.
- All logical data elements associated with the various CDM tables (usually in the _type_concept_id
field) are called Type Concepts, including defining characteristics, qualifying attributes etc. They are
also stored as Concepts in the CONCEPT table. Since they are generated by OMOP, their is no
meaningful concept_code.
- The lifespan of a Concept is recorded through its valid_start_date, valid_end_date and the invalid_ - The lifespan of a Concept is recorded through its valid_start_date, valid_end_date and the invalid_
reason fields. This allows Concepts to correctly reflect at which point in time were defined. reason fields. This allows Concepts to correctly reflect at which point in time were defined.
Usually, Concepts get deprecated if their meaning was deemed ambiguous, a duplication of another Usually, Concepts get deprecated if their meaning was deemed ambiguous, a duplication of another
@ -268,9 +264,34 @@ Many tables contain equivalent information multiple times: As a Source Value, a
Source Values are only provided for convenience and quality assurance (QA) purposes. Source Values and Source Concepts are optional, while Standard Concepts are mandatory. Source Values may contain information that is only meaningful in the context of a specific data source. Source Values are only provided for convenience and quality assurance (QA) purposes. Source Values and Source Concepts are optional, while Standard Concepts are mandatory. Source Values may contain information that is only meaningful in the context of a specific data source.
### General Concepts and Type Concepts ### Type Concepts
*By Mik Kallfelz and Dmitry Dymshyts*
Type Concepts (ending in _TYPE_CONCEPT_ID) and general Concepts (ending in _CONCEPT_ID) are part of many tables. The former are special Concepts with the purpose of indicating where the data are derived from in the source. For example, the Type Concept field can be used to distinguish a DRUG_EXPOSURE record that is derived from a pharmacy-dispensing claim from one indicative of a prescription written in an electronic health record (EHR). Type Concepts (ending in _TYPE_CONCEPT_ID) are present in many tables. They are special Concepts with the purpose of indicating from where the data are derived in the source. For example, the Type Concept field can be used to distinguish a DRUG_EXPOSURE record that is derived from a pharmacy-dispensing claim from one indicative of a prescription written in an electronic health record (EHR).
- Type concepts help determining the provenance of a record in the OMOP CDM. Many tables hold a specific _type_concept_id field for which [valid concepts](https://athena.ohdsi.org/search-terms/terms?domain=Type+Concept&standardConcept=Standard&page=1&pageSize=15&query=) can be used to indicate a particular source of that record. For a condition it can be helpful to know, if it was derived from an EHR system or insurance claims. For a drug exposure it should be very useful to distinguish between prescriptions and actual administrations.
- In respect to the target table, matching type concepts should be chosen during the ETL step while processing sources. There are various representations in the list of type concepts of which some are quite specific for one table and others can be applied for many tables / domains, as they are quite generic. There is however no plausibility check or dependency between type concepts and tables which means they have to be chosen correctly.
- There is now one specific [vocabulary](https://github.com/OHDSI/Vocabulary-v5.0/wiki/Vocab.-TYPE_CONCEPT) for type concepts which replaced a number of previously existing tables. For example, where previously there was a dedicated vocabulary for Drug Type Concepts, now we would choose the respective ones from the overall vocabulary (and ignore some of the old ones):
| Drug Type | Type Concept |
|-------------------------------------------------------------------------|----------------------------------------|
| Inpatient administration | EHR administration record |
| Physician administered drug (identified from EHR problem list) | EHR administration record |
| Physician administered drug (identified from referral record) | EHR administration record |
| Physician administered drug (identified from EHR observation) | EHR administration record |
| Physician administered drug (identified from EHR order) | EHR administration record |
| Prescription dispensed in pharmacy | EHR dispensing record |
| Dispensed in Outpatient office | EHR dispensing record |
| Medication list entry | EHR medication list |
| Prescription written | EHR prescription |
| | EHR prescription issue record |
| Prescription dispensed through mail order | Mail order record |
| NLP derived | NLP |
| Patient Self-Reported Medication | Patient self-report |
| Physician administered drug (identified as procedure) | Pharmacy claim |
| Drug era - 0 days persistence window | |
| Drug era - 30 days persistence window | |
| Randomized Drug | |
### Time span of available data ### Time span of available data

63
rmd/ehrObsPeriods.Rmd Normal file
View File

@ -0,0 +1,63 @@
---
title: "Observation Period Considerations for EHR Data"
output: html_document
---
*By Melanie Philofsky and the EHR Working Group*
The EHR WG convened on July 24, August 7, and August 21, 2020 to discuss the creation of an Observation Period from EHR data. The current and future conventions are not prescriptive enough and leave room for various ways of interpretation. The goals of our discussions were to increase the standardization for the implementation of the OBSERVATION_PERIOD table by providing some general guidelines for determining the start, end, and gaps in Observation Periods. The suggestions we came up with are only “suggestions” at this point. More research should be done to understand how these choices might impact evidence generated using these data. All of these decisions should be tempered by local understanding of patients in the EHR you are ETLing.
* *Note - These suggestions are not intended for HMO EHR sites since HMO EHR Observation Periods more closely resemble claims data Observation Periods.*
## Observation Period Start Date
- Generally an Observation Period does NOT begin before birth, however, it might begin before birth IF the pregnant mother receives care recorded in your EHR. The childs record is then split from the mothers record at birth but may retain care given during pregnancy. For these children in your dataset, the field **observation_period_start_date should be the birth date minus 9 months**
- An **Observation Period does NOT begin before the implementation of the EHR at your site**. Any records prior to implementation are probably “history of” record types and not a complete EHR record of clinical events.
- Special consideration should be given to migration from previous EHR, implementation at different sites within your healthcare system, implementation of different modules, etc.
## Observation Period end date
Set the **observation_period_end_date** as the first date from the following:
- **Date of death + 60 days**
- This is a CDM convention to allow events after death (autopsy, final notes, etc).
- **Last clinical event + 60 days**
- The assumption is that person will return to the same health provider if an adverse reaction/complication/unresolved condition occurs.
- **Date of the data pull from the system**
## Observation Period Gaps and Persistence Windows
### Observation Period Gaps
Periods of time when a Person does not receive care from your institution and therefore is not observed and should not have an Observation Period. These gaps are usually hard to determine because most Persons dont announce their departure from an EHR/healthcare institution. Therefore, a heuristic will need to be instituted to determine Observation Period Gaps where the information is not explicit.
### Observation Period Persistence Window
Defined as the maximum time allowed between two clinical events under the assumption a Person would have a clinical event recorded, if they are not healthy and seek care.
**Example:** Person 1 has a series of clinical events recorded from **Jan. 1, 2010 to June 15, 2012**, where the time between clinical events does not exceed 60 days. The next clinical event for Person 1 is on **Oct. 1, 2018**. Starting Oct. 1, 2018 Person 1 has clinical events occurring at least every 90 days up to the present date.
There is a 6+ year gap between groups of clinical events recorded in the CDM. After discussion in the EHR WG, we believe this 6+ year gap is indicative of a Person not being seen within our EHR/healthcare institution. Per convention #4 for Observation Period table, “As a general assumption, during an Observation Period any clinical event that happens to the patient is expected to be recorded. Conversely, the absence of data indicates that no clinical events occurred to the patient." Person 1 has two Observation Periods.
**1st Observation Period**
- observation_period_start_date = **01/01/2010**
- observation_period_end_date = **08/15/2012** (Per the end_date guideline above)
**2nd Observation Period**
- observation_period_start_date = **10/01/2018**
- observation_period_end_date = **09/01/2020** (Date of the data pull, per the end_date guideline above)
Now, there are cases where a Person only receives care within you EHR system when absolutely necessary. And if your EHR doesnt offer primary care services, the majority of Persons who lack healthcare insurance or any other reason why Persons are only seen in urgent or emergent situations, the above heuristic might be too restrictive. This is a guideline. A question the EHR WG debated was how long between clinical events should we assume any clinical event that happens to the Person is expected to be recorded? When should we end one Observation Period and begin another? What should be the time between events for an Observation Period Persistence Window? Wellness checkups/Visits happen approximately every 12-18 months depending on a multitude of factors.
**Our recommendation: If Observation Period Gaps are 548 days or more, then the previous Observation Period should end and another Observation Period should begin on the date of the next clinical event as per the Person 1 example above.**
## Additional ETL considerations
- Implementation of your EHR, migration from previous EHR, implementation at different sites within your healthcare system, implementation of different modules
- Coverage of your healthcare system within your area, population served by the healthcare system
- All decisions should be tempered by local understanding of patients in the EHR you are ETLing.
The Observation Period can be created by only one clinical event. However, the clinical event must NOT be from the Death table. If a Death date does not have any other clinical records 18 months before AND 18 months after the death date, then an Observation Period will not be created. We believe this logic is needed because if a Person only has a death death_date without other clinical event records, a Person is most likely not being “observed” when the death occurred. If a Person was being observed at their time of death, then other records (visit, condition, measurement, etc.) would be created. This rule is most relevant for those with death registry data since a Person who dies in the hospital has many clinical event records.

BIN
rmd/images/cdm54.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 KiB

View File

@ -3,37 +3,19 @@ title: '<div><img src="ohdsi40x40.png"></img> OMOP Common Data Model</div>'
output: html_document output: html_document
--- ---
The OMOP Common Data Model is managed by the [OHDSI CDM Working Group](https://www.ohdsi.org/web/wiki/doku.php?id=projects:workgroups:cdm-wg). Through the end of 2019 and into 2020 our goal was to fully update the documentation in an effort to facilitate greater understanding of the model. Almost every [forum post](https://www.forums.ohdsi.org) relating to a question on how to map data into the CDM inevitably referenced the (now outdated) technical and difficult-to-understand explanations of the tables and fields currently on the wiki. To remedy we focused on one or two tables each month, diving fully into the user guidance and ETL specifications. The results of our efforts can be seen on the pages detailing [v5.3](https://ohdsi.github.io/CommonDataModel/cdm531.html) and [v6.0](https://ohdsi.github.io/CommonDataModel/cdm60.html). The OMOP Common Data Model is managed by the OHDSI CDM Working Group. If you would like to join our group please fill out [this form](https://forms.office.com/Pages/ResponsePage.aspx?id=lAAPoyCRq0q6TOVQkCOy1ZyG6Ud_r2tKuS0HcGnqiQZUOVJFUzBFWE1aSVlLN0ozR01MUVQ4T0RGNyQlQCN0PWcu) and check "Common Data Model" to be added to our Microsoft Teams environment. This working group endeavors to maintain the OMOP CDM as a living model by soliciting and responding to requests from the community based on use cases and research purposes. For more information on the CDM refresh process please see the description [here](http://ohdsi.github.io/CommonDataModel/cdmRefreshProcess.html). You will find information on our meetings and links to join at the end of this page.
In addition to documentation the formal remit of the CDM Working Group (WG) is to hear proposals for change, ratifying only those with valid use cases and data to support them. In the past, this was done by the WG alone. The group would invite others from around the community to present use cases for change and suggestions for improvement. The WG would then vote on the proposals and a new CDM version would be released after a certain period of time or if enough proposals were voted in. This approach worked when the community was smaller but as it is growing rapidly the CDM WG needed to adapt the refresh cycle such that everyone has an opportunity to weigh in on the proposed changes. ## Current CDM Version
## CDM Refresh Cycle The current CDM version is [CDM v5.4](http://ohdsi.github.io/CommonDataModel/cdm54.html), depicted below. This CDM version was developed over the course of a year by considering requests that were sent via our [issues page](https://github.com/OHDSI/CommonDataModel/issues). The list of proposed changes was then shared with the community in multiple ways: through discussions at the weekly OHDSI Community calls, discussions with the OHDSI Steering Committee, and discussions with all potentially affected workgroups. The [final changes](http://ohdsi.github.io/CommonDataModel/cdm54Changes.html) were then delivered to the Community through a new R package designed to dynamically generate the DDLs and documentation for all supported SQL dialects.
![](images/CDM_refresh_cycle.png) - [Link to DDLs for CDM v5.4](https://github.com/OHDSI/CommonDataModel/tree/v5.4.0)
- [Link to ReadMe for instructions on how to use the R package](https://github.com/OHDSI/CommonDataModel/tree/master#readme)
### 1. Define New Version ![](images/cdm54.png)
The image above describes the new CDM refresh cycle. It begins with **defining a new version**. This has been completed for the current cycle. Issues and proposals on the github were considered during a 4-hour workshop where it was decided the next CDM version will be CDM v5.4, building off of CDM v5.3. The group then participated in a rapid-fire voting activity to identify which changes should be incorporated into CDM v5.4. Any items that were not unanimously agreed upon were then discussed in small groups to hone the proposal and suggestions were presented back to the group. The final roadmap for CDM v5.4 can be found [here](https://github.com/OHDSI/CommonDataModel/projects/3).
### 2. Sign off from Work Groups
This is the current stage of the refresh cycle for CDM v5.4. Each member of the CDM WG is a liaison for another workgroup in the community. They are responsible for presenting the proposed changes to the CDM and collecting the feedback. This has resulted in very helpful suggestions from the EHR, Data Quality, Device, HADES, and ACHILLES groups. This outreach has proven to be very effective and should result in a very stable version.
### 3. Release DDLs
After all changes and suggestions are agreed upon by the community and work groups the next step is to generate the DDLs this will be done by the CDM Development group.
### 4. Software Update
There will be period of time once the DDLs are ready to allow the software and methods developers to prepare for the official release of the CDM. This is meant to serve as a buffer so that once the community starts adopting the new model, the tools and methods will be ready to support it.
### 5. Community Support
This is the final stage of the CDM refresh cycle. Once the DDLs are ready and the software and tools supports the new version, the CDM WG will work to help the community convert their data to the new model.
## CDM WG Meeting Information
# CDM WG Meeting Information
The CDM working group meets the first and third Tuesday of the month. See below for links to the meetings. The CDM working group meets the first and third Tuesday of the month. See below for links to the meetings.
@ -42,12 +24,12 @@ The CDM working group meets the first and third Tuesday of the month. See below
**Every third Tuesday of the month at 1pm est** [Teams Meeting](https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1611000164347?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%223c193b7f-c2ab-4bcf-b88c-f89a6b1fba38%22%7d) **Every third Tuesday of the month at 1pm est** [Teams Meeting](https://teams.microsoft.com/l/meetup-join/19%3a133f2b94b86a41a884d4a4d160610148%40thread.tacv2/1611000164347?context=%7b%22Tid%22%3a%22a30f0094-9120-4aab-ba4c-e5509023b2d5%22%2c%22Oid%22%3a%223c193b7f-c2ab-4bcf-b88c-f89a6b1fba38%22%7d)
**Note** These were recently changed from a Skype meeting to a Microsoft Teams meeting. If you do you have access to the OHDSI Teams Tenet, please contact Clair Blacketer at mblacke@its.jnj.com. **Note** If you do you have access to the OHDSI Teams Tenet, either contact Clair Blacketer at mblacke@its.jnj.com or fill out [this form]
(https://forms.office.com/Pages/ResponsePage.aspx?id=lAAPoyCRq0q6TOVQkCOy1ZyG6Ud_r2tKuS0HcGnqiQZUOVJFUzBFWE1aSVlLN0ozR01MUVQ4T0RGNyQlQCN0PWcu) and check "Common Data Model"
### CDM WG Important Links ### CDM WG Important Links
- [Google Drive Location](https://drive.google.com/open?id=1DaNKe6ivIAZPJeI31VJ-pzNB9wS9hDqu) - [Google Drive Location](https://drive.google.com/open?id=1DaNKe6ivIAZPJeI31VJ-pzNB9wS9hDqu)
- [Running Agenda](https://docs.google.com/document/d/1WgKePjrI_cGdqn2XQCe1JdGaTzdMqU4p5ihkMt8fcAc/edit?usp=sharing) - [Running Agenda](https://docs.google.com/document/d/1WgKePjrI_cGdqn2XQCe1JdGaTzdMqU4p5ihkMt8fcAc/edit?usp=sharing)
- [CDM Github](https://github.com/OHDSI/CommonDataModel) - [CDM Github](https://github.com/OHDSI/CommonDataModel)
- [Process for adopting CDM and Vocabulary changes](https://www.ohdsi.org/web/wiki/doku.php?id=documentation:next_cdm:cdm_process) - [Process for adopting CDM and Vocabulary changes](http://ohdsi.github.io/CommonDataModel/cdmRefreshProcess.html)