Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

<html><head><title></title></head><body>h1. 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:

{code}'''concept_set'''{code} 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 <u>implied</u>.

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.

{code}'''concept_set_derived'''{code} table

concept

set

metoprolol

Beta Blockers

Beta Blockers

Anti-Hypertensive Medications

metoprolol

Anti-Hypertensive Medications

The <font style="background:yellow">third item</font> in the list above is derived from the manually defined relationships.

Why all this monkey business with
concept_set_derived
?

The

concept_set

table is displayed in the Old Nasty Data Model Page. The

concept_set_derived

is considered part of the business stuff that's needed to make OpenMRS work. The bottom line is that bursting out implicit relationships into a

concept_set_derived

table prevents the application from having to calculate all of the implicit relationships in real time. Likewise, we don't want to burden humans with having to explicitly define all of these implicit relationships (why create three relationships when two says it all — in the example above).

</body></html>

  • No labels