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:
metoprolol
Beta Blockers
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.
...