Conventions

TODO: Brief overview of the use and intent of these conventions



Diagnostic

Primary Diagnosis

Cancer diagnoses are recorded within the CONDITION table, ideally with ICDO3 concepts. Specific attributes or details about that condition which are not contained within the concept are attached to these condition records as MEASUREMENTS, referred to as Condition Modifiers, which are described below.



Condition Modifiers

Under Construction


Overview of Condition Modifiers

(Placeholder)

What we are calling ‘Condition Modifiers’ are observations/findings/attributes about a cancer and are stored as Measurements using the Cancer Modifier vocabulary.

A linkage between the Condition Modifier and the respective condition is made leveraging the two columns in the Measurement table that serve as a foreign key. This same mechanism is used for procedure modifiers as well. The first (meas_event_field_concept_id) indicates which table we are referring to, the second (measurement_event_id) indicates which row.

There are concepts for every potential PK that a measurement can potentially modify.

Vocabulary ID : CDM Domain Id : Metadata Concept Class Id : Field

For condition modifiers, we are pointing to the primary key of the condition table, which is condition_occurrence.condition_concept_id (https://athena.ohdsi.org/search-terms/terms/1147127)

An example condition modifier record within the measurement table would contain:

  SELECT 
  ...
  1147127 as meas_event_field_concept_id -- static for all condition modifiers
  temp.condition_occurrence_id as measurement_event_id -- the condition_occurrence_id to which this Cancer Modifier refers to 



Date of Initial Diagnosis

Complete

Condition Modifier

Description

The date of initial diagnosis can be represented in the OMOP CDM by mapping to the correct concept in the Cancer Modifier vocabulary and represented as a MEASUREMENT, or rather, a cancer modifier. This can be an important data point from the source to distinguish this particular date as the most reliable diagnosis date of a patient’s cancer and can, depending on various factors, substantially vary in a non-trivial way from other diagnosis dates in the CONDITION_OCCURRENCE table for the same disease occurrence.

There are specific circumstances in which there is a higher level of certainty that the date contained within a condition record is an accurate representation of the initial diagnosis date. Some examples would be from tumor registries or manually curated or verified data. In those cases, to distinguish these records as the source of truth, we assign a condition modifier of ‘Initial Diagnosis’ (Concept_id = 734306) to that condition record, recorded as a measurement.

If the source data record in question is not confirmed to reliably represent the initial diagnosis date, such as from typical EMR records, the modifier is not used.

Metadata Value
Concept Name Initial Diagnosis
Domain ID Measurement
Vocabulary ID Cancer Modifier
Concept ID 734306
Concept code init_diag

Mapping

Adding this condition modifier would look something like:

  INSERT INTO MEASUREMENT
  SELECT
  ...
  734306 as measurement_concept_id -- "Initial Diagnosis" ****** 
  1147127 as meas_event_field_concept_id -- static for all condition modifiers
  temp.condition_occurrence_id as measurement_event_id -- the condition_occurrence_id to which this Cancer Modifier refers to 

Usage

Finding conditions which have the “initial diagnosis date” flag (modifier) can be done by:

  SELECT * 
  FROM CONDITION_OCCURRENCE co
  WHERE CONDITION_OCCURRENCE_ID IN (
    SELECT measurement_event_id
    FROM measurement
    WHERE measurement_concept_id = 734306 -- Initial diagnosis
    AND meas_event_field_concept_id = 1147127 -- Condition_Occurrence
)

TNM

Complete

Condition Modifier

Description

Circumvent the concept mappings and map directly to the standard concepts within the ‘Cancer Modifier’ vocabulary by concatenating your source data and joining on the concept code.

The concept code has 4 components that the ETL developer will need to concatenate to match. Those components are:

  1. Clinical vs. Pathological ( c or p)
  2. Version of AJCC/UICC (6th, 7th or 8th supported)
  3. Specification of AJCC/UICC (static value)
  4. The TNM value from the source

The concept code format is : [c/p]-[version]th_AJCC/UICC-[TNM Value]


Mapping

For example : c-7th_AJCC/UICC-T1c2

Above: TNM value of T1c2, clinically staged, defined by the 7th version of AJCC/UICC

To find the correct standard concept, you need to join to the concept code, as shown here:

  SELECT concept_id
  FROM concept
  WHERE vocabulary_id = 'Cancer Modifier'
  AND concept_class_id = 'Staging/Grading'
  AND standard_concept = 'S'
  AND concept_code = 'c-7th_AJCC/UICC-T1c2'

Usage

There are multiple methods of navigating concept hierarchies for TNM depending on the use case.

Using M1a for example:

Find all concepts that fall under “M1a”, regardless of version or clin vs. path

  SELECT descendant_concept_id
  FROM concept_ancestor
  WHERE ancestor_concept_id = 1635100 -- AJCC/UICC M1a Category

Find all concepts that fall under “M1a”, regardless of version but ONLY path

  SELECT descendant_concept_id
  FROM concept_ancestor
  WHERE ancestor_concept_id = 1634312 -- AJCC/UICC Pathological M1a Category

Find all concepts that fall under “M1a”, are pathological only, and are only using the 7th version

  SELECT descendant_concept_id
  FROM concept_ancestor
  WHERE ancestor_concept_id = 1634268 -- AJCC/UICC 7th Pathological M1a Category

Lastly, you can search for the concept directly given the structured concept codes. For the same example as above:

  SELECT concept_id
  FROM concept
  WHERE vocabulary_id = 'Cancer Modifier'
  AND concept_class_id = 'Staging/Grading'
  AND standard_concept = 'S'
  AND concept_code = 'p-7th_AJCC/UICC-M1a'  -- Pathological + version + code

Stage Group

Complete

Condition Modifier

Description

Circumvent the concept mappings and map directly to the standard concepts within the ‘Cancer Modifier’ vocabulary by concatenating your source data and joining on the concept code.

The concept code has 4 components that the ETL developer will need to concatenate to match. Those components are:

  1. Clinical vs. Pathological ( c or p)
  2. Version of AJCC/UICC (6th, 7th or 8th supported)
  3. Specification of AJCC/UICC-Stage (static value)
  4. The Stage Group from the source

The concept code format is : [c/p]-[version]th_AJCC/UICC-Stage-Stage Group


Mapping

For example : c-7th_AJCC/UICC-Stage-3A1

Above: Stage Group of 3A1, clinically staged, defined by the 7th version of AJCC/UICC

To find the correct standard concept, you need to join to the concept code, as shown here:

  SELECT concept_id
  FROM concept
  WHERE vocabulary_id = 'Cancer Modifier'
  AND concept_class_id = 'Staging/Grading'
  AND standard_concept = 'S'
  AND concept_code = 'c-7th_AJCC/UICC-Stage-3A1'

Usage

There are multiple methods of navigating concept hierarchies for Stage Group depending on the use case.

Using Stage Group 3A1 for example:

Find all concepts that fall under “3A1”, regardless of version or clin vs. path

  SELECT descendant_concept_id
  FROM concept_ancestor
  WHERE ancestor_concept_id = 1635412 -- AJCC/UICC Stage 3A1 Category

Find all concepts that fall under “3A1”, regardless of version but ONLY path

  SELECT descendant_concept_id
  FROM concept_ancestor
  WHERE ancestor_concept_id = 1633303 -- AJCC/UICC Pathological 3A1 Category

Find all concepts that fall under “3A1”, are pathological only, and are only using the 7th version

  SELECT descendant_concept_id
  FROM concept_ancestor
  WHERE ancestor_concept_id = 1635016 -- AJCC/UICC 7th Pathological 3A1 Category

Lastly, you can search for the concept directly given the structured concept codes. For the same example as above:

  SELECT concept_id
  FROM concept
  WHERE vocabulary_id = 'Cancer Modifier'
  AND concept_class_id = 'Staging/Grading'
  AND standard_concept = 'S'
  AND concept_code = 'p-7th_AJCC/UICC-Stage-3A1'  -- Pathological + version + code

Grading

Complete

Condition Modifier

Description

Map directly to the concepts in the Cancer Modifier vocabulary. The standard concepts for grade are broken down into 1-4 as well as High, Intermediate, and Low.

A few specific grading systems (e.g. Nottingham, FIGO) are represented as standard concepts in the Cancer Modifier vocabulary. Map to these concepts if they match the granularity of your data. If you have a specific need for a different grading system, you can request that it be standardized by creating an issue.


Mapping

For example: Grade 1

Above: Any tumor that has been assigned a Grade 1 in any grading system

To find the correct standard concept, you need to join to the concept code, as shown here:

SELECT concept_id
FROM concept
WHERE vocabulary_id = 'Cancer Modifier'
AND concept_class_id = 'Staging/Grading'
AND standard_concept = 'S'
AND concept_code = 'Grade-1'

Another example: Gleason Score 8

Above: A tumor assigned a Gleason Score of 8 using the Gleason grading system

To find the correct standard concept, you need to join to the concept code, as shown here:

SELECT concept_id
FROM concept
WHERE vocabulary_id = 'Cancer Modifier'
AND concept_class_id = 'Staging/Grading'
AND standard_concept = 'S'
AND concept_code = 'Gleason-Score-8'

Usage

To find all standard Grade concepts in the Cancer Modifier vocabulary:

SELECT b.concept_id, b.concept_code, b.concept_name
FROM (
  SELECT *
  FROM concept c
  INNER JOIN concept_ancestor ca
  ON c.concept_id = ca.ancestor_concept_id
  WHERE vocabulary_id = 'Cancer Modifier'
  AND concept_class_id = 'Staging/Grading'
  AND standard_concept = 'S'
  AND lower(concept_code) LIKE '%grade%'
) a
INNER JOIN concept b
ON a.descendant_concept_id = b.concept_id

Dimension

Under Construction

Condition Modifier

Description

Caveat

TODO


Mapping

HIJKLM


Usage

NOPQ


Laterality

Under Construction

Condition Modifier

Description

Caveat

TODO


Mapping

HIJKLM


Usage

NOPQ



Metastasis

Under Construction

Description

(Placeholder)

Caveat It is currently under discussion as to whether or not records of metastases will be represented as both a MEASUREMENT and a CONDITION, and once it has this documentation will be updated, but we are sure that we need the MEASUREMENT representation which is detailed below. Additionally, there are concept mappings being worked on by the Vocabulary team to de-standardize NAACCR and map those concepts to our destination representation within the Cancer Modifier vocabulary.

The standard Metastasis concepts can be found within:

Metadata Value
Domain ID Measurement
Vocabulary ID Cancer Modifier
Concept Class ID Metastasis

There is an overarching concept of ‘Metastasis’ (https://athena.ohdsi.org/search-terms/terms/36769180) . For one, this is important as it is a destination standard concept for sources where the data is vague to the point that you only know metastasis occurred. A secondary usage of this would be to find all of the standard concepts in which fall under it.


Mapping

TODO


Usage

To find all concepts in that hierarchy:

  SELECT descendant_concept_id -- The various concepts under the metasis hierarchy
  FROM CONCEPT_ANCESTOR
  WHERE ancestor_concept_id = 36769180

When it is known which CONDITION the metastasis occurrence refers to, it is represented linked similarly to that CONDITION record using the Cancer Modifiers mechanisms.

For example, a record of ‘Metastasis to Lung’ would look like:

  INSERT INTO MEASUREMENT
  SELECT
  ...
  36770283 as measurement_concept_id -- "Metastasis to Lung" ****** 
  1147127 as meas_event_field_concept_id -- static for all condition modifiers
  temp.condition_occurrence_id as measurement_event_id -- the condition_occurrence_id to which this Cancer Modifier refers to 


Extension/Invasion

Under Construction

Description

Caveat

These will be implemented similarly to the Metastasis approach, as Cancer Modifiers or MEASUREMENTS, but we are currently waiting on a revision of the concepts within this class of the Cancer Modifier vocabulary before mapping and providing examples as there is an absence of hierarchical relationships.


Mapping

HIJKLM


Usage

NOPQ



Treatment

Under Construction

Treatment representation is currently being finalized and this documentation will be updated accordingly

Treatment records are similar to conditions in that the concepts themselves do not contain all of the relevant information and there is a need for ‘modifiers’ to append additional information to these records, which we refer to as ‘Treatment Modifiers’


Surgery

Under Construction

Representation:

Modifiers - Surgery

(TODO)

Examples: - type - site - margins - topography - intent - …


Drug Therapy

Under Construction

Scope

Includes but not limited to:

  • Chemotherapy
  • Immunotherapy
  • Hormone Therapy

Representation: (TODO)

Modifiers - Drug Therapy

(TODO)

Examples:

  • regimen/phase/course
  • drug exposures
  • dosage
  • intent
  • planned vs. delivered

Radiotherapy

Under Construction

Representation:

Modifiers - Radiotherapy

(TODO)

Examples:

  • type
  • technique
  • site
  • modality
  • intent
  • fractions
  • dose/volume
  • planned vs. delivered