| Literature DB >> 29045651 |
Adam Wright1,2,3, Angela Ai1, Joan Ash4, Jane F Wiesen4, Thu-Trang T Hickman1, Skye Aaron1, Dustin McEvoy3, Shane Borkowsky5, Pavithra I Dissanayake6, Peter Embi7, William Galanter8, Jeremy Harper9, Steve Z Kassakian4, Rachel Ramoni10,11, Richard Schreiber12, Anwar Sirajuddin13, David W Bates1,2,3, Dean F Sittig14.
Abstract
Objective: To develop an empirically derived taxonomy of clinical decision support (CDS) alert malfunctions. Materials andEntities:
Mesh:
Year: 2018 PMID: 29045651 PMCID: PMC6019061 DOI: 10.1093/jamia/ocx106
Source DB: PubMed Journal: J Am Med Inform Assoc ISSN: 1067-5027 Impact factor: 4.497
Figure 1.Site visit and interview locations.
Figure 2.Flow of cases.
Figure 3.Overview of CDS malfunctions taxonomy.
Figure 4.Sample cases with taxonomy coding applied.
Axis 1: What caused the malfunction? (n = 68)
| Cause | No. of cases | Description | Example |
|---|---|---|---|
| Build error | 14 | The clinical conceptualization and design of the rule were sound, but there was an error building the rule that caused it to malfunction. | An alert was designed to fire for patients using inhaled fluticasone propionate. The rule was specified properly, but during the build, no route limitation was configured, so the alert also fired inappropriately for patients using fluticasone propionate nasal spray. |
| Conceptualization error | 11 | There was an error in the clinical conceptualization of the rule, which, when implemented, led to a malfunction. | A rule is designed to fire for patients receiving all heparins, but the subject matter expert only includes unfractionated heparin codes in the rule specification. Because of this oversight, the alert does not fire for patients receiving low-molecular-weight heparin, which should have been included. |
| New code, concept, or term introduced, but rule not updated | 10 | A new item was added to one of the data dictionaries used to encode clinical concepts within the EHR’s database. | A new extended-release form of carbamazepine is added to the EHR’s drug dictionary (other extended-release forms were already in the dictionary). A rule is in place that suggests monitoring carbamazepine levels. It identifies patients taking carbamazepine by looking to see whether one of several specified carbamazepine codes is on the patient’s medication list. The list of codes in the rule was not updated, so the rule did not fire for patients taking the new form of the medication. |
| Defect in EHR software | 10 | There is a programming error in the source code of the EHR that causes the EHR to function other than as designed or documented, and this error causes CDS to malfunction. | The EHR has a routine for importing and exporting rules. A bug in the importing routine causes certain diagnosis codes to be scrambled during the process. |
| Environment migration | 7 | Moving the rules from one environment to another (eg, test to production) leads to a malfunction. | A rule currently being tested, but not ready for deployment, is accidentally moved into the production environment when another completely tested package of CDS content is moved. |
| New value | 6 | The set of allowable values or the meaning of the values of a coded concept is changed. | The unit of measure for internal representation of weight is changed from pounds to kilograms, causing rules that use weight in calculations to fire incorrectly. |
| Alert text mismatch | 3 | The text displayed by the rule and the logic of the rule do not match. | An alert states, “Patient has CAD-equivalent on problem list and a beta blocker is not on the medication list. Recommend beta blocker.” However, it also fires for patients who do not have coronary artery disease (CAD) on the problem list but have had at least one visit with CAD listed as an encounter diagnosis. |
| External service issue | 4 | An external software routine that is used in CDS either fails to function or cannot be reached, creating an error. | An external drug classification service stops working (ie, always returns “false”) after maintenance, causing an alert that suggests aspirin for patients with CAD who are not already taking aspirin or another anti-platelet drug to fire for all patients who have CAD, even if they are already taking aspirin. |
| Inadvertent enabling/disabling | 2 | A rule in the production environment is inappropriately enabled or disabled. | A rule suggests influenza vaccination for patients who have not yet received it. The rule is supposed to be manually enabled every year when vaccine is available and disabled at the end of flu season. In 2 separate years, the staff member responsible for enabling the alert was on leave and the alert was never enabled. |
| Unaware of component reuse | 1 | A “building block” for CDS, such as a criteria specification or a value set, is reused in multiple rules and a knowledge engineer modifies it, intending to change one rule, but inadvertently also causes a change in another rule that uses the same component. | A coded value set that defines coronary artery disease is used in multiple rules. The value set is modified to correct an issue in one rule, but the change causes another rule to malfunction, as the knowledge engineer was unaware that the same value set was used in multiple rules. |
Axis 2: How was the malfunction discovered? (n = 68)
| Mode of Discovery | No. of cases | Description | Example/Notes |
|---|---|---|---|
| Reported by an end user | 37 | A user notifies the help desk, files a safety report, or directly contacts the team responsible for CDS. | A user calls the help desk because an alert that suggests mammography is showing for every patient, even young children and men. |
| Review of firing data | 17 | Retrospective examination of system-generated alert firing logs reveals anomalies (unusual patterns, such as large spikes or no firings for a long period of time). | A data analyst notices that an alert that discourages repeat echocardiography has not fired in the last year when it previously fired several times a day. |
| Review of override reasons | 5 | Retrospective examination of user-entered alert override reasons was conducted. | A researcher notices that an alert that suggests insulin for patients in the emergency department is frequently overridden with comments like “Patient already received insulin.” Further investigation reveals a logic error that causes the alert to miss certain prior insulin administrations. |
| Testing | 5 | Testing of CDS revealed malfunctions. | An analyst testing in the production environment in advance of a go-live at a new hospital joining an existing system notices that a sepsis alert does not fire when it should. |
| Review of input data element usage | 2 | Changes in the pattern of use of data elements that are used by the rule logic (eg, orderable items or lab result) were reviewed. | An analyst observes that a new thyroid-stimulating hormone (TSH) test result code is being used at one site in an integrated system and knows that a drug monitoring alert depends on TSH results, and that the rule has not been updated to include the new result code. |
| Demonstration of system | 1 | An error was identified while demonstrating how the system worked. | A researcher demonstrating a drug-lab interaction monitoring CDS could not get an alert to fire when it should have. |
| Found while investigating other error | 1 | Malfunction in one rule was found incidentally while investigating an error in another rule. | A knowledge engineer investigating a particular CDS problem incidentally observes that an alert related to renal dose adjustment is also not firing correctly. |
Axis 3: When did the malfunction start? (n = 68)
| Initiation | No. cases | Description | Example |
|---|---|---|---|
| From its implementation in production | 37 | Rule never fired correctly in production environment. | A new rule is released that suggests pneumococcal vaccination. Due to a configuration problem, it only fired for pediatric patients when it was intended to fire for patients over the age of 18 years. |
| After deployment into production | 31 | Rule initially worked correctly but began to fail at some later point. | A hospital laboratory starts reporting TSH results under a new internal code number when it changes to a next-generation assay (the code is changed from “TSH” to “TSH3”). An alert is in place that suggests TSH testing for patients who are eligible and have not recently had the test. When the code is changed, the alert starts firing for patients who have recently had the new test. The alerts had previously worked correctly. |
Axis 4: What was the effect of the malfunction on rule firing? (n = 68)
| Effect | No. of cases | Description | Example |
|---|---|---|---|
| Rule fires in situations where it should not fire | 33 | Rule fires for patients who do not meet the intended criteria. | After a software upgrade, a pregnancy alert starts firing for women of all ages, even those who are very unlikely to be pregnant and who are intended to be excluded from the rule logic. |
| Rule does not fire in situations where it should | 18 | Rule fails to fire for all patients, or a subset who do, in fact, meet the intended criteria. | The logic for an alert that suggests lead screening for 2-year-old children is inadvertently modified by a knowledge engineer and the rule stops firing entirely. |
| Rule fires in the correct situations, but suggests the wrong action or displays the wrong text | 14 | The rule fires for the correct patients, but the display text of the rule, or the actions that it offers, are incongruent with its purpose. | A rule that suggests adding sickle cell disease to the problem list is able to be overridden if the patient does not have sickle cell disease. Due to an issue with rule configuration, the acknowledgment reason offered is “Patient does not have gestational diabetes” rather than “Patient does not have problem.” |
| Rule fires in the correct situation, but causes the EHR to operate slowly | 3 | The EHR operates more slowly due to an issue with the way the CDS logic is constructed (commonly because it fetches too much data or depends on an external service that is slow). | An alert that suggests adding hypertension to the problem list for patients with serial high blood pressure measurements queries the EHR’s observation table in an inefficient way. In certain situations, this causes a processing backlog that slows all aspects of the EHR. |