Versions Compared

Key

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

Summary of notes from http://notes.openmrs.org/Design-Forum-2013-05-29

...

Jonathan's clinical notes:

1. Regardless of whether these are true biochemical allergies, almost all clinicians lump together all drugs that are hazardous to an individual patient, and they are commonly if incorrectly known as "allergies" because that's the word the patients know and hear. So we are including major intolerance groups in this list.
2. Products specifically containing aspirin
3. Drugs to be flagged and avoided in patients with G6PD deficiency, such as aspirin, dapsone, etc.  Note that aspirin itself actually is a member of three of the groups listed here.
4. There are technically three different groups of opiates for allergy purposes, but most of the ones used fall into the phenanthrene group (codeine, oxycodone, morphine, hydromorphone, etc.).  The outliers are fentanyl, meperidine, methadone and propoxyphene -- but there's still some cross-reactivity.

Possible values for Reactions 

...

CREATE TABLE `active_list` (
  `active_list_id` int(11) NOT NULL AUTO_INCREMENT,
  `active_list_type_id` int(11) NOT NULL,
  `person_id` int(11) NOT NULL,
  `concept_id` int(11) NOT NULL,
  `start_obs_id` int(11) DEFAULT NULL,
  `stop_obs_id` int(11) DEFAULT NULL,
  `start_date` datetime NOT NULL,
  `end_date` datetime DEFAULT NULL,
  `comments` varchar(255) DEFAULT NULL,
  `creator` int(11) NOT NULL,
  `date_created` datetime NOT NULL,
  `voided` tinyint(1) NOT NULL DEFAULT '0',
  `voided_by` int(11) DEFAULT NULL,
  `date_voided` datetime DEFAULT NULL,
  `void_reason` varchar(255) DEFAULT NULL,
  `uuid` char(38) NOT NULL,
  PRIMARY KEY (`active_list_id`),
  KEY `user_who_voided_active_list` (`voided_by`),
  KEY `user_who_created_active_list` (`creator`),
  KEY `active_list_type_of_active_list` (`active_list_type_id`),
  KEY `person_of_active_list` (`person_id`),
  KEY `concept_active_list` (`concept_id`),
  KEY `start_obs_active_list` (`start_obs_id`),
  KEY `stop_obs_active_list` (`stop_obs_id`),
  CONSTRAINT `active_list_type_of_active_list` FOREIGN KEY (`active_list_type_id`) REFERENCES `active_list_type` (`active_list_type_id`),
  CONSTRAINT `concept_active_list` FOREIGN KEY (`concept_id`) REFERENCES `concept` (`concept_id`),
  CONSTRAINT `person_of_active_list` FOREIGN KEY (`person_id`) REFERENCES `person` (`person_id`),
  CONSTRAINT `start_obs_active_list` FOREIGN KEY (`start_obs_id`) REFERENCES `obs` (`obs_id`),
  CONSTRAINT `stop_obs_active_list` FOREIGN KEY (`stop_obs_id`) REFERENCES `obs` (`obs_id`),
  CONSTRAINT `user_who_created_active_list` FOREIGN KEY (`creator`) REFERENCES `users` (`user_id`),
  CONSTRAINT `user_who_voided_active_list` FOREIGN KEY (`voided_by`) REFERENCES `users` (`user_id`)
)

CREATE TABLE `active_list_allergy` (
  `active_list_id` int(11) NOT NULL AUTO_INCREMENT,
  `allergy_type` varchar(50) DEFAULT NULL,
  `reaction_concept_id` int(11) DEFAULT NULL,
  `severity` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`active_list_id`),
  KEY `reaction_allergy` (`reaction_concept_id`),
  CONSTRAINT `reaction_allergy` FOREIGN KEY (`reaction_concept_id`) REFERENCES `concept` (`concept_id`)
)

An allergy is an active list.


Proposed additional adds: 

From Jonathan: As per the design discussion at the design call on Wednesday July 16, 2014: there are a few additional fields that we need in the allergy structure, mainly in the specification of an allergen (the thing to which you are allergic).  Broadly: 

allergy {
           (this is a summary outlined by Burke in one of our meetings)
 

allergen

 

reaction          allergen
           reaction [coded concept from a picklist or Other/free text]
  severity          severity [I’m not sure this is useful in practice, but willing to go along with it]

 

onset            onset date
 

comments

 

}

 

 

          comments
}

allergen {
    type  type (ordinal: drug, food, substance)

 

(for drugs – sometimes the user will choose a drug class, sometimes only a specific drug, and sometimes they will choose a specific drug but we will still want to infer a drug class):
    drug  drug class

 

concept id             concept id [where it comes from: picklist, inferred from a drug that user entered, or Other/free text]

 

text            text name [if Other is used]
 

  drug

 

concept  drug
           concept id [where it comes from: picklist, drug dictionary lookup or Other]
  text          text name [if Other is used] 
(for foods):
    concept  concept ID [picklist]
    text  text name [text] 
(for other substances):
    concept  concept ID [picklist]
    text  text name [text]

 

}

  

 Proposed Mockups: 

Current mockups (in pdf)

...