# Process-Aware Enactment of Clinical Guidelines through Multimodal Interfaces
## 4 The Architecture of the TESTMED System  
The TESTMED system is based on three main architectural components: a _graphical user interface_, a _back-end engine_, and a _task handling server_. Figure 7 shows an overall view of the system architecture. The system is implemented employing a multimodal user interface. On the one hand, doctors interact with a GUI (see Figure 4) that is specifically designed for being executed on large mobile devices (e.g., tablets), and allows for tactile or vocal interaction. In particular, vocal interaction enables doctors to work flexibly in clinical scenarios where their visual and haptic attention (i.e., eyes and hands) are mainly busy with the patient's visit. On the other hand, the GUI provided to members of the medical staff is thought to be visualized on small mobile devices (e.g., smartphones) and provides only a tactile interaction (see Figure 6). Figure 7: TESTMED system architecture. The _back-end engine_ with its services provides the ability to interrupt, activate, execute and monitor CGs and relevant data between doctors and the medical staff at run-time. In TESTMED, a collection of various programming languages is used to define each CG. First, the PROforma language [34] is utilized to fulfill the role of modeling each CG into a set of clinical activities, data items, and the control flow between them. Then, starting from the resulted PROforma model, a configuration file is semi-automatically built in XML language to define all the necessary settings by which the multimodal interaction functionality is allowed and the integration of different system components is enabled. As a result, a CG will be finally represented as a _guideline bean_, which will be deployed into the system and ready for execution. The execution of CGs is completed with a precise routing of data, set of events and clinical activities, which all follow a well-defined process-aware and content-based approach in which activities are scheduled and messages are dispatched in an event- and data-driven way. The back-end engine manages and controls the routing process of all clinical activities, related data, and produced events between the corresponding parts including actors, services, and applications. Therefore, it guarantees a successful interaction among all participating units and services. Moreover, any software module that communicates with the engine for completing any defined activity can be viewed as an external service to be invoked when needed. Basically, services are considered wrappers over pre-existing legacy systems, such as the Electronic Medical Record (EMR) systems employed in hospitals. The routing engine performance depends on a primary scheduling unit which handles the accomplishment of activities that require temporal constraints (e.g., examinations and analytical experimental tests which should be designed and conducted in a timely manner), and communicates with the EMR system in order to _(i)_ search and query medical and administrative patient information, _(ii)_ organize and plan examinations, laboratory tests, medicine receptions, etc. according to the related medical procedure, and _(iii)_ get notified about events and laboratory testing results so that it can be forwarded to the assigned doctors. This interoperable work with the EMR system is realized by employing the Health Level 7 (HL7) standard protocol (HL7 is a set of international standards for transfer of clinical and administrative data between hospital information systems. [[http://www.hl7.org/](http://www.hl7.org/)]([http://www.hl7.org/](http://www.hl7.org/))). The analyzing, processing and creation of HL7 messaging packets is organized and controlled by a specific HL7 processing unit. It is worth noticing that all the conducted activities while performing a CG should be stored and registered, in order to keep track and retrieve accordingly all the events, activities and data, which relate to the medical case and its decision-making scenarios.