The software and human-computer interface system design consists of the following steps:
Design an appropriate transactional workflow model for telemedical applications.
Support database access in a mobile environment for medical images and related video signal images.
Provide a cooperative environment for communication among participants audiovisually through telepointers to visualize movements remotely.
Adapt currently available tools to design the required software for the cooperative multimedia mobile environment.
Two key issues involved in the above steps are:
Choice of an appropriate software tool to implement mobile workflow.
Choice of suitable hardware for mobile access and cooperation.
We will now provide some practical aspects on the aforesaid design steps.
Presently, Java (Flanaghan, 1996; Hamilton, 1996; Yourdon, 1996) seems to be the best choice due to the following important features:
Portability: Java is platform independent.
Efficiency, power, simplicity: Java retains the efficiency, power, and simplicity of C++ but is less complex. There is no pointer arithmetic and no memory management. Memory management occurs automatically. Strict rules are enforced regarding variables ; this permits detection of mistakes when the program is compiled.
Safety: Java is safer than other low-level languages such as C++ since Java is free from pointer errors and has uniform reference semantics and automatic storage management. Also it provides security.
Openness: It is a de facto standard for platform-independent computing and can run at any level: client, application, or database.
Transmission on network: Java has been developed with the aspect of transmission across the network in mind; Java includes very developed network functionality in its core so that the application developer can concentrate more on users' needs rather than on details of network code.
J/SQL and Java Data Base Connectivity (JDBC): JDBC is a simple calllevel library interface. J/SQL provides a seamless integration of Java and SQL. JDBC provides for simultaneous connection to several databases, transaction management, simple queries, manipulation of precompiled statements with bind variables, calls to stored procedures, streaming access to long column data, access to the database dictionary, and description of cursors .
J/SQL is an integration of SQL statements in Java programs. It is more concise than JDBC and more amenable to static analysis and type checking. Use of J/SQL has several benefits:
Provides for compile-time type checking.
Extends server: The Oracle database server will store a user 's J/SQL program and execute it in its server.
Bridges languages: The J/SQL preprocessor draws a clear distinction between the standard Java language and the supplementary J/SQL clauses, which add functionality to that language by exposing database objects (e.g., tables, cursors) and services (SQL, Persistence) as standard Java objects.
JDBC provides for both automatic commit as well as specific commits from the application before a transaction is committed to the database. JDBC does not support two-phase commit protocol. External support is needed to allow the Java application to have two-phase commits.
Persistent Java (PJava) allows for online transactions. Also the programmer can create new transactional styles. Such styles, as already mentioned, are very important for mobile applications. Transactions in PJava can be launched either synchronously (in the same thread) or asynchronously (in different threads) by invoking the Start () method of the transaction object.
Multithreaded processes are useful for clinical decision support in complicated medical diagnosis involving temporal reasoning for real-time medical data.
Nested transaction enables one to perform updates in a child transaction without affecting the parent transaction. A child transaction that completes successfully passes all its updates (the modified objects) to its parent transaction. If the child transaction aborts, none of its updates are ever reflected in the parent transaction. Also we can spawn parallel independent nested transactions. In this case each of the sibling transactions are isolated from all others and can commit or abort independently.
JetConnect allows real-world applications to be developed using Java by providing data access to any ODBC or JDBC-enabled database, including DB2 and Oracle. JetConnect augments the Java programming language with easy-to use, vendor-independent database connectivity that enables transaction-oriented access to corporate data stores from Internet/intranet applications. JetAssist is a GUI-based tool for rapid development of database applets that take advantage of JetConnect's rich set of features. JetAssist employs a wizard-style approach that steps the user through applet creation. Armed with only a casual acquaintance with database principles and a Java-enabled Web browser, an end user can construct and maintain a custom applet using an interface that requires absolutely no programming.
JetExpress provides high-speed connectivity between Java applets and applications and the corporate information resource. JetExpress provides transaction acceleration functionality when accessing DB2 databases, with specific optimization for other DBMSs scheduled in the near future.
To use JetConnect, the system must have these operating systems and software packages installed: either Windows 95/Windows NT or a supported version of UNIX; Java Developer's Kit (JDK); the 32-bit ODBC drivers for the database we want to access. Our experience reveals that Java, the design by contract tool in Java iContract (Kramer, 1998), Java Database Connectivity, JetConnect tools, UML (Gogalla & Kobryn, 2001), and OCL (Warmer & Kleppe, 1999) are eminently suited for our purpose. The type of relaxed transactions we need (subjunctive, or "what-if", programming) requires that we execute hypothetical or pseudo-transactions to test the intention of actions for trial-error design. Such a model uses "virtual copy" and arises in real-time transactions in patient-health monitoring, flight plan, and cooperating information systems.
Lee (2001) describes a Java-applet-based image-guided telemedicine system via the Internet for visual diagnosis of breast cancer. This system automatically indexes objects based on shape and groups them into a set of clusters. Any doctor with Internet access can use this system to analyse an image, query about its features, and obtain a satisfactory performance (http://dollar.biz.uiowa.edu/~ kelly /telemedicine.html).
Software agents, which are personalized, continuously running, and semiautonomous objects, can play an important role in cooperative telemedicine. Such agents can be programmed for supporting medical diagnostic intelligence and keep a watchful eye to discover patterns and react to pattern changes that usually occur in epidemics and biological and chemical terrorism. Also agents can help in the appropriate choice of doctors and allocation of hospitals and beds for patients . Since different modalities used for inputting the patient diagnostic data require a heterogeneous computing environment, software interoperability is a major issue. Software agent technology helps to solve this issue; Ganguly and Ray (2000) describe a methodology for the development of a software-agent-based interoperable telemedicine system. This system has been illustrated using a tele-electrocardiography application. Unified Modelling Language, or UML (Gogolla & Kobryn, 2001; Warmer & Kleppe, 1999), has been used for this purpose. O' Hare and O'Grady (2002) describe the use of agents deployed from PDAs and mobile devices. This approach will be useful for online access of a large repository of medical information that is customised and personalised to match the interest profile of an individual. For medical education this will be a very useful tool.
FIPA (the Foundation for Intelligent Physical Agents; http://www.fipa.org) aims to improve agent interoperability by providing standards for protocols and languages. Also the Java 2 Micro Edition (J2ME) is targeted at PDAs. These developments will provide an agent execution environment in PDAs.
Presently, portable and mobile devices, such as laptops and personal digital assistants, are not very well suited to remotely access resources in an efficient and reliable manner for reliable telediagnosis (Roth, 2001). For instance, information sharing among doctors through handheld appliances is of limited applicability, except for transmitting small amounts of data, such as heart rate, blood pressure, and other simple monitoring devices. Typical data types for current handheld appliances are: text, data entries, numbers , and tables. None of the applications above can deal with multimedia data such as audio video, which requires considerable bandwidth, sufficient output devices, and a very powerful battery. Also, currently multimedia data are not yet suitable for handheld appliances. Very few applications support graphical data (Roth, 2001).
To provide robustness in the mobile environment, we must overcome different kinds of failures (e.g., radio link failures, mobile host and fixed host failures). Suitable protocols to recover under faults using the recovery mechanisms or rescue clauses are to be developed. WaveLAN radio cards (WaveLAN/ AT cards for PCs and WaveLAN/PCMCIA cards for laptops or notebooks ) are available (Fogle, 1995; Wong, 1995). WaveLAN is an indoor wireless LAN based on a cellular structure. A cell is the wireless coverage area in which WaveLAN stations can communicate with each other. Also, infrared-based wireless technology is available commercially. Using these devices, PCs are linked.
This is an interaction style for presentation systems, interactive TV, and other systems where the user is positioned at a remote site from the display. Pointing is the act of moving an on-screen tracking symbol, such as a cursor, by manipulating the input device from a remote site. Presently, two devices are commercially available: these are GyroPoint (a product of Gyration Inc., Saratoga, California) and RemotePoint (a product of Interlink Electronics, Camarillo, California).
GyroPoint works in two distinctly different modes of operation: as mouse or as a tracking pointer based on gyroscope principles so that spatial motion can be generated across a screen.
RemotePoint uses infrared for transmission and joystick for motion control. Also telepointers for remote pointing of images and conferencing are not fully developed yet. Currently available tools, such as GyroPoint and RemotePoint(MacKenzie & Jusoh, 2001), lack accuracy and speed. The telepointer technology has yet to mature to provide reliable service for e-medicine and e-surgery. Along with the use of virtual reality, the pointer technology can be useful in teaching surgery and for trial-error planning of operations.