Languages and Tools for Medical Computing

Introduction

It is important to distinguish between three types of research problems in the intersection of health care and high performance computing:
  1. Pure medical research problems that make use of computation in their solution;
  2. Computer science problems that need to be solved regardless;
  3. Problems that involve both novel computational systems and medical advances, and for which computational problems are either introduced or increased by its use in the medical domain.
Problem in the last category are of particular importance, since they are unlikely to be solved without interdisciplinary teams of researchers and funding structures that support such teams, and they are the type of problems focused on in this working group report.

Health Care Applications

Customized Care
Customization of health care products and diagnoses to individual patients can improve the quality of care. For example, computer design and manufacturing can be used to create prostheses that are tailored to an individual, rather than designed to meet a specific of an average individual within a class. Advances in computation, including speech recognition, vision, and robotics, can lead to new types of prostheses that help a wider range of disabilities. In addition to improving the lives of people with severe handicaps, this could enable more home care for others and lead to potential savings in the cost of care.

We have started to see some impact of improved genetic understanding early diagnosis and treatment. As data from the Human Genome project becomes more widely available, it introduces new opportunities for customization based on genetic factors.

Customization need not be based on a set of well-understood behavior if real-time simulation is included in a diagnostic setting. For example, using a kind of closed-loop simulation, with the data from a current patient providing the input, viability of certain drugs or other treatment could be tested through simulation before being administered to the patient.

Chronic Care
Home health care of the chronically ill naturally defines a distributed system. Information between health care providers and chronically ill patients may include text, audio, images, and other data. As noted below in the discussion of distributed systems, high bandwidth may be need out of the patient's home and between small offices and labs, in addition to large hospitals. From home health care and computing, the next step is mobile computing, which gives patients added flexibility. In this area, improved remote care means lower costs, if a large number of patients can be treated as out-patients.

Personal medical data is extremely sensitive, so a distributed system of this kind would need strong guarantees of privacy, protection, and authentication. The current health care system, which is still largely based on paper and disconnected computer systems, has a kind of de facto protection, which comes from the difficulty of finding information in the system. If the goals of improved organization and high availability are met, consumers will demand better protection of their medical data. New models of privacy and protection may be needed to capture the emergency "need-to-know" scenarios while providing reasonable levels of privacy.

Education
The use of computing technology in medical education includes education of the public about health issues, education of medical students, and continuing education of health care professionals. Many of the issues here are user-interface problems, and are similar or identical to those found in other attempts to use interactive computing in education. The user-interfaces should be friendly, context-driven, and adaptable to the users. Since existing databases contain some of the educational information, albeit at different levels of expertise, the systems should be linked together to provide a uniform framework for accessing medical information.

One problem in medical education is the training of highly skilled professionals who perform life-threatening procedures. While not unique to medicine, this component is missing from most traditional educational settings. The use of simulation combined with novel user interfaces may eventually provide a solution to this problem. Rather than practicing delicate brain surgery or anesthesiology on patients, the health care professionals could gain experience on a simulated environment. This leads to the last medical applications we discussed, which is simulation and modeling.

Simulation and Modeling
High performance computing platforms are currently being used for simulation of individual organs and physiological systems. Interoperability is the critical next step to modeling interactions between the physical systems. For simulations to be useful in clinical settings and medical education, real-time or near real-time performance is needed. For diagnosis and treatment, closed-loop simulations should use measured patient data for initializing and controlling the simulation, and compute outcome predictions based on a simulated model. As with most of the other applications discussed here, the hardware and software need to be reliable as well as fast.

Enabling HPCC Technologies

The following computer science research areas were viewed as important to medicine. All of these have important applications outside of medicine, but in some cases there are special problems posed by the medical domain.

Communication and Distributed Systems
Distributed systems should be used to propagate information from doctors to patients, from specialists to other health care professionals at other sites, and between patients for a kind of distributed support group. Because of the importance of images in medical diagnosis and the critical nature of medical information, the medical domain will stress the technologies for encoding (including priority encoding), compression (including lossless and smart compression). Current plans for "fiber to the curb" will help provide the necessary bandwidth for these applications. However, additional bandwidth may be needed for high-demand services, perhaps by mirroring some of these sites automatically and reliably. One difference between medical applications and other applications, in particular those in the entertainment industry, is the need for symmetric bandwidth. Whereas entertainment tends to have high bandwidth into the home, medical applications may require sending images out of as well as into a home, small office, or laboratory.
Mobile computing
Chronic care, remote patient monitoring, and telemetry are all examples of health care applications of mobile computing. Hospitals, which already contain a large quantities and variety of computing equipment, are obvious sites for wireless and ubiquitous computing.
User interfaces
The users of medical information systems will cover a wide spectrum of educational backgrounds. Health care providers, medical researchers, policy makers, and patients, may all need access to the same system with different kinds of interfaces. Interfaces that adapt to the level of user expertise and assist the user would be valuable. Languages and tools for building and composing such systems are also needed. Specific interfaces include high performance interfaces for surgery, patient entry and initial contact; automated patient interviews, intelligent coaching for medical education, and context-dependent searching. Security, authentication, and privacy are all critical both at the screen and remotely, probably requiring the use of digital signatures.
Micro Electromechanical Systems (MEMS)
The MEMS technology has been used to make very small motors, sensors, springs, membranes, which can be used for patient monitors, isolated drug release, and prostheses.
Knowledge-based systems
Medical information systems need high level semantic information and inference about the concrete domain, along with decision support and tutoring for education. The National Library of Medicine, for example, has a project to build a database with higher level semantic information.
Languages
The spectrum of programming languages for medical applications ranges from general-purpose languages for building large software systems to domain-specific languages that are closer to the end user. The general purpose languages should support reliable, maintainable systems and have mechanisms for distributed and parallel computation. Medical applications are, as discussed above, much more diverse than the array and grid-based simulations that are often associated with parallel computing. In addition, reliability concerns are much higher here than in scientific computations. Domain-specific languages may provide high level semantics, that is designed for performance and ease of use in a sub-field. A few of the areas that require domain-specific languages are: information retrieval, image manipulation, structure matching, and process description.