Merge pull request #627 from yarikoptic/enh-codespell
Reincarnated codespell PR: no conflicts, more typos fixed etc.
This commit is contained in:
commit
e80f0e4df9
|
@ -0,0 +1,4 @@
|
||||||
|
[codespell]
|
||||||
|
skip = .git,*.pdf,*.svg,.*.min.js,*.pdf,site_libs
|
||||||
|
ignore-regex = src="data:image/png.*
|
||||||
|
ignore-words-list = bu,eacg,ehr,infarction,2rd,aas,ags,alog,bui,caf,eacf,ede,edn,esy,fo,gage,ges,gud,iif,isnt,knwo,mor,nam,nd,ot,slq,tahn,te,tey,thn,tye,ue,vas,wel,whn,wih,wth,yau,pilon
|
|
@ -0,0 +1,22 @@
|
||||||
|
---
|
||||||
|
name: Codespell
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
codespell:
|
||||||
|
name: Check for spelling errors
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Codespell
|
||||||
|
uses: codespell-project/actions-codespell@v2
|
|
@ -17,7 +17,7 @@
|
||||||
#' Create OMOP CDM SQL files
|
#' Create OMOP CDM SQL files
|
||||||
#'
|
#'
|
||||||
#' Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
#' Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
||||||
#' and targetDialect to the 'ddl' folder in specifed output folder.
|
#' and targetDialect to the 'ddl' folder in specified output folder.
|
||||||
#'
|
#'
|
||||||
#' @param cdmVersions The versions of the CDM you are creating, e.g. 5.3, 5.4.
|
#' @param cdmVersions The versions of the CDM you are creating, e.g. 5.3, 5.4.
|
||||||
#' Defaults to all supported CDM versions.
|
#' Defaults to all supported CDM versions.
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
#' @param outputfolder The base folder where the SQL files will be written.
|
#' @param outputfolder The base folder where the SQL files will be written.
|
||||||
#' Subfolders will be created for each cdmVersion and targetDialect.
|
#' Subfolders will be created for each cdmVersion and targetDialect.
|
||||||
#' @return Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
#' @return Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
||||||
#' and targetDialect to the 'ddl' folder in specifed output folder.
|
#' and targetDialect to the 'ddl' folder in specified output folder.
|
||||||
#' @export
|
#' @export
|
||||||
buildRelease <- function(cdmVersions = listSupportedVersions(),
|
buildRelease <- function(cdmVersions = listSupportedVersions(),
|
||||||
targetDialects = listSupportedDialects(),
|
targetDialects = listSupportedDialects(),
|
||||||
|
|
|
@ -1125,7 +1125,7 @@ CONCEPT
|
||||||
<p><strong>Table Description</strong></p>
|
<p><strong>Table Description</strong></p>
|
||||||
<p>This table contains records which define spans of time during which
|
<p>This table contains records which define spans of time during which
|
||||||
two conditions are expected to hold: (i) Clinical Events that happened
|
two conditions are expected to hold: (i) Clinical Events that happened
|
||||||
to the Person are recorded in the Event tables, and (ii) absense of
|
to the Person are recorded in the Event tables, and (ii) absence of
|
||||||
records indicate such Events did not occur during this span of time.</p>
|
records indicate such Events did not occur during this span of time.</p>
|
||||||
<p><strong>User Guide</strong></p>
|
<p><strong>User Guide</strong></p>
|
||||||
<p>For each Person, one or more OBSERVATION_PERIOD records may be
|
<p>For each Person, one or more OBSERVATION_PERIOD records may be
|
||||||
|
|
|
@ -1233,7 +1233,7 @@ CONCEPT
|
||||||
<p><strong>Table Description</strong></p>
|
<p><strong>Table Description</strong></p>
|
||||||
<p>This table contains records which define spans of time during which
|
<p>This table contains records which define spans of time during which
|
||||||
two conditions are expected to hold: (i) Clinical Events that happened
|
two conditions are expected to hold: (i) Clinical Events that happened
|
||||||
to the Person are recorded in the Event tables, and (ii) absense of
|
to the Person are recorded in the Event tables, and (ii) absence of
|
||||||
records indicate such Events did not occur during this span of time.</p>
|
records indicate such Events did not occur during this span of time.</p>
|
||||||
<p><strong>User Guide</strong></p>
|
<p><strong>User Guide</strong></p>
|
||||||
<p>For each Person, one or more OBSERVATION_PERIOD records may be
|
<p>For each Person, one or more OBSERVATION_PERIOD records may be
|
||||||
|
|
|
@ -499,12 +499,12 @@ Support</strong></h1>
|
||||||
make use of which OMOP CDM fields. The goal is to inform ETL developers,
|
make use of which OMOP CDM fields. The goal is to inform ETL developers,
|
||||||
tooling developers and CDM extensions.</p>
|
tooling developers and CDM extensions.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>For ETL developers it helps to have guidance on which fieds to
|
<li>For ETL developers it helps to have guidance on which fields to
|
||||||
prioritise in the mapping. Most value will be gained from populating
|
prioritise in the mapping. Most value will be gained from populating
|
||||||
fields support across the OHDSI tooling.</li>
|
fields support across the OHDSI tooling.</li>
|
||||||
<li>For OHDSI tooling developers, this page provides insight in the gaps
|
<li>For OHDSI tooling developers, this page provides insight in the gaps
|
||||||
of support and can drive future development efforts.</li>
|
of support and can drive future development efforts.</li>
|
||||||
<li>For CDM extenstions, it helps to known what it means for an OMOP CDM
|
<li>For CDM extensions, it helps to known what it means for an OMOP CDM
|
||||||
table/field to be part of the standard. In other words: what OHDSI
|
table/field to be part of the standard. In other words: what OHDSI
|
||||||
tooling do we at least expect to support the new extensions?</li>
|
tooling do we at least expect to support the new extensions?</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -582,7 +582,7 @@ Achilles only checked for a valid foreign key to the provider table.</p>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="header">
|
<tr class="header">
|
||||||
<th><strong>Abbrevations</strong></th>
|
<th><strong>Abbreviations</strong></th>
|
||||||
<th> </th>
|
<th> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
|
@ -1219,7 +1219,7 @@ CONCEPT
|
||||||
<p><strong>Table Description</strong></p>
|
<p><strong>Table Description</strong></p>
|
||||||
<p>This table contains records which define spans of time during which
|
<p>This table contains records which define spans of time during which
|
||||||
two conditions are expected to hold: (i) Clinical Events that happened
|
two conditions are expected to hold: (i) Clinical Events that happened
|
||||||
to the Person are recorded in the Event tables, and (ii) absense of
|
to the Person are recorded in the Event tables, and (ii) absence of
|
||||||
records indicate such Events did not occur during this span of time.</p>
|
records indicate such Events did not occur during this span of time.</p>
|
||||||
<p><strong>User Guide</strong></p>
|
<p><strong>User Guide</strong></p>
|
||||||
<p>For each Person, one or more OBSERVATION_PERIOD records may be
|
<p>For each Person, one or more OBSERVATION_PERIOD records may be
|
||||||
|
|
|
@ -1087,7 +1087,7 @@ $(document).ready(function () {
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">5</td>
|
<td align="left">5</td>
|
||||||
<td align="left">Concept Relationships define direct relationships between Concepts. Indirect relationships through 3rd Concepts are not captured in this table. However, the <a href="https://github.com/OHDSI/CommonDataModel/wiki/CONCEPT_ANCESTOR">CONCEPT_ANCESTOR</a> table does this for hierachical relationships over several “generations” of direct relationships.</td>
|
<td align="left">Concept Relationships define direct relationships between Concepts. Indirect relationships through 3rd Concepts are not captured in this table. However, the <a href="https://github.com/OHDSI/CommonDataModel/wiki/CONCEPT_ANCESTOR">CONCEPT_ANCESTOR</a> table does this for hierarchical relationships over several “generations” of direct relationships.</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -5203,7 +5203,7 @@ Person, 2, Person, 1, child of
|
||||||
<td align="left">payer_concept_id</td>
|
<td align="left">payer_concept_id</td>
|
||||||
<td align="left">Yes</td>
|
<td align="left">Yes</td>
|
||||||
<td align="left">integer</td>
|
<td align="left">integer</td>
|
||||||
<td align="left">A foreign key that refers to a standard Payer concept identifier in the Standarized Vocabularies</td>
|
<td align="left">A foreign key that refers to a standard Payer concept identifier in the Standardized Vocabularies</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">payer_source_value</td>
|
<td align="left">payer_source_value</td>
|
||||||
|
|
|
@ -1000,7 +1000,7 @@ $(document).ready(function () {
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">5</td>
|
<td align="left">5</td>
|
||||||
<td align="left">Concept Relationships define direct relationships between Concepts. Indirect relationships through 3rd Concepts are not captured in this table. However, the <a href="https://github.com/OHDSI/CommonDataModel/wiki/CONCEPT_ANCESTOR">CONCEPT_ANCESTOR</a> table does this for hierachical relationships over several “generations” of direct relationships.</td>
|
<td align="left">Concept Relationships define direct relationships between Concepts. Indirect relationships through 3rd Concepts are not captured in this table. However, the <a href="https://github.com/OHDSI/CommonDataModel/wiki/CONCEPT_ANCESTOR">CONCEPT_ANCESTOR</a> table does this for hierarchical relationships over several “generations” of direct relationships.</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1018,7 +1018,7 @@ NA
|
||||||
observation_period_start_date
|
observation_period_start_date
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
Use this date to determine the start date of the period for which we can assume that all events for a Person are recorded and any absense of records indicates an absence of events.
|
Use this date to determine the start date of the period for which we can assume that all events for a Person are recorded and any absence of records indicates an absence of events.
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
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 US claims, the observation period can be considered as the time period the person is enrolled with an insurer. If a Person switches plans but stays with the same insurer, that change would be captured in payer_plan_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 US claims, the observation period can be considered as the time period the person is enrolled with an insurer. If a Person switches plans but stays with the same insurer, that change would be captured in payer_plan_period.
|
||||||
|
@ -1050,7 +1050,7 @@ NA
|
||||||
observation_period_end_date
|
observation_period_end_date
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
Use this date to determine the end date of the period for which we can assume that all events for a Person are recorded and any absense of records indicates an absence of events.
|
Use this date to determine the end date of the period for which we can assume that all events for a Person are recorded and any absence of records indicates an absence of events.
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
It is often the case that the idea of observation periods does not exist in source data. In those cases the observation_period_start_end_date can be inferred as the latest event date available for the Person. The event dates include insurance enrollment dates.
|
It is often the case that the idea of observation periods does not exist in source data. In those cases the observation_period_start_end_date can be inferred as the latest event date available for the Person. The event dates include insurance enrollment dates.
|
||||||
|
@ -1667,7 +1667,7 @@ NA
|
||||||
preceding_visit_occurrence_id
|
preceding_visit_occurrence_id
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
Use this field to find the visit that occured for the person prior to the given visit. There could be a few days or a few years in between.
|
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.
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
The preceding_visit_id 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”.
|
The preceding_visit_id 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”.
|
||||||
|
@ -10200,7 +10200,7 @@ NA
|
||||||
<p>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:</p>
|
<p>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:</p>
|
||||||
<p>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.</p>
|
<p>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.</p>
|
||||||
<p>For Procedure Drugs, usually the drug is administered on a single date (i.e., the administration date).</p>
|
<p>For Procedure Drugs, usually the drug is administered on a single date (i.e., the administration date).</p>
|
||||||
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. (ARENT WE REQUIRING TO USE DRUG_EXPOSURE_END_DATE NOW????)
|
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. (AREN'T WE REQUIRING TO USE DRUG_EXPOSURE_END_DATE NOW????)
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
datetime
|
datetime
|
||||||
|
@ -20702,7 +20702,7 @@ NA
|
||||||
payer_concept_id
|
payer_concept_id
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
A foreign key that refers to a standard Payer concept identifier in the Standarized Vocabularies
|
A foreign key that refers to a standard Payer concept identifier in the Standardized Vocabularies
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:left;">
|
<td style="text-align:left;">
|
||||||
NA
|
NA
|
||||||
|
|
|
@ -10,7 +10,7 @@ episode,episode_parent_id,No,bigint,Use this field to find the Episode that subs
|
||||||
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,"Procedure, Regimen",
|
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 Episode 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,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,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,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,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,,,,
|
||||||
|
|
|
|
@ -1,6 +1,6 @@
|
||||||
cdmTableName,schema,isRequired,conceptPrefix,measurePersonCompleteness,measurePersonCompletenessThreshold,validation,tableDescription,userGuidance,etlConventions
|
cdmTableName,schema,isRequired,conceptPrefix,measurePersonCompleteness,measurePersonCompletenessThreshold,validation,tableDescription,userGuidance,etlConventions
|
||||||
person,CDM,Yes,NA,No,NA,NA,"This 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.",All records in this table are independent Persons.,"All Persons in a database needs one record in this table, unless they fail data quality requirements specified in the ETL. Persons with no Events should have a record nonetheless. If more than one data source contributes Events to the database, Persons must be reconciled, if possible, across the sources to create one single record per Person. The content of the BIRTH_DATETIME must be equivalent to the content of BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR."
|
person,CDM,Yes,NA,No,NA,NA,"This 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.",All records in this table are independent Persons.,"All Persons in a database needs one record in this table, unless they fail data quality requirements specified in the ETL. Persons with no Events should have a record nonetheless. If more than one data source contributes Events to the database, Persons must be reconciled, if possible, across the sources to create one single record per Person. The content of the BIRTH_DATETIME must be equivalent to the content of BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR."
|
||||||
observation_period,CDM,Yes,NA,Yes,0,NA,"This table contains records which define spans of time during which two conditions are expected to hold: (i) Clinical Events that happened to the Person are recorded in the Event tables, and (ii) absense of records indicate such Events did not occur during this span of time.","For each Person, one or more OBSERVATION_PERIOD records may be present, but they will not overlap or be back to back to each other. Events may exist outside all of the time spans of the OBSERVATION_PERIOD records for a patient, however, absence of an Event outside these time spans cannot be construed as evidence of absence of an Event. Incidence or prevalence rates should only be calculated for the time of active OBSERVATION_PERIOD records. When constructing cohorts, outside Events can be used for inclusion criteria definition, but without any guarantee for the performance of these criteria. Also, OBSERVATION_PERIOD records can be as short as a single day, greatly disturbing the denominator of any rate calculation as part of cohort characterizations. To avoid that, apply minimal observation time as a requirement for any cohort definition.","Each Person needs to have at least one OBSERVATION_PERIOD record, which should represent time intervals with a high capture rate of Clinical Events. Some source data have very similar concepts, such as enrollment periods in insurance claims data. In other source data such as most EHR systems these time spans need to be inferred under a set of assumptions. It is the discretion of the ETL developer to define these assumptions. In many ETL solutions the start date of the first occurrence or the first high quality occurrence of a Clinical Event (Condition, Drug, Procedure, Device, Measurement, Visit) is defined as the start of the OBSERVATION_PERIOD record, and the end date of the last occurrence of last high quality occurrence of a Clinical Event, or the end of the database period becomes the end of the OBSERVATOIN_PERIOD for each Person. If a Person only has a single Clinical Event the OBSERVATION_PERIOD record can be as short as one day. Depending on these definitions it is possible that Clinical Events fall outside the time spans defined by OBSERVATION_PERIOD records. Family history or history of Clinical Events generally are not used to generate OBSERVATION_PERIOD records around the time they are referring to. Any two overlapping or adjacent OBSERVATION_PERIOD records have to be merged into one."
|
observation_period,CDM,Yes,NA,Yes,0,NA,"This table contains records which define spans of time during which two conditions are expected to hold: (i) Clinical Events that happened to the Person are recorded in the Event tables, and (ii) absence of records indicate such Events did not occur during this span of time.","For each Person, one or more OBSERVATION_PERIOD records may be present, but they will not overlap or be back to back to each other. Events may exist outside all of the time spans of the OBSERVATION_PERIOD records for a patient, however, absence of an Event outside these time spans cannot be construed as evidence of absence of an Event. Incidence or prevalence rates should only be calculated for the time of active OBSERVATION_PERIOD records. When constructing cohorts, outside Events can be used for inclusion criteria definition, but without any guarantee for the performance of these criteria. Also, OBSERVATION_PERIOD records can be as short as a single day, greatly disturbing the denominator of any rate calculation as part of cohort characterizations. To avoid that, apply minimal observation time as a requirement for any cohort definition.","Each Person needs to have at least one OBSERVATION_PERIOD record, which should represent time intervals with a high capture rate of Clinical Events. Some source data have very similar concepts, such as enrollment periods in insurance claims data. In other source data such as most EHR systems these time spans need to be inferred under a set of assumptions. It is the discretion of the ETL developer to define these assumptions. In many ETL solutions the start date of the first occurrence or the first high quality occurrence of a Clinical Event (Condition, Drug, Procedure, Device, Measurement, Visit) is defined as the start of the OBSERVATION_PERIOD record, and the end date of the last occurrence of last high quality occurrence of a Clinical Event, or the end of the database period becomes the end of the OBSERVATOIN_PERIOD for each Person. If a Person only has a single Clinical Event the OBSERVATION_PERIOD record can be as short as one day. Depending on these definitions it is possible that Clinical Events fall outside the time spans defined by OBSERVATION_PERIOD records. Family history or history of Clinical Events generally are not used to generate OBSERVATION_PERIOD records around the time they are referring to. Any two overlapping or adjacent OBSERVATION_PERIOD records have to be merged into one."
|
||||||
visit_occurrence,CDM,No,VISIT_,Yes,0,NA,"This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called ""Encounters"". Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.","The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:
|
visit_occurrence,CDM,No,VISIT_,Yes,0,NA,"This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called ""Encounters"". Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.","The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:
|
||||||
|
|
||||||
- [Inpatient Visit](https://athena.ohdsi.org/search-terms/terms/9201): Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
|
- [Inpatient Visit](https://athena.ohdsi.org/search-terms/terms/9201): Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
|
||||||
|
|
|
|
@ -1,6 +1,6 @@
|
||||||
cdmTableName,schema,isRequired,conceptPrefix,measurePersonCompleteness,measurePersonCompletenessThreshold,validation,tableDescription,userGuidance,etlConventions
|
cdmTableName,schema,isRequired,conceptPrefix,measurePersonCompleteness,measurePersonCompletenessThreshold,validation,tableDescription,userGuidance,etlConventions
|
||||||
person,CDM,Yes,NA,No,NA,NA,"This 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.",All records in this table are independent Persons.,"All Persons in a database needs one record in this table, unless they fail data quality requirements specified in the ETL. Persons with no Events should have a record nonetheless. If more than one data source contributes Events to the database, Persons must be reconciled, if possible, across the sources to create one single record per Person. The content of the BIRTH_DATETIME must be equivalent to the content of BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR."
|
person,CDM,Yes,NA,No,NA,NA,"This 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.",All records in this table are independent Persons.,"All Persons in a database needs one record in this table, unless they fail data quality requirements specified in the ETL. Persons with no Events should have a record nonetheless. If more than one data source contributes Events to the database, Persons must be reconciled, if possible, across the sources to create one single record per Person. The content of the BIRTH_DATETIME must be equivalent to the content of BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR."
|
||||||
observation_period,CDM,Yes,NA,Yes,0,NA,"This table contains records which define spans of time during which two conditions are expected to hold: (i) Clinical Events that happened to the Person are recorded in the Event tables, and (ii) absense of records indicate such Events did not occur during this span of time.","For each Person, one or more OBSERVATION_PERIOD records may be present, but they will not overlap or be back to back to each other. Events may exist outside all of the time spans of the OBSERVATION_PERIOD records for a patient, however, absence of an Event outside these time spans cannot be construed as evidence of absence of an Event. Incidence or prevalence rates should only be calculated for the time of active OBSERVATION_PERIOD records. When constructing cohorts, outside Events can be used for inclusion criteria definition, but without any guarantee for the performance of these criteria. Also, OBSERVATION_PERIOD records can be as short as a single day, greatly disturbing the denominator of any rate calculation as part of cohort characterizations. To avoid that, apply minimal observation time as a requirement for any cohort definition.","Each Person needs to have at least one OBSERVATION_PERIOD record, which should represent time intervals with a high capture rate of Clinical Events. Some source data have very similar concepts, such as enrollment periods in insurance claims data. In other source data such as most EHR systems these time spans need to be inferred under a set of assumptions. It is the discretion of the ETL developer to define these assumptions. In many ETL solutions the start date of the first occurrence or the first high quality occurrence of a Clinical Event (Condition, Drug, Procedure, Device, Measurement, Visit) is defined as the start of the OBSERVATION_PERIOD record, and the end date of the last occurrence of last high quality occurrence of a Clinical Event, or the end of the database period becomes the end of the OBSERVATOIN_PERIOD for each Person. If a Person only has a single Clinical Event the OBSERVATION_PERIOD record can be as short as one day. Depending on these definitions it is possible that Clinical Events fall outside the time spans defined by OBSERVATION_PERIOD records. Family history or history of Clinical Events generally are not used to generate OBSERVATION_PERIOD records around the time they are referring to. Any two overlapping or adjacent OBSERVATION_PERIOD records have to be merged into one."
|
observation_period,CDM,Yes,NA,Yes,0,NA,"This table contains records which define spans of time during which two conditions are expected to hold: (i) Clinical Events that happened to the Person are recorded in the Event tables, and (ii) absence of records indicate such Events did not occur during this span of time.","For each Person, one or more OBSERVATION_PERIOD records may be present, but they will not overlap or be back to back to each other. Events may exist outside all of the time spans of the OBSERVATION_PERIOD records for a patient, however, absence of an Event outside these time spans cannot be construed as evidence of absence of an Event. Incidence or prevalence rates should only be calculated for the time of active OBSERVATION_PERIOD records. When constructing cohorts, outside Events can be used for inclusion criteria definition, but without any guarantee for the performance of these criteria. Also, OBSERVATION_PERIOD records can be as short as a single day, greatly disturbing the denominator of any rate calculation as part of cohort characterizations. To avoid that, apply minimal observation time as a requirement for any cohort definition.","Each Person needs to have at least one OBSERVATION_PERIOD record, which should represent time intervals with a high capture rate of Clinical Events. Some source data have very similar concepts, such as enrollment periods in insurance claims data. In other source data such as most EHR systems these time spans need to be inferred under a set of assumptions. It is the discretion of the ETL developer to define these assumptions. In many ETL solutions the start date of the first occurrence or the first high quality occurrence of a Clinical Event (Condition, Drug, Procedure, Device, Measurement, Visit) is defined as the start of the OBSERVATION_PERIOD record, and the end date of the last occurrence of last high quality occurrence of a Clinical Event, or the end of the database period becomes the end of the OBSERVATOIN_PERIOD for each Person. If a Person only has a single Clinical Event the OBSERVATION_PERIOD record can be as short as one day. Depending on these definitions it is possible that Clinical Events fall outside the time spans defined by OBSERVATION_PERIOD records. Family history or history of Clinical Events generally are not used to generate OBSERVATION_PERIOD records around the time they are referring to. Any two overlapping or adjacent OBSERVATION_PERIOD records have to be merged into one."
|
||||||
visit_occurrence,CDM,No,VISIT_,Yes,0,NA,"This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called ""Encounters"". Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.","The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:
|
visit_occurrence,CDM,No,VISIT_,Yes,0,NA,"This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called ""Encounters"". Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.","The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:
|
||||||
|
|
||||||
- [Inpatient Visit](https://athena.ohdsi.org/search-terms/terms/9201): Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
|
- [Inpatient Visit](https://athena.ohdsi.org/search-terms/terms/9201): Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
|
||||||
|
|
|
|
@ -1,6 +1,6 @@
|
||||||
cdmTableName,schema,isRequired,conceptPrefix,measurePersonCompleteness,measurePersonCompletenessThreshold,validation,tableDescription,userGuidance,etlConventions
|
cdmTableName,schema,isRequired,conceptPrefix,measurePersonCompleteness,measurePersonCompletenessThreshold,validation,tableDescription,userGuidance,etlConventions
|
||||||
person,CDM,Yes,NA,No,NA,NA,"This 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.",All records in this table are independent Persons.,"All Persons in a database needs one record in this table, unless they fail data quality requirements specified in the ETL. Persons with no Events should have a record nonetheless. If more than one data source contributes Events to the database, Persons must be reconciled, if possible, across the sources to create one single record per Person. The BIRTH_DATETIME must be equivalent to the content of BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR. There is a helpful rule listed in table below for how to derive BIRTH_DATETIME if it is not available in the source. **New to CDM v6.0** The person's death date is now stored in this table instead of the separate DEATH table. In the case that multiple dates of death are given in the source data the ETL should make a choice as to which death date to put in the PERSON table. Any additional dates can be stored in the OBSERVATION table using the concept [4265167](https://athena.ohdsi.org/search-terms/terms/4265167) which stands for 'Date of death' . Similarly, the cause of death is stored in the CONDITION_OCCURRENCE table using the CONDITION_STATUS_CONCEPT_ID [32891](https://athena.ohdsi.org/search-terms/terms/32891) for 'Cause of death'."
|
person,CDM,Yes,NA,No,NA,NA,"This 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.",All records in this table are independent Persons.,"All Persons in a database needs one record in this table, unless they fail data quality requirements specified in the ETL. Persons with no Events should have a record nonetheless. If more than one data source contributes Events to the database, Persons must be reconciled, if possible, across the sources to create one single record per Person. The BIRTH_DATETIME must be equivalent to the content of BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR. There is a helpful rule listed in table below for how to derive BIRTH_DATETIME if it is not available in the source. **New to CDM v6.0** The person's death date is now stored in this table instead of the separate DEATH table. In the case that multiple dates of death are given in the source data the ETL should make a choice as to which death date to put in the PERSON table. Any additional dates can be stored in the OBSERVATION table using the concept [4265167](https://athena.ohdsi.org/search-terms/terms/4265167) which stands for 'Date of death' . Similarly, the cause of death is stored in the CONDITION_OCCURRENCE table using the CONDITION_STATUS_CONCEPT_ID [32891](https://athena.ohdsi.org/search-terms/terms/32891) for 'Cause of death'."
|
||||||
observation_period,CDM,Yes,NA,Yes,0,NA,"This table contains records which define spans of time during which two conditions are expected to hold: (i) Clinical Events that happened to the Person are recorded in the Event tables, and (ii) absense of records indicate such Events did not occur during this span of time.","For each Person, one or more OBSERVATION_PERIOD records may be present, but they will not overlap or be back to back to each other. Events may exist outside all of the time spans of the OBSERVATION_PERIOD records for a patient, however, absence of an Event outside these time spans cannot be construed as evidence of absence of an Event. Incidence or prevalence rates should only be calculated for the time of active OBSERVATION_PERIOD records. When constructing cohorts, outside Events can be used for inclusion criteria definition, but without any guarantee for the performance of these criteria. Also, OBSERVATION_PERIOD records can be as short as a single day, greatly disturbing the denominator of any rate calculation as part of cohort characterizations. To avoid that, apply minimal observation time as a requirement for any cohort definition.","Each Person needs to have at least one OBSERVATION_PERIOD record, which should represent time intervals with a high capture rate of Clinical Events. Some source data have very similar concepts, such as enrollment periods in insurance claims data. In other source data such as most EHR systems these time spans need to be inferred under a set of assumptions. It is the discretion of the ETL developer to define these assumptions. In many ETL solutions the start date of the first occurrence or the first high quality occurrence of a Clinical Event (Condition, Drug, Procedure, Device, Measurement, Visit) is defined as the start of the OBSERVATION_PERIOD record, and the end date of the last occurrence of last high quality occurrence of a Clinical Event, or the end of the database period becomes the end of the OBSERVATOIN_PERIOD for each Person. If a Person only has a single Clinical Event the OBSERVATION_PERIOD record can be as short as one day. Depending on these definitions it is possible that Clinical Events fall outside the time spans defined by OBSERVATION_PERIOD records. Family history or history of Clinical Events generally are not used to generate OBSERVATION_PERIOD records around the time they are referring to. Any two overlapping or adjacent OBSERVATION_PERIOD records have to be merged into one."
|
observation_period,CDM,Yes,NA,Yes,0,NA,"This table contains records which define spans of time during which two conditions are expected to hold: (i) Clinical Events that happened to the Person are recorded in the Event tables, and (ii) absence of records indicate such Events did not occur during this span of time.","For each Person, one or more OBSERVATION_PERIOD records may be present, but they will not overlap or be back to back to each other. Events may exist outside all of the time spans of the OBSERVATION_PERIOD records for a patient, however, absence of an Event outside these time spans cannot be construed as evidence of absence of an Event. Incidence or prevalence rates should only be calculated for the time of active OBSERVATION_PERIOD records. When constructing cohorts, outside Events can be used for inclusion criteria definition, but without any guarantee for the performance of these criteria. Also, OBSERVATION_PERIOD records can be as short as a single day, greatly disturbing the denominator of any rate calculation as part of cohort characterizations. To avoid that, apply minimal observation time as a requirement for any cohort definition.","Each Person needs to have at least one OBSERVATION_PERIOD record, which should represent time intervals with a high capture rate of Clinical Events. Some source data have very similar concepts, such as enrollment periods in insurance claims data. In other source data such as most EHR systems these time spans need to be inferred under a set of assumptions. It is the discretion of the ETL developer to define these assumptions. In many ETL solutions the start date of the first occurrence or the first high quality occurrence of a Clinical Event (Condition, Drug, Procedure, Device, Measurement, Visit) is defined as the start of the OBSERVATION_PERIOD record, and the end date of the last occurrence of last high quality occurrence of a Clinical Event, or the end of the database period becomes the end of the OBSERVATOIN_PERIOD for each Person. If a Person only has a single Clinical Event the OBSERVATION_PERIOD record can be as short as one day. Depending on these definitions it is possible that Clinical Events fall outside the time spans defined by OBSERVATION_PERIOD records. Family history or history of Clinical Events generally are not used to generate OBSERVATION_PERIOD records around the time they are referring to. Any two overlapping or adjacent OBSERVATION_PERIOD records have to be merged into one."
|
||||||
visit_occurrence,CDM,No,VISIT_,Yes,0,NA,"This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called ""Encounters"". Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.","The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:
|
visit_occurrence,CDM,No,VISIT_,Yes,0,NA,"This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called ""Encounters"". Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.","The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:
|
||||||
|
|
||||||
- [Inpatient Visit](https://athena.ohdsi.org/search-terms/terms/9201): Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
|
- [Inpatient Visit](https://athena.ohdsi.org/search-terms/terms/9201): Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
|
||||||
|
|
|
|
@ -22,9 +22,9 @@ Subfolders will be created for each cdmVersion and targetDialect.}
|
||||||
}
|
}
|
||||||
\value{
|
\value{
|
||||||
Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
||||||
and targetDialect to the 'ddl' folder in specifed output folder.
|
and targetDialect to the 'ddl' folder in specified output folder.
|
||||||
}
|
}
|
||||||
\description{
|
\description{
|
||||||
Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
|
||||||
and targetDialect to the 'ddl' folder in specifed output folder.
|
and targetDialect to the 'ddl' folder in specified output folder.
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,9 @@ output:
|
||||||
This tables below contain an overview of which standard OHDSI tools make use of which OMOP CDM fields.
|
This tables below contain an overview of which standard OHDSI tools make use of which OMOP CDM fields.
|
||||||
The goal is to inform ETL developers, tooling developers and CDM extensions.
|
The goal is to inform ETL developers, tooling developers and CDM extensions.
|
||||||
|
|
||||||
- For ETL developers it helps to have guidance on which fieds to prioritise in the mapping. Most value will be gained from populating fields support across the OHDSI tooling.
|
- For ETL developers it helps to have guidance on which fields to prioritise in the mapping. Most value will be gained from populating fields support across the OHDSI tooling.
|
||||||
- For OHDSI tooling developers, this page provides insight in the gaps of support and can drive future development efforts.
|
- For OHDSI tooling developers, this page provides insight in the gaps of support and can drive future development efforts.
|
||||||
- For CDM extenstions, it helps to known what it means for an OMOP CDM table/field to be part of the standard. In other words: what OHDSI tooling do we at least expect to support the new extensions?
|
- For CDM extensions, it helps to known what it means for an OMOP CDM table/field to be part of the standard. In other words: what OHDSI tooling do we at least expect to support the new extensions?
|
||||||
|
|
||||||
Currently four OHDSI tools have been evaluated: DataQualityDashboard, Achilles, Atlas (Data Sources and Cohort creation) and Feature Extraction.
|
Currently four OHDSI tools have been evaluated: DataQualityDashboard, Achilles, Atlas (Data Sources and Cohort creation) and Feature Extraction.
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ General criteria:
|
||||||
- `r emoji::emoji("exclamation")` if field is used by the tool, but not in a meaningful way. e.g. `provider_id` in Achilles only checked for a valid foreign key to the provider table.
|
- `r emoji::emoji("exclamation")` if field is used by the tool, but not in a meaningful way. e.g. `provider_id` in Achilles only checked for a valid foreign key to the provider table.
|
||||||
|
|
||||||
# Tooling Support for OMOP fields
|
# Tooling Support for OMOP fields
|
||||||
**Abbrevations** |
|
**Abbreviations** |
|
||||||
--- | ---
|
--- | ---
|
||||||
**PK** | Primary Key
|
**PK** | Primary Key
|
||||||
**SV** | Source Value (for data quality / etl validation)
|
**SV** | Source Value (for data quality / etl validation)
|
||||||
|
|
Loading…
Reference in New Issue