A MULTI-AGENT BASED MEDICAL IMAGE MULTI-DISPLAY VISUALIZATION SYSTEM Filipe Marreiros, Victor Alves and Luís Nelas* Informatics Department School of Engineering – University of Minho Braga, Portugal f_marreiros@yahoo.com.br, valves@di.uminho.pt *Radiconsult Braga, Portugal luis.nelas@radiconsult.com Abstract – The evolution of equipments used in the medical imaging practice, from 3-tesla Magnetic Resonance (MR) units and 64-slice Computer Tomography (CT) systems to the latest generation of hybrid Positron Emission Tomography (PET)/CT technologies is fast producing a volume of images that threatens to overload the capacity of the interpreting radiologists. On the other hand multi-agents systems are being used in a wide variety of research and application fields. Our work concerns the development of a multi-agent system that enables a multi-display medical image diagnostic system. The multi-agent system architecture permits the system to grow (scalable) i.e., the number of displays according to the user’s available resources. There are two immediate benefits of this scalable feature: the possibility to use inexpensive hardware to build a cluster system and the real benefit for physicians is that the visualization area increases allowing for easier and faster navigation. In this way an increase in the display area can help a physician analyse and interpret more information in less time. Keywords: multi-agent systems, multi-display systems, medical image viewers, computer aided diagnostics. I. INTRODUCTION There is some innovation in the process to set the fundamentals under which problem-solving via multiagents can benefit from the combination among agents and humans. Indeed, the specification, development and analysis of constructive, multi-agent systems received a push with an human-in-the-loop, a consequence of a more appropriate agent oriented approach to problem solving in areas such as The Medicine, where more healthcare providers invest on computerized medical records, more clinical data is made accessible, and more clinical insights become available. A. Motivation and objectives The evolution of equipments used in the medical imaging practice, from 3-tesla Magnetic Resonance (MR) units and 64-slice Computer Tomography (CT) systems to the latest generation of hybrid Positron Emission Tomography (PET)/CT technologies is fast producing a volume of images that threatens to overload the capacity of the interpreting radiologists. The current workflow reading approaches are becoming inadequate for reviewing the 300 to 500 images of a routine CT of the chest, abdomen, or pelvis, and are less so far the 1500 to 2000 images of a CT angiography or functional MR study [1]. However the image visualization computer programs continue to present the same schema to analyse the images. Basically, imitating the manual process of film visualization as can be found in medical viewers like eFilm Workstation, DicomWorks, Rubo Medical, ImageJ, just to name a few[2,3,4,5]. These observations have given us the motivation to overcome these limitations by increasing the display area to allow a faster navigation and analysis of the medical images, performed by the user (e.g. radiologist, referring physician). To achieve this we created a multidisplay system that allows the visualization of selected medical images across the displays in use. To support this overall multi-display system a multi-agent system was developed that allows scalability and gives us control and interoperability of the system components. Another of our goals that was also achieved was to build an inexpensive system. B. Background The focus of the work carried out in the imagiolagy field has been on image processing rather then image presentation. A fact easily noticed by analysing some medical image viewers available. From the few published work about medical image presentation, we have to point out the work developed by the Simon Fraser University [6,7,8,9]. The main goal of their work is to study the best ways to present MRI images in a simple computer screen where they try to emulate the traditional viewboxes using several techniques to overcome the screen real estate problem [9]. This can be described as the problem of presenting information within the space available on a computer screen. Our approach was to overcome this limitation, through a scalable multi-display system that can grow according to the needs and resources available still maintaining the possibility to control the hanging protocol (i.e. the way images are disposed in the viewing area) 1) Multi-agent Systems Multi-agent Systems (MAS) may de seen as a new methodology in distributed problem-solving, i.e. agentbased computing has been hailed as a significant breakthrough in distributed problem solving and/or a new revolution in software development and analysis [10,11,12]. Indeed, agents are the focus of intense interest on many sub-fields of Computer Science, being used in a wide variety of applications, ranging from small systems to large, open, complex and critical ones [13,14,15,16]. Agents are not only a very promising technology, but are emerging as a new way of thinking, a conceptual paradigm for analyzing problems and for designing systems, for dealing with complexity, distribution and interactivity. It may even be seen as a new form of computing and intelligence. There are many definitions and classifications for agents [17]. Although there is no universally accepted definition of agent, in this work such an entity is to be understood as a computing artefact, being it in hardware or software. In terms of agent interaction we use a shared memory (blackboard) for message passing. The majority of the multi-agent systems found in this field are used normally for computed aided diagnostics, data search filters and for knowledge management. Neuronal networks based agents have been applied with success for computed aided diagnostic [18]. Systems with these features can greatly help physicians, aiding them to make decisions. Agents are also used for data search filters. Together they can search several databases, using a fixed or flexible search criteria based on the knowledge they posses of the user, its preferences and goals. The knowledge agents can predict the user’s intensions or preferences. They can be used to configure an interface according to the user’s profile. This profile based on the preferences and continuous observation of the user’s interaction with the interface. The agents learn the user work pattern and automatically set the interface. 2) Multi-display Systems Multi-display systems have been used in a wide variety of applications, being mainly found within the Virtual Reality field. They can be used to create large display systems, as for example Walls or Caves. Basically there are two ways to build a multi-display system. One (the simplest) makes use of the operating system and the graphics hardware. The actual operating system has the feature to allow multi-display, to do so we can either use a graphic card with multiple outputs or use several graphic cards. This allows the work area (desktop) to grow according to the number of monitors used. The second approach, most common in the Virtual Reality field (VR) is to use PC clusters were each PC is connected to a monitor. In order for the system to work there has to be a communication medium to allow the flow of data through the entire system. At low level in the majority of the cases sockets and the TCP/IP or UDP/IP protocols are used. In the VR field software frameworks handle these communications at a higher level of abstraction. An example is VR Juggler [19] that, besides the communication, can be connected to sceengraphs and tracking systems, allowing this way an easy process for the creation of a complex VR system. C. Structure The remainder of this paper is organised as follows. In the next section we introduce the multi-agent system architecture, presenting the system’s agents and how they cooperate. The factors and choices that had to be considered during the implementation of the multi-agent system are to be found in section III. In Section IV we present an overview of the multi-display system, its basic components and structure. Conclusions can be found in section V. II. MULTI-AGENT SYSTEM ARCHITECTURE The system architecture is depicted in figure 1 where the interactions between agents and the environment can be visualised. These agents, their interactions, goals and tasks will be addressed in the next section. Figure 1 - Multi-agent system architecture A. The system agents We use three distinct agents, Data Prepare Agent dpa, Control Station Agent csa and Visualization Terminal Agent vta. 1) Environment The environment is formed by the new studies in the Radiology Information System (RIS) work list, a list of parsed studies. A file that contains the location of all these studies is maintained in the local hard drive. The environment also manages the Internet Protocol (IP) location of the agents and the blackboard. In the terminal machines a configuration file indicating the positioning (column-row) is used. The blackboard is implemented by a process that runs in the main memory and is responsible for the maintenance of a list of properties of the Active Visualization Terminals (i.e. it maintains and updates there IPs, the terminal position and the screen resolution). This way the Control Station Agent can access this information and communicate directly with the Visualization Terminal Agents. 2) Data Prepare Agent When a new study is available for analyses we make use of this agent to parse the correspondent DICOM (Digital Imaging and Communications in Medicine) file [20], dividing each DICOM file into three files. The first containing the DICOM Tags, the second the image raw data values and the third file a set of attributes of the image series (i.e. number of slices, image dimensions, etc.). When this process is finished, this agent edits a file containing the references of all parsed studies i.e. the systems work list. 3) Control Station Agent The DICOM standard defines a hierarchical structure in tree form, which contemplates several levels (figure 2). As one can observe the lower level is the Image level where we can find the images obtained from the medical equipments (i.e. modalities). The next level is the Series level where the images are grouped. In most modalities the images in a series are related, for example in CT normally they correspond to an acquisition along the patient body. The Study level groups these series. And finally the Patient level contains all the studies of a particular patient. Users can interact with the interface to load in a maximum of two series of studies in the work list. These series can contain a number of images or slices that are displayed in the Control Station Interface and in the Visualization Terminals Interface. Navigation through the series is made with the use of sliders and the layout can be set by the user. All these possible changes are reflected in the Visualisation Terminals Interface. To accomplish this, messages are sent to the environment with image data, image attributes (e.g. window level and window width) the layout and the navigation information. The Control Station Agent continuously collects messages sent by the Visualization Terminal Agents with status information (e.g. IP, monitor position, and screen resolution of the visualisation terminal). With this information the control station can send the right messages to each visualization terminal, but it still has to continually track the positioning index of the monitors. Position indexes are assigned from left to right, top to bottom. Consider the configuration presented in figure 3, were we have tree monitors and there correspondent positioning and position indexes. If new monitors are detected the position indexes have to be recomputed to correct the system status. Figure 3 - Possible monitor configuration and correspondent index positions Figure 2 - DICOM Hierarchical Structure The Control Station Agent is our most complex agent. It is responsible for finding the studies of the work list, send information to the Visualization Terminals Agents and also enable an interface with the user through its Control Station Interface. To know which studies are presented in the work list this agent has to continually sense the environment looking for work list study references. This agent is also responsible for the garbage collection where studies are removed when the radiologist finishes his reading. 4) Visualization Terminal Agent This is the agent used to actually display the images in the monitors. But first it has to continually communicate to the blackboard its status (e.g. IP, address, monitor position and screen dimensions), allowing the Control Station Agent to read these messages enabling it to know the overall system status and send information to all the Visualization Terminal Agents. As already referred the Control Station Agent will send information about the study (e.g. series layout, entire series images data, data properties that are used to process the image pixels colours and navigation positioning of the two series that we allow to handle in the system). But the most important information is the monitor position index. With this variable the Visualization Terminal Agents can compute the correct placement of the images, according to the Control Station Agent. III. IMPLEMENTATION Special care was taken with technological choices to assure the successful implementation of the system’s functionalities. A. Programming Languages The programming languages of our choice were Java and Ansi C/C++. The main reason for this choice is due to the fact that the selected Application Program Interfaces (API) we are using were also developed using these languages. B. DICOM Parsing The ability to interpret the medical image’s meta-data is an essential feature of any medical image viewer. Available APIs that permitted DICOM parsing were tested. The most two outstanding products were the DCMTK – DICOM toolkit [21] and PixelMed Java DICOM Toolkit [22]. Although both APIs were freeware and presented similar functionalities, our choice was PixelMed due to its better support documentation. C. Graphic APIs The low level graphic API designed OpenGL [23] was mandatory since it is considered the standard for graphic visualization. At a higher level we find the Graphic User Interface (GUI) toolkits that consist of a predefined set of components also known has Widgets. Some of these Widgets have objects/components where OpenGL contexts can be integrated. Our quest for toolkits with this feature gave the following selection: - FLTK (Fast Light Toolkit) [24]; - FOX [25]; - Trolltech – Qt [26]; - wxWidgets [27]; - GTK+ [28]. From the selection, FLTK was the first to be excluded since its full screen mode didn’t hide the windows command bar. The following one to be excluded was GTK+ as we found some implementation problems when trying to use it under Windows. FOX was next due to its poor documentation and inferior functionalities. Although both wxWidgets and TrolltechQt have similar functionalities and documentation, we preferred wxWidgets since its freeware under Windows. D. Communication APIs Communications play a fundamental role in our system. Agents communicate with the environment (e.g. medical equipment, Radiological Information System, Hospital Information System) and among each other through the Blackboard. Fortunately wxWidgets has integrated a socket communication API. This was indeed a major benefit, since we didn’t have to handle directly with each operating system low level communication API, wxWidgets did the job. IV. MULTI-DISPLAY SYSTEM OVERVIEW An overview of our multi-display system and its basic components is present in figure 4. The following section contains a summary of the Control Station and Visualization Terminals features. Figure 4- Multi-display system overview A. Control Station Interface The Control Station Interface allows the user to interact with the system. It’s divided in two distinct frames. The work list tree with the studies at the left were the user can select two distinct series to be loaded and the images displayed in the right frame and in the corresponding visual terminals (figure 5). Figure 5 - Control Station Interface The right frame is used to process and analyse selected images and to track the virtual viewing workspace. The information presented in it as thumbnails will also appear in the Visualization Terminals as full images. Sliders are available for easy navigation through out the images in the series. The layout of the virtual viewing workspace can be configured by the radiologist using the distribution tab. In figure 5 we have a configuration of four visualization terminals, three in a top row and one at the bottom. Two series are being displayed horizontally and each series has two images being displayed vertically. A navigation paradigm was introduced to access the data in this virtual viewing workspace. By double clicking a virtual terminal only the correspondent selection will de displayed. Going one level above, double clicking an image, only the selected image will be displayed and the toolbar tools can be used for image manipulation. Currently all basic tools are under assessment (i.e. image rotation, horizontal and vertical flipping, window width/level, zoom, pan) and some extra tools being still under development. To return back to the lower level the radiologist just has to press control and click. In the same figure one of the Visualization Terminals is bigger than the others. This is due to its higher screen resolution. Proportionality and positioning of the Visualization Terminal is maintained, aiding the users in making a clearer identification of the real monitors. Ideally the real monitors are placed according to the virtual ones present in the Control Station Interface. B. Visualization Terminals Interface As already stated, the information contained in the virtual viewing workspace is the same as in the real visualization terminal. In figure 6 we present a screen shot of the first Visualization Terminal Interface when its current status was the one presented in figure 5. Figure 6 - Visualization Terminal Interface The achieved increase of image area was one of our main goals, thus allowing a faster and easier analysis of images by the radiologists. In figure 7 we present a picture of the system with four identical monitors and a notebook running the Data Prepare Agent and the Control Station Agent. V. CONCLUSION We have presented a multi-agent based multi-display visualization system and how we were able to use it to support the medical image visualization process. Due to its scalability we can easily assemble a system that grows according to the users needs. It can be build with conventional hardware (i.e. no special graphics cards or other specific hardware is needed). The visualization system (i.e. viewer) is of the greatest importance for the medical imaging experts. The navigation facilities and wider work area of this system aids them in the image viewing process thus improving the diagnostic process. Currently the whole system is under assessment and we hope in the near future to have trial versions running in imaging facilities enabling valuable feedback from the radiologists. Image processing tools are continually being development to aid the physicians analysing regions of interest. Image navigation and enhancements will continue to be improved, including better support for multimodality fusion such as PET/CT and functional MR. The next major phases of our developments will focus on agents that implement decision support tools, such as computer-assisted diagnosis and intelligent hanging protocols. All being easily integrated in our system due to its multi-agent based development. Although our work aimed the medical field, it can be easily reformulated for other areas e.g. in an advertising context we can imagine a store with a network of computers where we want to set dynamically the advertising images of those monitors using a control station. With a similar system as the one here presented this could easily accomplished. ACKNOWLEDGEMENTS We are indebted to CIT- Centro de Imagiologia da Trindade, and to HGSA – Hospital Geral de Santo António, for their help in terms of experts, technicians and machine time. Figure 7 - Multi-display system REFERENCES [1] Radiological Society of North America http://www.rsna.com [2] MERGE eMed http://www.merge.com [3] DicomWorks http://dicom.online.fr [4] Rubo Medical Imaging http://www.rubomedical.com [5] ImageJ - Image Processing and Analysis in Java http://rsb.info.nih.gov/ij [6] van der Heyden, J. E., “Magnetic resonance image viewing and the Screen real estate problem”, Msc. Thesis, Simon Fraser University, 1998. [7] van der Heyden, J. E., Carpendale, M.S.T., Inkpen, K., Atkins, M.S., “Visual Representation of Magnetic Resonance Images”, Proceedings Vis98, 1998, pp 423-426. [8] van der Heyden, J. E., Atkins, M.S., Inkpen K., Carpendale, M.S.T., “MR image viewing and the screen real estate problem”, Proceedings of the SPIE-Medical Imaging 1999, 3658: 370-381, Feb. 1999. [9] van der Heyden, J. E., Atkins, M.S., Inkpen K., Carpendale, M.S.T., “A User Centered Task Analysis of Interface Requirements for MRI Viewing”, Graphics Interface 1999, pp 18-26. [10]Neves, J., Machado, J., Analide, C., Novais, P., and Abelha, A. “Extended Logic Programming applied to the specification of Multi-agent Systems and their Computing Environment”, in Proceedings of the ICIPS’97 (Special Session on Intelligent Network Agent Systems), Beijing, China, 1997. [11]Faratin, P., Sierra C. and N. Jennings “Negotiation Decision Functions for Autonomous Agents” in Int. Journal of Robotics and Autonomous Systems, 24(34):159-182, 1997. [12]Wooldridge, M., “Introduction to MultiAgent Systems”, 1st edition, John Wiley & Sons, Chichester, [13]Gruber, T.R. “The role of common ontology in achieving sharable, reusable knowledge bases”, in Proceedings of the Second International Conference (KR’91), J. Allen, R. Filkes, and E. Sandewall (eds.), pages 601-602 Cambridge, Massachusetts, USA, 1991 [14]Abelha, A., PhD Thesis, “Multi-agent systems as Working Cooperative Entities in Health Care Units” (In Portuguese), Departamento de Informática, Universidade do Minho, Braga, Portugal, 2004. [15]Alves V., Neves J., Maia M., Nelas L., “A Computational Environment for Medical Diagnosis Support Systems”. ISMDA2001, Madrid, Spain, 2001. [16]Alves V., Neves J., Maia M., Nelas L., Marreiros F., “Web-based Medical Teaching using a Multi-Agent System” in the twenty-fifth SGAI International Conference on Innovative Techniques and Applications of Artificial Intelligence – AI2005 , Cambridge, UK, December, 2005. [17]Franklin, Stan, Graesser, Art, “Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents”, Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996 [18]Alves V., “Resolução de Problemas em Ambientes Distribuídos: Uma Contribuição nas Áreas da Inteligência Artificial e da Saúde” PhD Thesis, Braga, Portugal, 2002. [19]VR Juggler – Open Source Virtual Reality Tools http://www.vrjuggler.org [20]DICOM Standard http://medical.nema.org/dicom/2004.html [21]DCMTK - DICOM Toolkit http://dicom.offis.de/dcmtk.php.en [22]PixelMed Java DICOM Toolkit http://www.pixelmed.com [23]OpenGL http://www.opengl.org [24]FLTK - Fast Light Toolkit http://www.fltk.org [25]FOX Toolkit http://www.fox-toolkit.org [26]TROLLTECH - Qt http://www.trolltech.com/products/qt/index.html [27] wxWidgets http:// www.wxwidgets.org [28] GTK+ http://www.gtk.org