This is an old revision of the document!
CONCEPT_ANCESTOR table
THIS IS OUTDATED. All documentation is now on the github wiki. Please refer there or to the CDM working group for more information
The CONCEPT_ANCESTOR table is designed to simplify observational analysis by providing the complete hierarchical relationships between Concepts. Only direct parent-child relationships between Concepts are stored in the CONCEPT_RELATIONSHIP table. To determine higher level ancestry connections, all individual direct relationships would have to be navigated at analysis time. The CONCEPT_ANCESTOR table includes records for all parent-child relationships, as well as grandparent-grandchild relationships and those of any other level of lineage. Using the CONCEPT_ANCESTOR table allows for querying for all descendants of a hierarchical concept. For example, drug ingredients and drug products are all descendants of a drug class ancestor.
This table is entirely derived from the CONCEPT, CONCEPT_RELATIONSHIP and RELATIONSHIP tables.
| Field | Required | Type | Description |
|---|---|---|---|
| ancestor_concept_id | Yes | integer | A foreign key to the concept in the concept table for the higher-level concept that forms the ancestor in the relationship. |
| descendant_concept_id | Yes | integer | A foreign key to the concept in the concept table for the lower-level concept that forms the descendant in the relationship. |
| 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. |
| 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. |
A path between two concepts can be characterized by the sequence of relationships that need to be traversed in order to reach a descendant concept from an ancestor concept.
For example, for concepts
| descendant_concept_id | descendant_concept_name | ancestor_concept_id | ancestor_concept_name | min_levels_of_separation | max_levels_of_separation |
|---|---|---|---|---|---|
| 4047584 | Lengthening of extraocular muscle | 4301351 | Surgical procedure | 3 | 6 |
the shortest path in concept_relationship will be :
4047584 Lengthening of extraocular muscle Is a 4214521 Strabismus Is a 4132804 Surgical procedure for clinical finding and/or disorder Is a 4301351Surgical procedure
the longest:
4047584 Lengthening of extraocular muscle Is a 4214521 Strabismus surgery Is a 4070457 Operation on extraocular muscle Is a 4333146 Surgical procedure on orbit Is a 4154279 Surgical procedure on eye region Is a 4233946 Operative procedure on head Is a 4301351 Surgical procedure
Conventions
- Each concept is also recorded as an ancestor of itself.
- Only valid and Standard Concepts participate in the CONCEPT_ANCESTOR table. It is not possible to find ancestors or descendants of deprecated or Source Concepts.
- Usually, only Concepts of the same Domain are connected through records of the CONCEPT_ANCESTOR table, but there might be exceptions.
