Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Note

This page is outdated and no longer receives updates!

What's the difference between concept_set and concept_set_derived tables?

Humans (you and me) should only edit set relationships in the concept_set table. These relationships are then programmatically burst into the concept_set_derived table for "real world" use.

  • Humans use concept_set

  • Computers use concept_set_derived

Understanding by example

Here's an example (using made-up concepts). Suppose we want to relate the following three concepts using concept sets:

  1. metoprolol

  2. Beta Blockers

  3. Anti-Hypertensive Medications

We (humans) use the dictionary editing tools to define two relationships:

concept_set table

concept

set

metoprolol

Beta Blockers

Beta Blockers

Anti-Hypertensive Medications

The above relationships, state that metoprolol is a Beta-Blocker and that all Beta-Blockers are Anti-Hypertensive Medications. The idea that metoprolol is an Anti-Hypertensive Medication is implied.

We then run a script (e.g., AdministratorService.updateConceptSetDerived(Concept concept)) to programmatically burst all of the implicit relationships and put these into the concept_set_derived table. Each time the script is run, the concept_set_derived table is cleared, and all entries in the concept_set table are copied into concept_set_derived, along with any implied relationships.

concept_set_derived table

concept

set

metoprolol

Beta Blockers

Beta Blockers

Anti-Hypertensive Medications

metoprolol

Anti-Hypertensive Medications

The third item in the list above is derived from the manually defined relationships.

...