Arden2ByteCode: A one-pass Arden Syntax compiler for service-oriented decision support systems based on the OSGi platform

https://doi.org/10.1016/j.cmpb.2011.11.003Get rights and content

Abstract

Patient empowerment might be one key to reduce the pressure on health care systems challenged by the expected demographic changes. Knowledge based systems can, in combination with automated sensor measurements, improve the patients’ ability to review their state of health and make informed decisions. The Arden Syntax as a standardized language to represent medical knowledge can be used to express the corresponding decision rules. In this paper we introduce Arden2ByteCode, a newly developed open source compiler for the Arden Syntax. Arden2ByteCode runs on Java Virtual Machines (JVM) and translates Arden Syntax directly to Java Bytecode (JBC) executable on JVMs. Arden2ByteCode easily integrates into service oriented architectures, like the Open Services Gateway Initiative (OSGi) platform. Apart from an evaluation of compilation performance and execution times, Arden2ByteCode was integrated into an existing knowledge supported exercise training system and recorded training sessions have been used to check the implementation.

Highlights

► We present Arden2ByteCode a newly developed open source compiler for the Arden Syntax. ► Direct one-pass translation to Java Bytecode provides fast compilation and execution. ► Execution on Java virtual machines eases integration in service oriented architecture. ► Evaluation results show good coverage of the Arden Syntax standard. ► Arden2ByteCode's permissive open source license allows a variety of usages.

Introduction

Recently sensor enhanced health information systems have been proposed as one among many measures to alleviate the effects of demographic change [1]. Utilizing repeatedly or continuously performed measurements by sensor systems detailed information of an individual's state of health can be produced [2]. The information hidden in the gathered data could empower each individual to live a healthier life [3], to detect developing diseases earlier [4], and to effectively manage chronic diseases [5]. Giving back the patient more responsibility for his own health is expected to have a positive impact on health care costs.

One limiting factor is the patient's lack of knowledge to interpret measurements in the context of their personal health to make informed decisions. Therefore, they need to be assisted. Personalized decision support systems could help to bridge this gap.

The goal of our research was to develop components for decision support systems (DSSs) that can be seamlessly integrated into sensor enhanced health information systems. The knowledge should be represented in an easy-to-understand, transportable, and preferably standardized form to support individualization of decision support.

Section snippets

Background

To archive a high level of knowledge abstraction and ease the sharing of knowledge the Arden Syntax for Medical Logic Modules (MLMs) has been chosen to represent health-related knowledge. Arden Syntax is well established as a way to represent medical knowledge. It has been standardized by Health Level 7 (HL7) [6] and incorporates a number of concepts, making it easy to express rules in the medical domain in a manner close to natural language. The promise is that experts from the domain are able

Design considerations

In the GAL research project software development is based on the OSGi platform [29]. OSGi is a service-based dynamic component model for the Java programming language and a widely known universal middleware for embedded devices. Services within the context of OSGi are interfaces which summarize the functionality of a certain piece of software. So called bundles implement these interfaces, wrap these implementations in jar-files and register the interfaces to the OSGi registry. Bundles can also

Description of Arden2ByteCode

In this section, we give a detailed presentation of our Arden2ByteCode compiler framework including a general survey of the compiler architecture as well as in-depth discussions of selected translation patterns, and technical issues concerning runtime integration.

Status report

We evaluated the developed Arden2ByteCode compiler in two steps. Firstly, the ability of the compiler to translate an independent set of MLMs has been assessed and the compilation times were measured. Secondly, the execution time of one of our published sets of MLMs and corresponding data is measured and we compared the results with a previously conducted study. This section is subdivided accordingly.

All evaluations were performed on the same laptop computer with an Intel Pentium M processor,

Lessons learned

During our work on the Arden2ByteCode compiler implementation, we obtained deep insights into the subtleties and various corner cases of the Arden Syntax specification.

The language components supported by our compiler implementation were, first of all, selected as required by the MLMs used in the DSS under consideration. That is, all major features of Arden Syntax version 2.1 and, additionally the object-oriented innovations of version 2.5 are covered in full by Arden2ByteCode. However, we

Future plans

The implementation of the remaining, not yet implemented Arden Syntax features is an obvious objective. Event-driven MLM invocations and calling other MLMs as sub-routines are features that will be needed by more complicated knowledge bases. Concrete syntax tree to abstract syntax tree transformations and corresponding standard optimization techniques, e.g., constant folding of ArdenValue may help to further increase execution performance of compiled MLMs. In addition, inference of static type

Acknowledgements

The Lower Saxony research network “Design of Environments for Ageing” (http://www.altersgerechte-lebenswelten.de) acknowledges the support of the Lower Saxony Ministry of Science and Culture through the “Niedersächsisches Vorab” grant programme (grant ZN 2420). Besides financing the funding source was not involved into the research.

References (33)

  • HorwitzC.M. et al.

    Is home health technology adequate for proactive self-care?

    Methods Inf. Med.

    (2008)
  • GómezE.J. et al.

    The INCA system: a further step towards a telemedical artificial pancreas

    IEEE Trans. Inf. Technol. Biomed.

    (2008)
  • Health Level Seven, Arden Syntax for Medical Logic Systems, Version 2.5,...
  • D. Grunwald, Arden2ByteCode—Open Source Arden Syntax Compiler Implementation, Source Code on the Internet,...
  • LindholmT. et al.

    Java Virtual Machine Specification

    (1999)
  • OSGi Alliance, OSGi Service Platform Core Specification, Release 4, Version 4.2 Edition, OSGi Alliance, 2009,...
  • Cited by (33)

    • Use of an open-source electronic health record to establish a “virtual hospital”: A tale of two curricula

      2023, International Journal of Medical Informatics
      Citation Excerpt :

      In previous years, they would build this as a standalone system, written using a database of test data with a simple schema, and in a general-purpose programming language. With the EHR implementation, we asked students to query the EHR's database, and write the code using Arden Syntax, making use of a custom decision support module that we developed, building on the open source Arden2Bytecode project [10,11]. The alerts display in the EHR, on the patient summary page.

    • Comprehensive analysis of rule formalisms to represent clinical guidelines: Selection criteria and case study on antibiotic clinical guidelines

      2020, Artificial Intelligence in Medicine
      Citation Excerpt :

      We use the guiding examples throughout all of the experiments, as they provide good representations of some of the most complex JHH UTI CGs rules, which require either temporal reasoning and/or event orchestration. We have modelled the 81 rules identified using the Eclipse Mars 2 4.5.2 IDE with the Arden add-on Arden4Eclipse that includes the open-source compiler Arden2ByteCode under a GPL license [23], resulting in a total of 12 MLM’s, using extensive if...then...else nesting. MLM execution can be triggered directly by invoking the MLM or using events.

    • Arden Syntax: Then, now, and in the future

      2018, Artificial Intelligence in Medicine
    • Transformation of Arden Syntax's medical logic modules into ArdenML for a business rules management system

      2018, Artificial Intelligence in Medicine
      Citation Excerpt :

      HL7 has not produced or designated an official rule engine for the Arden Syntax because one of its principles is to present vendor neutral clinical knowledge. That means that users are required to compile the MLMs of Arden Syntax into a target language for its operation [18–26]. The benefit of ArdenML is its ability to transform the MLMs into the target language without developing a compiler.

    • Clinical decision support systems at the Vienna General Hospital using Arden Syntax: Design, implementation, and integration

      2018, Artificial Intelligence in Medicine
      Citation Excerpt :

      Since its inception, several CDSSs have employed the Arden Syntax standard to perform a variety of functions in a variety of medical settings, such as the validation of laboratory data in a laboratory information system [21], the automation and marshalling of (temporally) complex clinical practice guidelines [22], and a warning system to avoid adverse events in pediatric care [23,24], to name a few. There have also been several implementations of compilers and frameworks for the execution of Arden Syntax MLMs, such as Arden/J [25], Arden2ByteCode [26], and the Arden Syntax server [11]. The AKIM project was started as a joint project between the Faculty of Medicine at the University of Vienna (now the MUV) and the City of Vienna in 1997.

    View all citing articles on Scopus
    1

    Present address: Peter L. Reichertz Institute for Medical Informatics, TU Braunschweig and Hannover Medical School, Carl-Neuberg-Str. 1, 30625 Hannover, Germany.

    View full text