ASTM Subcommittee E31.15 Health Knowledge Representation E 1460 Standard Specification for Defining and Sharing Modular Health Knowledge Bases Arden Syntax for Medical Logic Modules ASTM Subcommittee E31.15, which was formed in 1990, is concerned with "the promotion of knowledge and the development of standards for defining and sharing health knowledge for use on computerized systems." In 1992, the subcommittee published E 1460, which is better known as the Arden Syntax for Medical Logic Modules. The Arden Syntax is a language for encoding medical knowledge. Each Medical Logic Module (MLM) contains sufficient logic to make a single medical decision. MLMs have been used to generate clinical alerts, interpretations, diagnoses, screening for clinical research, quality assurance functions, and administrative support. With an appropriate computer program (called an event monitor), MLMs run automatically, generating advice where and when it is needed. For example, one MLM warns physicians when a patient develops new or worsening kidney failure. Each MLM is made of slots grouped into maintenance, library, and knowledge categories. The maintenance slots document the title, author, institution, and validation of the MLM. The library slots specify medically relevant comments, links to the literature, and keywords for organizing a set of MLMs. The knowledge slots define an MLM's behavior. They specify the context in which the MLM is relevant, a set of criteria to be checked, and an action to perform if the criteria are satisfied. The syntax has provisions for querying a clinical database and for representing time. A sample MLM is included below. The Columbia University Health Sciences Library maintains an anonymous ftp directory and a gopher server for MLMs. The ftp directory contains a tutorial on writing MLMs and a collection of real MLMs donated from several sources. The gopher server has only the MLMs. 1. To obtain MLMs via anonymous ftp: ftp cucis.cis.columbia.edu name: anonymous password: cd pub/mlm get README get help.txt get tutorial.txt mget *.mlms 2. To obtain MLMs via telnet to gopher: telnet cuhsla.cpmc.columbia.edu login: infoseeker choose: "Health Sciences Resources at CPMC" choose: "Medical Logic Modules" 3. For questions about the Arden Syntax itself or about the MLM library collection, contact: George Hripcsak, M.D. Center for Medical Informatics Columbia-Presbyterian Medical Center 161 Fort Washington Avenue, AP-1310 New York, New York 10032 (212) 305-5712 hripcsa@cucis.cis.columbia.edu 4. For questions about ASTM Subcommittee E31.15, contact: T. Allan Pryor, Ph.D. LDS Hospital 325 8th Avenue Salt Lake City, Utah 84143 (801) 321-2128 tapryor@cc.utah.edu 5. For questions about MLM evaluation, contact: Ove B. Wigertz, D.Sc., D.Med. Dept. Medical Informatics Linkoping University Linkoping, Sweden S-58183 (4613) 227-570, (4613) 104-131 fax ovewi@ami.liu.se 6. To obtain a copy of E 1460 (the Arden Syntax specification), and for questions about ASTM membership, contact: Terri Mecholsky ASTM 1916 Race Street Philadelphia, PA 19103-1187 (215) 299-5485 (cost of the document itself is about $28) ============================================================ A sample MLM ============================================================ maintenance: title: Alert on low hematocrit;; filename: low_hematocrit;; version: 1.00;; institution: CPMC;; author: George Hripcsak, M.D. (hripcsa@cucis.columbia.edu);; specialist: ;; date: 1993-10-31;; validation: testing;; library: purpose: Warn provider of new or worsening anemia.;; explanation: Whenever a blood count result is obtained, the hematocrit is checked to see whether it is below 30 or at least 5 points below the previous value.;; keywords: anemia; hematocrit;; knowledge: type: data-driven;; data: blood_count_storage := event {'complete blood count'}; hematocrit := read last {'hematocrit'}; previous_hct := read last ({'hematocrit'} where it occurred before the time of hematocrit);; evoke: blood_count_storage;; logic: /* check that the hematocrit is a valid number */ if hematocrit is not number then conclude false; endif; if hematocrit <= previous_hct-5 or hematocrit<30 then conclude true; endif;; action: write "The patient's hematocrit ("|| hematocrit ||") is low or falling rapidly.";; end: