The doctor will see you now

December 19, 1998

Lisa Rein and Tim Bray

When a doctor is ready to view the consult, he visits the specified URL. The ASP gets the consult (MIME/XML) from the database and formats it on the fly into HTML. This separation of content from presentation offers flexibility, Borden says. "Different specialists may wish to have the same consult displayed differently. Each can have their own style sheet."

The doctors never need to know that they are using XML any more than they know they are using ASP or HTML. They are paged when a consult has been made available on the web site, and then they can respond using e-mail. This is all very natural for doctors that are used to being paged with questions and consults.

The patient information is entered into the system using either an HTML-based form or a simple text-based e-mail message. Once the message is received by the server, JavaScript components are used to transform the contents into an XMTP document and store them in the Consult98 repository. Currently, any ordinary relational database is used as a backing store for the indexed XML tags, but the next version of the system will be able to store the patient records in their native, Grove-based format. Under this architecture, the XML DOM will become the native API for accessing information from the Consult99 repository."

A "Grove" format is just the same thing as DOM format. When the data is stored in native DOM or Grove format, the data is accessed via the DOM or Grove API (these are essentially the same). Normal databases have their own access mechanisms. For relational data (i.e. in tables) the ODBC API provides access to the tabular data. In Consult98 the ODBC API conformant database is used as a "backing store".

This means that the XML and objects are converted into relational table format and stored in the database and then retrieved and reconstructed.

A big advantage of relational databases is that you can do complex searches across the indexed data. Now imagine another type of database, a GroveBase: in a GroveBase, objects are stored in native DOM format and are accessed through the DOM or Grove interfaces.

This looks like a massive in-memory DOM representation of the patient record as a richly linked document.

XTRIME is the eXtensible Transacted Internet Messaging Engine; the "brains" behind the operation. XTRIME works with either Mail Server Pages or Active Server Pages.

Although standards-based, Borden's ASP-like scripting components are COM components nonetheless (Jade is another example of a standards-based COM component.) The builtin Ctx variable is the script context. This is a transaction controller as well as object factory:

The call

var SMTP = Ctx.CreateObject("XTRIME.SMTPMessage");

creates a SMTP object or component which can be scripted. The interface by which an object is scripted is essentially the " DOM" for that object. The name XTRIME.SMTPMessage is directly analogous to the SMTPMessage class in the XTRIME package (for Java) except that this uses a arbitrary language.


JABR Technologies' Consult98 telemedicine system provides yet another example of how XML can be utilized now, using today's existing formats and protocols.

"Individual consults are about communication, and the Internet is the perfect communications medium. Improving the quality of medical care is about information, and XML is the best means of transmitting medical information. It is open for inspection and examination and there are lots of outstanding free parsers and tools. XML solves the problem of proprietary information," explains Borden. "As a patient, you want the doctor of your choice to be able to access your records. Every doctor can read, and any computer can read XML so its a perfect fit."