Lotus Sametime and DB2 pureXML supporting healthcare collaboration

This article introduces a healthcare scenario based on an end-to-end XML architecture that allows information encoded in Health Level 7 (HL7) Clinical Document Architecture (CDA) XML documents to be stored in the same format in an IBM® DB2® pureXML® database, exchanged in the same format utilizing Web services, and visualized in the same format using IBM Lotus® Sametime® Connect Client. See how a prototype Sametime plug-in for instant messaging clients can be used to access and display XML patient data stored in a database. Learn, also, how to install and configure the plug-in, and re-configure the plug-in for another scenario.

Susan Malaika, Senior Technical Staff Member, IBM

Susan MalaikaSusan Malaika is a senior technical staff member in the IBM Information Management Group (part of IBM Software Group). Her specialties include XML, the Web, and databases. She has developed standards that support data for grid environments at the Global Grid Forum. In addition to working as an IBM product software developer, she has also worked as an Internet specialist, a data analyst, and an application designer and developer. She has also co-authored a book on the Web and published articles on transaction processing and XML. She is a member of the IBM Academy of Technology.



Christian Pichler, Junior Researcher, Research Studios Austria

Christian PichlerChristian Pichler is a junior researcher at Research Studios Austria where he is working on different projects around eGovernment and eBusiness. He holds a master's degree in Computer Science and is currently also a candidate for a PhD degree in Computer Science at the Technical University of Vienna in Austria focusing on Inter-Organisational Systems.



19 February 2009

Also available in Russian Japanese Vietnamese Portuguese

Introduction

More resources to treat illnesses, increasing costs of medication, and medical specialists spread around the globe are all reasons for demanding fast, reliable, and convenient information exchange to support collaboration in the healthcare environment. Information exchange between institutions, businesses, and even across continents is a problem not only in the healthcare environment, but also in any environment having the need to collaborate.

Building applications that support collaboration requires technologies that enable the exchange of information in common, standardized formats. These agreed formats are often created by governments, industry consortia, and standards-developing organizations, such as Health Level 7 (HL7) in the healthcare area. One specification of HL7 in particular, the Clinical Document Architecture (CDA), is designed for standardized exchange of patient information.

Increasingly, patient information is represented, stored, and exchanged electronically utilizing healthcare formats, such as HL7 CDA, typically implemented using the Extensible Markup Language (XML). Having patient information available electronically allows the use of modern and well-established technologies such as instant messaging. Instant messaging is already present in the healthcare environment, but the prototype described in this article is based on an end-to-end XML architecture. In an end-to-end XML architecture, information encoded in HL7 CDA XML documents is stored in the same format in an IBM DB2 pureXML database, exchanged in the same format utilizing Web services, and visualized in the same format using IBM Lotus Sametime Connect Client.

This article introduces a healthcare scenario and the principles of an end-to-end XML architecture. It explains how a prototype Sametime plug-in for instant messaging clients can be used to access and display XML patient data stored in a database. The access is triggered by the particular text that is typed into an instant messaging exchange between two or more parties. All parties in the instant messaging session can see the displayed patient data, provided they have the plug-in installed. This article explains how to install and configure the plug-in, and how to re-configure the plug-in for another scenario. The plug-in configuration file settings in the article examples are suitable for accessing the pureXML industry formats demonstration but can easily be altered to access other Web services. This article ends with a summary of related areas that can be explored further.

Sametime applications provide real-time interfaces to unified communications and collaboration services. Such interfaces can be part of business process definitions in areas where human communication (or the lack of) may cause the business process to slow down or stop. In other words, the purpose of a Sametime application is to give humans the means to reduce or, if possible, eliminate human latency from a business process. Business processes whose definition includes unified communications and collaboration services are known as Communications-Enabled Business Processes, or CEBPs. Solutions that automate business processes using CEBP definitions are known as CEBP-Based solutions. The scenario described in this article is an example of a CEBP.

A scenario

To demonstrate the ability of instant messaging to support collaboration, the following example, illustrated in Figure 1, is introduced. The patient Sully Van has visited Doctor Durenda Flor at the local hospital due to a painful and ongoing headache. After being released by the hospital, the doctor Durenda Flor adds the new information, gathered by examining Sully Van, to Sully Van's Electronic Health Record. Sully Van was also told to meet again with his local practitioner one week after being released from the hospital for a final check-up. So one week passes by, and Sully Van visits his local practitioner Chuck Smart and tells him about the incident. It would be helpful if the local practitioner Chuck Smart could see the findings his colleague Durenda Flor had recorded a week earlier.

Figure 1. Healthcare collaboration for sharing patient information between medical professionals
Healthcare collaboration for sharing patient information between medical professionals

According to the example situation, there are different options for how Chuck Smart may request information from Durenda Flor. Chuck could simply call Durenda and ask her to describe the results of her examination. Another option could be that Chuck asks Durenda to fax the patient record to Chuck's institution. A third alternative might be to request patient information through instant messaging such as Lotus Sametime Connect. The prototype described in this article illustrates a plug-in for Lotus Sametime Connect, allowing the retrieval of HL7 CDA XML documents stored in a DB2 pureXML database. While Chuck and Durenda are connected through instant messaging using Lotus Sametime Connect, Chuck can send an instant message to Durenda asking about the patient Sully Van. Behind the scenes, the plug-in in Chuck's Lotus Sametime Connect client analyzes the message and accesses the patient's information in Durenda's system, making the data available to Chuck.


End-to-end XML architecture

The initial purpose of HL7 CDA XML documents was to provide a standardized format to exchange patient information. However, HL7 CDA XML documents are also used for storing patient information in this example. The approach described here also uses HL7 CDA XML documents in combination with existing XML processing technology to visualize patient information to users of an application. Using HL7 CDA XML documents for storing, exchanging, and visualizing implements an end-to-end XML architecture, as illustrated in Figure 2:

Figure 2. End-to-end XML architecture for supporting healthcare collaboration
End-to-end XML architecture for supporting healthcare collaboration

The end-to-end XML architecture contains three layers — the data layer, the Universal Services layer, and the user interaction layer:

  • Data: The data layer represents a DB2 pureXML database using the native XML storage capabilities of DB2. Native XML storage means that XML may be stored directly in the database without the need to split information encoded in the elements and attributes of an XML document into relational tables. Therefore, the database serves as a data store for HL7 CDA XML documents. The database was created using so-called industry bundles, which are an easy and convenient approach to create and populate a database. These industry bundles are available for free for a variety of industry formats including the HL7 CDA. For more information on industry bundles, refer to the Resources section of this article.
  • Universal Services: The Universal Services are a simple but fixed set of operations, including insert, update, delete, and query, allowing the exposure of any XML column of a DB2 pureXML database through Web service operations. The latter allows accessing the HL7 CDA XML documents stored in the database through simple Web services requests. The Universal Services, containing all the necessary components to successfully set up and configure the services, are available for free. For more information on the Universal Services, refer to the Resources section of this article.
  • User interaction: The user interaction layer allows a user to interact with an application (for example, visualizing information stored in the database). In this case, the plug-in for the Lotus Sametime Connect Client allows access to the database through the Universal Services to retrieve appropriate patient information and viewing of the information retrieved. More details regarding the plug-in functionality, such as how patient information may be retrieved through the Lotus Sametime Connect Client, are described in the following sections.

Plug-in functionality

Lotus Sametime Connect Client has been extended by implementing a prototype plug-in that allows the retrieval of HL7 CDA XML documents, representing patient information, stored in a DB2 pureXML database. This section describes the implementation of the plug-in, illustrated in Figure 3. The description of the functionality is based on the assumption that a medical practitioner launches Lotus Sametime Connect Client (from now on simply referred to as a client) with the intention of requesting patient information from another practitioner.

Figure 3. Implementation of the plug-in providing the functionality to retrieve and view XML
Implementation of the plug-in providing the functionality to retrieve and view XML

As indicated in Figure 3, the client loads a customizable initialization file while launching (1). The initialization file (see Listing 1 for an example initialization file) contains parameters to configure the client, such as the endpoint of the Universal Services to access HL7 CDA XML documents stored in the database. The endpoint, for example, is used by the client to submit Web service requests to access the HL7 CDA XML documents stored in the database. Note that all parameters in the initialization file are described along with the description of the functionality throughout the following paragraphs. After loading all the configuration parameters and launching, the client is ready to receive and process messages entered by the user.

Listing 1. pureXML plug-in initialization file
<collaboration>
  <regexpr>patient\s([^\s]++)\s([^\s&lt;]++)</regexpr>
  <keysQuery>
    XQUERY declare default element namespace "urn:hl7-org:v3"; 
    for $patient in db2-fn:xmlcolumn('DB2ADMIN.CDA.DOCUMENT')/ClinicalDocument   
    where ($patient/recordTarget/patientRole/patient/name/given/text() = "${1}"  
       and $patient/recordTarget/patientRole/patient/name/family/text() = "${2}") 
    return &lt;entry id="{$patient/id/@root}" label="{$patient/title/text()}"/>
  </keysQuery>
  <documentQuery>
    XQUERY declare default element namespace "urn:hl7-org:v3"; 
    for $doc in db2-fn:xmlcolumn('DB2ADMIN.CDA.DOCUMENT')/ClinicalDocument 
    where ($doc/id[@root = "${key}"]) 
    return $doc
  </documentQuery>
  <serverURL url="http://purexml.dyndns.org:9080/DB2pureXMLDemo/cda/cda.dadx"/>
  <xsl url="file:/C:\st_purexml\ibm-cda.xsl"/>
</collaboration>

Triggering the client to request information from the database (2 in Figure 3) is controlled through particular keywords contained in the text entered by the user into the chat window. The pattern that the text message must correspond to is defined through a regular expression defined through the <regexpr> element in the initialization file. The regular expression in the current example is defined as the word "patient", followed by two additional words, representing the name of a patient. An example for a corresponding text pattern would be "patient Sully Van".

If the practitioner enters a message containing the pattern, the client is triggered to query the database for HL7 CDA XML documents for the particular patient (3 in Figure 3). The XQuery expression to query the database for appropriate HL7 CDA XML document is also defined in the configuration file through the element <keysQuery>. The query is designed to return a set of unique identifiers for each of the records found in the database as well as a description of the XML document itself. The unique identifiers returned by the query are needed by the plug-in itself for processing the different XML documents. The description, also returned by the query expression, is used for providing the practitioner with a list of HL7 CDA XML documents that matched the input parameters (2 and 3 in Figure 3); for example, patient name Sully Van.

After the practitioner chooses one of the HL7 CDA XML documents, the client queries the database for the particular XML document selected (4). To retrieve the particular XML document, the client utilizes the XQuery expression defined through the <documentQuery> element in the initialization file as well as one of the keys returned through the previous XQuery expression. The key used matches the key selected by the user.

Once the XML document is received by the client, it is, before being displayed, transformed using an XML stylesheet (5 in Figure 3). The stylesheet to be used is defined through the <xsl> element in the initialization file. Once the plug-in transforms the HL7 CDA XML document retrieved from the database using the XML stylesheet, it displays the transformation result to the user (6).


Plug-in demonstration

After reading about the goal of an end-to-end XML architecture and the functionality of the plug-in, let's see the plug-in for IBM Lotus Sametime Connect Client in action. Again, the plug-in enables the client to access XML stored in a DB2 pureXML database.

For better understanding, the example situation described in the "Introduction" section of this article is used. To recap, it would be helpful for the practitioner Chuck Smart to view information of a particular patient recorded by his colleague Durenda Flor one week earlier. Therefore, the practitioner Chuck Smart launches the IBM Lotus Sametime Connect Client. Through the client Chuck can see that his colleague Durenda is available, which is indicated by green icon next to Durenda's name, as illustrated in Figure 4:

Figure 4. Contact list in the IBM Lotus Sametime Connect Client
Contact list in the IBM Lotus Sametime Connect Client

Since Durenda is available, Chuck initiates an instant messaging conversation with Durenda. You can achieve the latter, as typical for instant messaging environments, by double-clicking on Durenda's name, opening a chat window The chat window enabling Chuck to communicate with Durenda is illustrated in Figure 5:

Figure 5. Chat window of the IBM Lotus Sametime Connect Client
Chat window of the IBM Lotus Sametime Connect Client

Having the chat window available, Chuck initiates the conversation by entering and submitting the message, "Hello Durenda, can you please provide me with information on our patient Sully Van ?", illustrated in Figure 6:

Figure 6. Entering a message into the chat window of the IBM Lotus Sametime Connect Client
Chat window of the IBM Lotus Sametime Connect Client

Remember that the instant messaging client was extended to analyze and scan the messages for particular key phrases, as specified through a regular expression in the initialization file. Looking at the text message entered in previous step, the keyword used in this scenario, the word "patient", is contained in the message. Therefore, the plug-in uses the two words following the keyword in Chuck's message, which are "Sully" and "Van", representing the patient's name, and queries Durenda's database for corresponding healthcare information.

The chat window is then extended to provide the user, Chuck, with a list of information available regarding his patient Sully Van, as illustrated in Figure 7:

Figure 7. Extended chat window displaying the patient information found in the database
Extended chat window displaying the patient information found in the database

To view the information found for Sully Van, Chuck double-clicks on the entry available in the search results, causing a separate window to open, illustrated in Figure 8:

Figure 8. Patient information displayed as part of the instant messaging chat
Patient information displayed as part of the instant messaging chat

The ability to view details on Sully Van's visit at Durenda's practice allows Chuck to view and discuss the patient's health status with Durenda.


Plug-in installation and configuration

You can install the DB2 pureXML plug-in using the IBM Lotus Sametime Connect Manage Updates User Interface. Before beginning the installation process, you need to download the archive file named sametime_purexml_plugin.zip (see Downloads) and extract the archive file into a local, temporary, working directory. The local, temporary, working directory used throughout the instructions below is C:\temp\sametime_plugin.

To launch the wizard, open the menu item Tools in the main window of the client. From the Tools menu, select Plug-ins > Install Plug-ins.... The wizard then allows you to choose between the option to update the plug-ins currently installed and the option to install new plug-ins. Choose the option Search for new features to install, and click Next, as illustrated in Figure 9:

Figure 9. Choose to install new features
Choose to install new features

The next step is to choose the location where the installation files are located, which is the directory where the archive file has been extracted to. Therefore, click on Add Folder Location... and choose the directory used, as illustrated in Figure 10. (In the current article, the directory chosen is C:\temp\sametime_plugin.)

Figure 10. Specify the local, temporary, working directory
Specify the local, temporary, working directory

The wizard then lists all the plug-ins available for installation at the local directory specified. Since the archive file provided in this article contains one plug-in, there is also only one plug-in listed. Select the plug-in, as illustrated in Figure 11, and click on Finish:

Figure 11. Choose the plug-in to be installed
Choose the plug-in to be installed

Every plug-in consists of a set of features, hence the wizard allows you to choose the features to be installed. Select the pureXML Collaboration Demo 0.0.1, as illustrated in Figure 12, then click on Next to continue:

Figure 12. Choose the feature pureXML Collaboration Demo 0.0.1
Choose the feature pureXML Collaboration Demo 0.0.1

The wizard then requires you to accept the License agreement, as illustrated in Figure 13. Select I accept the terms in the license agreements, and click on Next to continue.

Figure 13. Accept license agreement
Accept license agreement

Before finalizing the installation, the wizard provides an overview of the features to be installed, illustrated in Figure 14. Click on Finish to complete the installation process.

Figure 14. Summary of features to be installed
Summary of features to be installed

To finalize the installation, you need to restart IBM Lotus Sametime Connect Client. The client automatically offers you the option to restart the client, illustrated in Figure 15:

Figure 15. Restart the client to finalize the plug-in installation
Restart the client to finalize the plug-in installation

Furthermore, you need to provide the client with the initialization file to support healthcare collaboration. To do so, copy the folder named st_purexml to the root of your local hard drive (for example,. C:\). The folder to be copied may be found in the directory C:\temp\sametime_plugin\DB2pureXMLDemo\sampleConfig, assuming that the archive file sametime_purexml_plugin.zip has been extracted to C:\temp\sametime_plugin. After the initialization files are copied, you need to restart the client for all settings to load properly.


Using the plug-in in other industries

As described in previous sections, the plug-in loads all artifacts needed during runtime from an initialization file while the client is launching. An example of an initialization file was illustrated in the "Plug-in functionality" section. Enabling the client for another scenario consists of creating another initialization file and the configuration of the client to utilize the initialization file.

This section describes creating an initialization file with the goal of extending the IBM Lotus Sametime Connect Client for use with the US IRS Tax 1120 e-file format. The initialization file is encoded using XML, having a root element named <collaboration>.

Listing 2. Beginning of the initialization file
<collaboration>

Within the root element, all parameters are described for configuring the application. The first parameter is described using a regular expression and represents the keyword triggering the client to retrieve XML documents from the database. The regular expression is described utilizing the <regexpr> element.

Listing 3. Definition of the keyword using a regular expression
<regexpr>taxdocuments</regexpr>

The next step is to define an endpoint of the Web service that is used by the client to access the database. The endpoint is described using the attribute url of the element <serverURL>.

Listing 4. Definition of the Web service endpoint to be used to retrieve XML documents
<serverURL url="http://purexml.dyndns.org:9080/DB2pureXMLDemo/tax1120/tax1120.dadx"/>

The next element is named <keysQuery> and represents an XQuery expression for retrieving a set of XML documents from the database that match particular criteria.

Listing 5. Definition of the XQuery expression to retrieve a set of XML documents
<keysQuery>
  XQUERY declare default element namespace "http://www.irs.gov/efile"; 
  for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT') 
  return &lt;entry id="{$doc/Return/ReturnHeader/ReturnId/text()}" 
                   label="{$doc/Return/ReturnHeader/PreparerFirm
                           /PreparerFirmBusinessName/BusinessNameLine1/text()}"/&gt;
			   </keysQuery>

The XQuery expression to retrieve a set of XML documents is followed by another XQuery expression that is used to retrieve one specific XML document from the database. The second XQuery expression is represented using the element <documentQuery>.

Listing 6. Definition of the XQuery expression to retrieve a specific XML document
<documentQuery>
  XQUERY declare default element namespace "http://www.irs.gov/efile"; 
  for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT') 
  where ($doc/Return/ReturnHeader/ReturnId[text() = "${key}"]) 
  return $doc
</documentQuery>

Once the client has retrieved a particular XML document from the database, an XML stylesheet is needed to transform the raw XML document into a more user-friendly representation of the information. Therefore, the XML stylesheet to be used for the transformation is specified using the attribute url of the element <xsl>.

Listing 7. Definition of an XML stylesheet used to transform XML documents
<xsl url="file:/C:\st_purexml\ibm-tax1120.xsl"/>

Having configured the client parameters for another scenario, it is necessary to add the closing element </collaboration> to ensure the initialization file is well-formed. For purposes of better understanding, the entire initialization file is illustrated in Listing 8:

Listing 8. Entire initialization file for the IRS 1120 e-file format
<collaboration>
<regexpr>taxdocuments</regexpr>
<serverURL
  url="http://purexml.dyndns.org:9080/DB2pureXMLDemo/tax1120/tax1120.dadx"/>
<keysQuery>
  XQUERY declare default element namespace "http://www.irs.gov/efile"; 
  for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT') 
  return &lt;entry id="{$doc/Return/ReturnHeader/ReturnId/text()}" 
                   label="{$doc/Return/ReturnHeader/PreparerFirm
                           /PreparerFirmBusinessName/BusinessNameLine1/text()}"/>
</keysQuery>
<documentQuery>
  XQUERY declare default element namespace "http://www.irs.gov/efile"; 
  for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT') 
  where ($doc/Return/ReturnHeader/ReturnId[text() = "${key}"]) 
  return $doc
</documentQuery>
<xsl 
  url="file:/C:\st_purexml\ibm-tax1120.xsl"/>
</collaboration>

After creating the initialization file, it is also necessary to configure the client to utilize the file. To do so, open the menu item named File in the main window of the client and select Preferences, which opens an additional window. In that window, choose the entry DB2 pureXML Demo, as illustrated in Figure 16:

Figure 16. Initialization files to be used
Initialization files to be used

The preferences for the DB2 pureXML Demo can be used to specify references to additional initialization files or to remove references to existing initialization files.


Summary and outlook

This article illustrated the ease and simplicity of extending the IBM Lotus Sametime Connect Client to support collaboration while utilizing an end-to-end XML architecture. The benefits of storing, exchanging, and visualizing information while utilizing the same format of information include simpler design and speedier development, resulting in a powerful prototype that can be improved as feedback is received.

In healthcare systems, sensitive information must not be accessible without the consent of the patient, the treating practitioner, or both. Security is definitely a topic for further work to improve the idea of supporting collaboration through instant messaging. Placing the plug-in configuration files on server systems is another area for further development. Integration of forms-based displays, enabling the modification of data, in addition to data display are other areas of great interest. Using an instant messaging client as a friendlier interface into database systems, where one of the parties in the exchange is a database agent rather than a human, is yet another possibility.

This article has shown the advantages of enabling the IBM Lotus Sametime Connect Client to fully utilize an end-to-end XML architecture. The included plug-in may help kick-start further prototypes and solutions.


Acknowledgement

Thank you very much to Carlos Caballero Grolimund and to Jessica Ramirez, who implemented the plug-in, illustrating the role of an end-to-end XML architecture in instant messaging. Thanks also to Craig Reichenbach for his support.


Downloads

DescriptionNameSize
Sametime pureXML plug-insametime_purexml_plugin.zip1.7MB
Demo of Sametime plug-in scenariorecording_sametime_plugin.wmv8.5MB
Transcript of demosametimetranscriptFeb2009.pdf63KB

Resources

Learn

  • Industry Formats and Services with pureXML: Download a variety of examples, such as ones for the Health Level 7 (HL7) Clinical Document Architecture (CDA), for free! Each example illustrates how to work with XML-based Industry Formats and pureXML. The examples show how to register an XML schema, how to perform validation of XML instance documents, how to query XML data using XQuery or SQL/XML and much more.
  • "Universal Services for pureXML using Data Web Services" (developerWorks, August 2008): Get started with configuring, testing, and modifying the Universal Services, a simple but fixed set of database operations that allow the querying and modification of XML data.
  • "Build a DB2 pureXML application in a day" (developerWorks, December 2008): Build a complete DB2application in a day using an end-to-end XML architecture through the Universal Services.
  • DB2 skill kit: Increase your knowledge and skills whether you are a database administrator or an application developer. Learn how to install, configure, and administer IBM DB2 Universal Database. Topics covered include: Overview, installation, configuration, database creation, and administration.
  • IBM Information Management and XML technology area on developerWorks: Get the resources you need to advance your skills on using XML technology with DB2 and other IBM products.
  • developerWorks Information Management zone: Learn more about Information Management. Find technical documentation, how-to articles, education, downloads, product information, and more.
  • Stay current with developerWorks technical events and webcasts.
  • Technology bookstore: Browse for books on these and other technical topics.

Get products and technologies

  • DB2 Express-C: Now you can use DB2 for free. Download DB2 Express-C, a free version of DB2 Express Edition for the community that offers the same core data features as DB2 Express Edition, and provides a solid base to build and deploy applications.
  • Build your next development project with IBM trial software, available for download directly from developerWorks.

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Information management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Information Management, XML, Lotus
ArticleID=370784
ArticleTitle=Lotus Sametime and DB2 pureXML supporting healthcare collaboration
publish-date=02192009