Tuesday, July 13, 2010

Epocrates Mobile Electronic Health Record

Health care delivery is now moving away from a specific location and into a virtual care space, where patient medical records and real-time clinical data will reside.

There has also been a revolution in access to clinical reference material, and physicians and other care providers are moving core scientific knowledge from books to apps. Today’s doctors are no longer what they can memorize.

Throughout this blog, I've been discussing many of the components of Electronic Health Record (EHR) systems that will likely be used in the larger systems installed throughout entire hospitals and regions. However, 50 percent of physicians in the US work in small or solo practices.

The Epocrates EHR is specifically targeting the solo practitioner and the small physician groups, which have different needs from the larger enterprise care facilities that so many EHR providers are pursuing. To that end, Epocrates says that it has "teamed up with a very well known” but still undisclosed practice manager partner, whose software will be integrated into the Epocrates EHR for calendaring, scheduling, appointments, billing and more.

The as-yet-not-released Epocrates EHR app will include the company's drug and safety content and will, they say, meet “meaningful use” and HIPAA compliance requirements.

There are offerings from other vendors such as Microsoft and Symantec too, but I've decided to look at Epocrates Mobile EHR because Epocrates was the first company to introduce a medical app for the iPhone. Furthermore, as seen in the image below, their app is now available for many of the popular hand-held smart devices.











Their fully functioning mobile EHR app will work both when connected and disconnected. It’s not enough to just have a mobile EHR, of course, and it is also a fully featured, web-enabled desktop application, too.

The mobile and desktop versions may have the same functionalities, but the different form factors will likely lead to certain applications being favored on each.

There is a functional parity between their mobile and web interface. The information will be delivered differently and the iPhone version will be used for some use cases more often than the desktop version and vice versa. These two platforms are complementary, so Epocrates is not necessarily "leading" with mobile.

Unlike some mobile “portals” to EHR systems, Epocrates offering is a native app with patient data stored in it.

One differentiator between the Epocrates mobile EHR app and some others is that theirs will be a native app and it will store patient data on the device. Users will interact with the EHR differently from a mobile device vs. a desktop client. The iPhone interface is not ideal for text entry, so they are looking for other ways to get information into the device. The iPhone interface will be used more for things like dictation, while the desktop interface won’t be used for that as much. From a task perspective, though, they are not looking to hobble the handheld interface in any way.

Click here to see new apps from Epocrates

Click here to see the Dragon speech-to-text application on a hand-held device

Epocrates is launching an EHR offering now because of the increase in EHR adoption because of the ARRA deadlines for stimulus fund incentives payments. These external deadlines are encouraging physicians to adopt EHR, making it an ideal time to enter the market.

There are also drivers from the technology perspective as well. It’s a good time to enter the market with a mobile EHR because more clinics have a high penetration of smartphone users. Also, 3G wireless networks now have higher bandwidth – enough to support these kinds of applications. Physicians rarely take note of [mobile] Internet connectivity issues anymore. Note: I've also talked a little about the less-ubiquitous 4G (WiMax) networks in earlier posts.

Epocrates plans to integrate the features of the iPhone, such as the camera, as well as dictation directly into the app, an interesting feature especially in light of the recent announcement by Nuance that they will be shipping a medical transcription application for the iPhone.

Epocrates will also utilize the iPhone’s Push Notification Service to alert doctors of important or timely information (and hopefully not overuse it). Given Epocrates’ depth of knowledge of pharmaceutical formularies, e-prescribing will be built in.

Although the mobile application will synchronize with the web application, it will continue working even when there is no internet connection. Data will be stored on the handheld device in a secure, encrypted manner and synchronize when a connection is available, a real issue for hospitals where there are many “dead” zones. And, there will be condition-based templates for easy entry of clinical information.

There will also be integration with a revenue-cycle platform so physicians can charge and submit codes, through a partnership with a “known” company. Epocrates anticipates they will achieve Certification Commission for Health Information Technology (CCHIT) certification by the time of release. The EHR will be delivered as a software-as-a-service (SAAS) model, meaning the physician will effectively lease, not purchase it.

This could be an attractive low-cost product for solo or small group physicians who do not have complex office staff EHR integration needs. In particular, for the physician who already uses their smart phone for many work activities, the potentially painless transition to using it as the primary interface into their office EHR may be very appealing.

Stay tuned.

Click here to see Epocrates executives at HIMSS 2010

Click here to see Andy Wiesenethal, Kaiser Permanente at HIMSS 2010

As an aside, I'd like to note that when Epocrates Online can be accessed with a browser on which Google's (or other) translation app has been installed, as shown in the image below.

Friday, June 25, 2010

Contemporary Speech Analysis and Systems - A Palimpsest


Computers are making strides in recognizing speech, as reported in earlier posts to this blog. Beyond that, a host of companies — AT&T, Microsoft, Google and startups — are investing in services that hint at the concept of machines that can act on spoken commands. They go well beyond voice-enabled Internet search.

Click here for a comprehensive review article on all this. My links Spoken Language Systems and Audio, Speech, and Language at the top of the right-hand column are very good sources for up-to-date information on these subjects.

Finally, to see a contemporary system at work, click here for Medical Bayesian Kiosk, a voice-based system designed to ask patients about their symptoms and to respond with empathy. (Microsoft Research)

Tuesday, June 22, 2010

The Promise of Information Technology in Electronic Health Records


This blog is written by and largely viewed by IT professionals, 5,217 visits from 106 countries according to Google Analytics at last count. While the [technical] subject matter herein applies to many fields, its application to electronic heath records (EHR) has been a large part of my focus.

So, to add balance to this blog, I've provided below several links to material written by medical professionals within the healthcare industry who are concerned with these same subjects.

The Promise of Information Technology in Electronic Health Records (EHR)

Information Technology Tools to Support Best Practices in Health Care

Microsoft HealthVault Platform

Electronic Medical Records (EMR) and The Prospect of Real-Time Evidence Development


Executive Summary

Evidence-Based Medicine and the Changing Nature of Healthcare


Tuesday, May 25, 2010

HTML5 - its support in Dreamweaver CS5, Internet Explorer 9 and elsewhere

With HTML5, an open Web standard, the browser becomes a first class RIA citizen.

HTML5 is being developed as the next major revision of HTML (HyperText Markup Language), the core markup language of the World Wide Web. HTML5 is the proposed next standard for HTML 4.01, XHTML 1.0 and DOM Level 2 HTML. It aims to reduce the need for proprietary plug-in-based rich internet application (RIA) technologies such as Adobe Flash and Microsoft Silverlight.

The HTML5 video tag is a markup language tag, introduced in the HTML5 draft specification, that adds support for embedding video in an HTML page.

The Adobe Flash Player has been and continues to be widely used to embed video on web sites such as YouTube, since the majority of web browsers have Adobe's Flash Player installed (with controversial exceptions such as the browser on the Apple iPhone and iPad). Now, however, HTML5 video is intended by its creators to become the new standard way to show video online, but has been hampered by lack of agreement as to which video formats should be supported in the video tag.

Rather than relying on the browser plug-in Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices now ship with high performance, low power implementations of these open standards.

Not to be left out, Adobe has recently added HTML5 support to Dreamweaver CS5. This move should not be viewed only in light of the company's war of words with Apple regarding Flash, but in the other reality that HTML5 is reaching critical mass as evidenced by long-time holdout Microsoft adding HTML5 support to Internet Explorer 9 and a slew of HTML5 books being published by leading houses this summer. I've pictured the covers of a few of them at the end of this post.

These developments come despite the fact that HTML5 is still a work in progress. Even so, HTML5 in Dreamweaver CS5 makes for a mighty application development tool, as shown in the video http://www.youtube.com/watch?v=OEXrd8CR5AY

The HTML5 compatibility pack for Dreamweaver CS5 lets you author CSS3 and HTML5 compatible Web pages for modern browsers. And, of course, it supports the audio and video tags.

Note: The HTML5 extension will work only with Dreamweaver CS5 and not with any of the previous versions.

For more on this new Dreamweaver HTML5 support, check out labs.adobe.com and the following videos:

HTML5 Fundamentals with Dreamweaver CS5 - Semantic Structural Tags - Part 1

HTML5 Fundamentals with Dreamweaver CS5 - Semantic Structural Tags - Part 2


Readers of this blog who are interested in the Semantic Web may find the Part 2 video of particular interest.

HTML5 Fundamentals with Dreamweaver CS5 - Using the Video Tag


Finally, Microsoft will support HTML5 and CSS3 in Internet Explorer 9.0. A developer preview of their next browser can be downloaded from

http://ie.microsoft.com/testdrive/

and click here for a discussion of I.E. 9's
support for video content.

Note: There has been a lot of interest and debate about HTML5 and its support for video tags. This release of Internet Explorer provides such support, with tags available for H.264/MPEG4 and MP3/AAC codecs, leaving out support for the open source Ogg Vorbis and Ogg Theora video codecs.




A final note: HTML5 is not likely to displace Adobe Flash videos any time soon. As evidence of this, consider the latest news from Dell: Dell Inc. yesterday unveiled plans for a computer tablet based on Google Inc.’s Android operating system.

Called Streak, the tablet will have a 5-inch screen, Wi-Fi, Bluetooth, and work on a 3G network. Users can download music; interact with social-networking sites; send e-mail, text and instant messages; and make phone calls. It has turn-by-turn navigation with Google Maps, a 5-megapixel camera with flash, and a removable battery.

Streak will have 2 gigabytes of internal storage. Memory can be expanded up to 32 gigabytes allowing it to store as many as 42 movies or 16,000 songs.

Later in the year, the tablet will support Adobe Flash 10.1 — something Apple Inc.’s iPhone, iPad, and iPod Touch devices do not. Flash is widely used for online video.

The Streak is designed to be larger than a smartphone but more portable than a laptop. It is 6 inches wide, nearly 3 inches high, and half an inch thick.

Thursday, May 20, 2010

Tim O'Reilly on State of the Internet Operating System


Click on the image below to watch a talk given by Tim O'Reilly at Web 2.0 Expo San Francisco 2010.



"The fox knows many things, but the hedgehog knows one big thing." -Archilochus

Note: Tim graduated from Harvard College in 1975 with a B.A. in Classics. His honors thesis explored the tension between mysticism and logic in Plato's dialogues.

Saturday, May 15, 2010

Adobe's Extensible Metadata Platform (XMP) as used with DICOM images - Photoshop, MathWorks and Oracle Multimedia

Healthcare-related images (e.g., those that conform to the DICOM standard) can be moved from place-to-place within a local organization over a network and, with help from HL7, moved from place-to-place globally (and interoperably).

DICOM and HL7 are about program to program communication between computers, not a standard file format, and not information retrieval for use by humans.

• The DICOM Upper Layer protocol (DUL) is the language used to make connections, compose, send, receive and decode messages.

• DICOM Services are the operations DICOM programs can do, e.g., send, store, look up information.

• DICOM Objects are the data that programs can send and receive, e.g., patient data, CT, MR and other images, radiation beams, anatomic structure contours.

This post will be concerned with the last of these: i.e., DICOM Objects.

These images can be imported into Adobe Photoshop for a great deal of manipulation and, from there, accessed by Mathlab, which has powerful image analysis capabilities, and finally stored and managed (with search and much else) in Oracle Multimedia. Throughout, Adobe's Extensible Metadata Platform (XMP) - a labeling technology that allows you to embed data about a file, known as metadata, into the file itself - plays an important role.

Click here for more information on XMP.

Click here for an example of medical image processing with Photoshop

Click here for an introduction to medical image processing with MathWorks

Click here for an overview of Oracle Multimedia

and here for the first of several in-depth pages on Mutimedia DICOM

The figure below illustrates the architecture of typical DICOM Web application. Shown only as "Third-Party Media Processors" are Adobe Photoshop and MathLab Medical Imaging.




Click here for an example of a Photoshop and Mathlab collaboration before the advent of XMP

and here for how Mathlab can read XMP metadata today.

Click here for info on work with metadata (Dicom, XMP, etc.) in Photoshop






Finally, click here for another introduction to using Photoshop for processing DICOM files.

Friday, May 7, 2010

Speech transcription with Adobe Soundbooth CS5 and Dragon Naturally Speaking 10


Nuance Communications’ voice recognition software – Dragon Naturally Speaking 10 – is the industry-leading speech recognition software. In the healthcare space, the software eliminates physicians’ need to rely on typing, clicking and scrolling, something that a high percent of doctors surveyed cited as a usability concern. Using Dragon Medical 10 gives physicians more time to allocate toward patient care instead of reporting. And, because most doctors speak three times faster than they type, Dragon Medical speech recognition software can improve productivity by up to 25%. For more on this product, see my May 30, 2009 and May 1, 2009 posts below.


Meanwhile, Adobe Soundbooth CS5 is normally used in entirely different environments. For example, you can jump directly into Soundbooth from within other Adobe Creative Suite components to create, clean up, or enhance your audio. The nondestructive ASND file format shares audio files easily with Flash Professional, Adobe Premiere Pro, or After Effects, and the ability to export cue markers as FLV or XML files makes coordinating sound to your project easier than ever. Click here for more on the Soundbooth CS5 application.

Nonetheless, Naturally Speaking and Soundbooth have this in common: both can perform speech-to-text translation and then synchronize the playing audio file and its transcript during deferred playback, thus enabling a third party to correct errors easily. To demonstrate this, I had them both perform a speech-to-text transformation on a single, randomly-selected mp3 file named Checkers.mp3. This audio file and its transcriptions by Naturally Speaking and Soundbooth are downloadable:

Click here for Checkers.mp3

Click here for CheckersDragon.txt

Click here for CheckersSoundbooth.txt

What follows is not a scientific (i.e., statistically rigorous) analysis. It's simply a quick look at how the two products performed at end-to-end transcription during an elementary test. As a matter of fact, I examined only part of a single sentence. Here are the results:

An excerpt from the actual speech (see Dragon.mp3): "- charges are made against you is to -"

An excerpt from the Dragon Medical 10's transcription (see CheckersDragon.txt): "- charges were made against is to -"

An excerpt from the Soundbooth CS5's transcription (see CheckersSoundbooth.txt): "- charges are made against him is to -"

As you can see, Dragon dropped the word "you" entirely and Soundbooth got the word "you" wrong. But, Soundbooth got the verb "are" correct while Dragon did not.

Keeping score is not the point here. The point is that they both (like all speech-to-text engines) make mistakes that have to be corrected. So, they both provide for error correction. I made no effort to optimize either tool. The results outlined above were produced after doing nothing more than installing the two products side-by-side on the same 32-bit PC and loading the same mp3 source into each product. Note: Both products have 64-bit versions but only Soundbooth runs on a Mac.

The figure below shows Sooundbooth CS5 simultaneously playing the audio and highlighting the text -- word-by-word -- as the speech progresses. The play/stop button allows you to stop the progression at any point and to edit the text before continuing. Dragon has similar functionality.




{click on image above for a larger view}


Again, these are not competing products. They each serve different populations. However, there are organizations in which Soundbooth is available and Dragon is not, where a Mac is available and a PC is not, etc. In these cases, one should consider the sometimes much less expensive Soundbooth for the automatic transcribing of audio into text.

Click here for a video that demonstrates turning spoken dialogue into searchable metadata with Soundbooth CS5.

The searching of metadata for a specific word is also shown in the following figure.




{click on image above for a larger view}

I want to conclude by noting that Dragon Medical 10 is the industry-leading speech recognition software in the healthcare space because, for among other reasons, it includes medical vocabularies covering nearly 80 medical specialties and subspecialties, as well as the tools to further customize vocabularies for a specific medical practice, which Soundbooth does not. But, Soundbooth has unique integration with the Adobe suite of applications, which Dragon Naturally Speaking does not. So, in a way, I've been comparing apples with oranges.

Saturday, May 1, 2010

The Lens Correction Filter in Adobe Photoshop CS5

If you take a photograph with a digital camera and load your picture into Photoshop CS5, its lens correction filter can automatically detect the manufacturer, model and lens settings that you had used, using the image file’s EXIF data.



When it doesn't have the additional information needed to correct any changes your camera and settings might introduce, Photoshop CS5 presents a button that lets you search the Web for this information in a trouble-free way. In either case, it automatically corrects lens distortions and fixes chromatic aberration and vignetting.

However, there are other scenarios: In another blog, The North Country Chronicles, I posted the photograph (jpg file) that is shown in the figure below.



This image was created by scanning a century-old picture that had very obvious distortions. Just take a look at the flagpole and the corners of the main building.

So, I spent about 10 seconds to manually straighten the flag pole and corners of the main building by dragging the Vertical Perspective slider in the Lens Correction Filter of Photoshop CS5 a little to the left as shown in the figure below.



{click on image above for a larger view}

and was immediately presented with the compensated – to a visually acceptable level - image shown in the next figure.



This manual intervention was required because no digital photography was available in 1917, when this particular photograph was taken with the Kodak Junior, Model A camera shown below, nor was digital photography used in any of the steps taken in my correcting of this photograph.




Note: The North Country Chronicles post where the original photograph appears is about the early 20th century. So, I chose to leave the original – that is, uncorrected - scanned image there.

The final figure below presents an overview of the flagpole (and other objects) correction process for the case where a digital camera is involved.



While I’m stopping here, I encourage you to watch the following easy-to-understand videos that demonstrate a good deal of additional functionality provided in this extremely handy Photoshop CS5 tool.

Click here for Video 1
Click here for Video 2
Click here for Video 3

Thursday, April 15, 2010

Apple’s SDK brouhaha explained for non-developers


So what’s up with Apple this week? In short, they are now the dominant platform in a space, and they intend to maintain that dominant position for as long as possible by preventing the ability to write an application once and run it anywhere. Apple’s tactics for maintaining their dominance are: bullying and complexity. They’re the same tactics use by every computer platform dominator (e.g., IBM, AT&T, and Microsoft)
before them. All of this has happened before, and it will happen again. Click here for Brent Noorda's take on Apple’s SDK brouhaha.

An update (5/4/2010):

The Federal Trade Commission and the Department of Justice are exploring whether to open an antitrust inquiry into Apple over its recent actions restricting developers writing apps for its iPhone operating system.

The basis for a potential antitrust probe stems from Apple’s recent changes to its iPhone software developer kit. The changes, which were quietly rolled out during the announcement of the company’s new iPhone 4.0 operating system, made it clear that Apple would no longer allow apps into the iTunes iPhone and iPad store that are built using third-party programs.

The sudden changes to Apple’s rules came just days before Adobe was set to showcase its newest software update to its Flash authoring tools. The feature, called Packager for iPhone, would make it easy for developers to produce iPhone applications using Adobe’s software.

Tuesday, April 13, 2010

Decision Makers Are Not Always "Insiders"


Over the past year or so, this blog has bandied about terms like interoperability, open-source, disambiguation, security and databases. All of this has been from the points of view shared by most "insiders" concerned with the introduction of electronic health records (EHR) systems into their local, regional or even national computer networks. I'm talking about individuals (including me) who typically follow other blogs like http://i2b2-zak.blogspot.com and http://geekdoctor.blogspot.com.


However, there are many more individuals who follow (and whose thinking is influenced by) publications like The Wall Street Journal and The New York Times. What they read is reports like "In a paper published last year, Alessandro Acquisti and Ralph Gross (two researchers from Carnegie Mellon University) reported that they could accurately predict the full, nine-digit Social Security numbers for 8.5 percent of the people born in the United States between 1989 and 2003 — nearly five million individuals." that I believe are sometimes more likely to influence their thinking than are the reports that you and I read in the blogs (and other publications) written by "insiders." So, with this last thought in mind, I place the following links to a few recent articles read by many of the decision makers out there.

http://www.nytimes.com/2009/11/16/business/16records.html?_r=1&scp=4&sq=electronic%20health%20records&st=cse

http://www.nytimes.com/2010/03/17/technology/17privacy.html

http://www.nytimes.com/2010/04/13/opinion/l13privacy.html

http://online.wsj.com/article/SB10001424052748704259304575043572008622004.html

http://online.wsj.com/article/SB10001424052748703625304575116512173339800.html


http://online.wsj.com/article/SB10001424052748703580904575132111888664060.html?KEYWORDS=electronic+health+records


This is not meant to be a representative sample. Just a reminder that you and I may or may not be speaking the same language as the general public, which counts among its numbers many high-ranking decision makers. So, what else is new?

Sunday, April 4, 2010

How Green Is My iPad? & Who Were The Luddites?


How Green Is My iPad?

Click here for a discussion which ends with the assertion "All in all, the most ecologically virtuous way to read a book starts by walking to your local library."

Who Were The Luddites?

Machine smashers of the 19th century or members of a fascinating social movement with visionary insights into the unfolding drama of industrialization?

The impact of today's technologies on social relations and the planet itself is becoming an intriguing field of inquiry. However so far the discussion of nuclear power, biotechnology, deforestation, automobiles or computers is pretty much dominated by industry and government who want us to take all this for granted.

In this context it is inspiring to remember the Luddites who questioned industrial civilization at its very beginning in England during the introduction of mechanized textile mills. They knew that the power-looms that they selectively destroyed were not just a technology but would create a whole new set of relations: Factory work, child labor, and the demise of artisan and skilled labor. They anticipated that the new machines, that they themselves had helped build, were not the promised tool to help them in their work but would eventually become part of a machine culture with power over human life and even human consciousness.

Click on the links below for a two part talk given by Iain Boal, an independent scholar and historian of technology. He taught a course on the Luddites at Stanford University.

Note: During the introduction, you'll hear the term Time of Useful Consciousness. This is an aeronautical term. It's the time between the onset of oxygen deficiency and the loss of consciousness, the brief moments in which a pilot may save the plane.

Part 1: http://WaldenITech.com/Luddites1.mp3

Part 2: http://WaldenITech.com/Luddites2.mp3

Note: The download of these audio files could take several minutes, depending on the speed of your connection and other resources.

Tuesday, March 23, 2010

Does the Semantic Web need Ontologies?

The answer to the question "Does the Semantic Web need Ontologies?" is "yes" according to most but "no" according to some. For a discussion of this question, click here for the view of one individual who is convinced that ontologies are a luxury, not a necessity, plus the comments of others.

Wednesday, February 24, 2010

Business Process Management and Service Oriented Architecture

Business Process Management (BPM) is used to model, simulate, automate, manage, and monitor processes, in order to coordinate operations with dynamic business priorities.

With BPM, workflows (both human and automated) are determined in real-time by events and/or outcomes within the process, and effective knowledge transfer is made possible as processes become well-documented business artifacts on which staff members can be trained.

To enjoy the full benefits of BPM, processes must integrate with existing applications and systems (e.g., hospital EHR and EMR, to name a couple of areas currently being funded by the Obama administration in the U.S.). This is where Service Oriented Architecture (SOA) - the subject of earlier posts - comes in. BPM and SOA are a natural match. There are links to a few of my early articles on SOA, in the bibliography at the bottom of this blog.

In preparation for my next post to this blog, I'd like to cite the following book:



This book shows the reader how to fill the semantic gap between the process model and the applications:

Modeling business processes for SOA and developing end-to-end IT support has become one of the top IT priorities. The SOA approach is based on services and on processes. Processes are focused on composition of services and in that sense services become process activities.

Experience has shown that the implementation and optimization of processes are the most important factors in the success of SOA projects. SOA is so valuable to businesses because it enables process optimization. In order to optimize processes, we need to know which processes are relevant and we have to understand them – something that cannot be done without business process modeling. There is a major problem with this approach – a semantic gap between the process model and the applications.

This book will show you how to fill this gap. It describes a pragmatic approach to business process modeling using the Business Process Modeling Notation (BPMN) and the automatic mapping of BPMN to the Business Process Execution Language (BPEL), which is the de-facto standard for executing business processes in SOA. The book will also cover related technologies like Business Rules Management and Business Activity Monitoring which play a pivotal role in achieving closed loop Business Process Management.

From http://www.packtpub.com/business-process-driven-SOA-using-BPMN-and-BPEL/book

Wednesday, February 10, 2010

Interoperability Between Oracle and Microsoft Technologies, Using RESTful Web Services - BPEL


A guide to developing REST Web services using the Jersey framework and Oracle JDeveloper 11g follows.

RESTful Web services are the latest revolution in the development of Web applications and distributed programming for integrating a great number of enterprise applications running on different platforms. Representational state transfer (REST) is the architectural principle for defining and addressing Web resources without using the heavy SOAP stack of protocols (WS-* stack). From the REST perspective, every Web application is a service; thus it's very easy to develop Web services with basic Web technologies such as HTTP, the URI naming standard, and XML and JSON parsers.

For a detailed account of how to create RESTful Web services by using Oracle technologies such as Oracle JDeveloper 11g, the Jersey framework (the reference implementation of the JAX-RS [JSR 311] specification), and Oracle WebLogic Server as well as how to consume the Web service by using Microsoft technologies such as Visual Studio .NET 2008 and the .NET 3.5 framework, click here.

Building a Web Services Network with BPEL - Caveat Emptor

Buoyed by maturing Web service standards, more and more organizations are using Web services in a collaborative environment. BPEL is fast becoming the platform for orchestrating these Web services for inter-enterprise collaboration. As discussed in earlier posts in this blog, BPEL offers the compelling benefits of a standards-based approach and loosely-coupled process integration to companies building an online marketplace or collaborative network.

Yet the exciting new capabilities offered by Web services carry some risk. In many cases, partner relationships break down or integration costs skyrocket if certain technical and administrative challenges are not addressed at design time:

* Partners must agree well in advance to conduct business according to specific criteria. Transport protocol, purpose of the interaction, message format, and business constraints have to be communicated clearly.

* Joining the network has to be an easy process; collaborative networks become successful mainly through growth.

* Users must easily find business services at runtime, or the promise of services-oriented architecture (SOA) is largely lost. (Service repositories are useful for this purpose.) If developers cannot readily find and reuse services, the services essentially don't exist.

* Partners should have the ability to monitor Web services in real-time. End users should be able to track the progress of a specific order, and trading partners diagnose a specific bottleneck within a business process.

These challenges are exacerbated when a collaborative network operates in a hosted environment. In that model, partners expose the functionality provided by their legacy applications into a Web service. This Web service is published into a centralized repository. The host is responsible for orchestrating the complex business processes, which in turn, leverage partner Web services.

Monday, February 1, 2010

Front-end Web Application for use in the Human Workflow used to Disambiguate IDs in an Electronic Healthcare Record (or other) Automated System


From December 14, 2009 post
:


Disambiguation is a process through which multiple potential identification matches are further parsed until the patient can be matched with his or her data with sufficient certainty to allow for the delivery of a health service with reasonable confidence. The complexity of disambiguation varies according to factors such as the number of potential matches and the type of information available for further analyses. When sufficient digital data are not available to further differentiate potential matches, automated disambiguation may not be possible and may require human involvement.

Disambiguation entails implementing significant new workflows and may require substantial time and resources. When human involvement is required, many of the potential benefits of automation are lost. For example, at the point of care, disambiguation is often done by asking the patient further questions regarding personal characteristics and/or health care history. In some situation, disambiguation may not be possible, as when the patient is not present and information needed to further facilitate matching may not be accessible.

From December 7, 2009 post:

Disambiguation of IDs is the process of resolving multiple potential matches into a match with the correct person. In general, statistical matching algorithms are likely to require substantially more-frequent disambiguation compared to that required by a system that uses theoretically perfect universal IDs; often, disambiguation is done by human intervention. Such disambiguation imposes significant costs and operational inefficiencies, particularly if, for example, a physician must resolve the ambiguities.

Note 1: Many of the efficiency and safety benefits theoretically possible with health information technology (HIT) systems depend on eliminating such human involvement and its concomitant slowness, expense, and propensity for error.

Note 2: What follows applies to IDs in general, even though I’ve chosen the healthcare industry for much of this discussion.

When the business process can’t be completed by automation alone, the business process incorporates human workflow. Manual disambiguation of an uncertain ID is one such human task. The form shown in the figure below illustrates a Web app created with Visual Studio 2010 [Beta 2] that a user employs to carry out part of a human workflow.

Please note: This post is presented in early draft form.




Communication between the client (user interface shown in the figure above) and the application services is performed by using proxy classes that run in the client and that represent the application service. In practice, a Web reference is a generated proxy class that locally represents the exposed functionality of an XML Web service. The proxy class defines methods that represent the actual methods exposed by an XML Web service. When your application creates an instance of the proxy class, your application can call the XML Web service methods as if the XML Web service were a locally available component.

At design time, the proxy class enables you to use statement completion for the XML Web service methods. At run time, a call to a method of the proxy object is processed and encoded as a SOAP request message. If the XML Web service does not support SOAP, the proxy class uses HTTP GET and POST. The message is then sent to the target Web Service for processing. If the service description defines a response message, the proxy object processes this message and returns a response to your application.

Note: To make XML Web services outside a firewall available to the Web browser, when creating the Web reference in Visual Studio, you must explicitly specify the address and port of your network's proxy server.





{ click the figures for a larger view }


Click here for more on Microsoft Visual Studio 2010

Click here for more on Oracle BPEL and Human Workflow

Note: If patients cannot be unambiguously identified via a computer-based process, machine-level interoperability will be hampered significantly.


Saturday, January 16, 2010

Human Workflow -- Business Processes -- Service Component Architecture -- SOA -- EHR


The immediate goal of this blog is to suggest a solution for the building of state-of-the-art electronic healthcare record (EHR) systems suitable for both organizations that have already invested in a computerized infrastructure and those that have not. There are many vendors proving tools for such endeavors. Here, I have chosen one of the market leaders - Oracle - to illustrate a solution. Since the Oracle tools that I show below are standards based, the concepts will carry over to the tools provided by many of the other vendors. I'll discuss the design of a system that automates business processes when that makes sense, hands off tasks to humans where they can do the job better (according to some criterion) and that can interoperate with heterogeneous systems (local and remote) efficiently and securely. While the language that I use will sometimes be that found in the EHR literature, the solutions discussed will be widely applicable.
Please note: This post is still presented in draft form.

Service Component Architecture within SOA Composite Applications

Service Component Architecture (SCA) provides a model for assembling distributed groups of service components into an application, enabling you to describe the details of a service and how services and service components interact. Composite applications are used to group service components and wires are used to connect service components. SCA helps to remove middleware concerns from the programming code by applying infrastructure declaratively to composites, including security and transactions.

An SOA composite is an assembly of services, service components, and references designed and deployed in a single application. Wiring between the services, service components, and references enable message communication. The details for a composite are stored in the composite.xml file.

Services (shown at left in figure below), such as a web services or JCA adapters, providing an entry point to the SOA composite application.

References (shown at right in figure below) send messages to external services in the outside world, such as web services and JCA adapters.




The figure below provides an example of a composite that includes an inbound service binding component, a BPEL process service component, a business rules service component, and two outbound reference binding components.



You can invoke other deployed SOA composite applications from your SOA composite application. The other applications must be deployed.










The component palette shown to the right in figure below provides the various resources that you can use in a SOA composite. It contains the following service components and adapters:

Service components

Displays the BPEL Process, business rule, human task, and mediator service that can be dragged and dropped into the designer.

Service adapters

Displays the JCA adapter (AQ, file, FTP, Database, JMS, MQ, Oracle Applications, Oracle BAM, and EJB Service), B2B binding component, SDO binding component, and web service binding component that can be dragged into the left or right swimlanes.




You add a service binding component to act as the entry point (ep) to the SOA composite application from the outside world.

You can also automatically create a service binding component by selecting "Expose as a SOAP Service" when you create a service component.

However, you cannot invoke a representational state transfer (REST) service from the SOA Composite Editor.




Activities (in the figure below) are the building blocks of a BPEL process service component. Oracle BPEL Designer includes a set of activities that you drag into a BPEL process service component. You then double-click an activity to define its attributes (property values). Activities enable you to perform specific tasks within a BPEL process service component.

A partner link (in the figure below) enables you to define the external services with which the BPEL process service component is to interact. You can define partner links as services or references (for example, through a JCA adapter) in the SOA Composite Editor or within a BPEL process service component in Oracle BPEL Designer.

The method by which you create partner links within the BPEL process in Oracle BPEL Designer impacts how the partner link displays (above) in the SOA Composite Editor. The WSDL file can be on the local operating system or hosted remotely (in which case you need a URL for the WSDL).

Adapters enable you to integrate the BPEL process service component (and, therefore, the SOA composite application as a whole) with access to file systems, FTP servers, database tables, database queues, sockets, Java Message Services (JMS), MQ, and Oracle E-Business Suite.

You can configure BPEL process monitors in Oracle BPEL Designer by selecting Monitor from the dropdown list above the Designer window. BPEL process monitors can send data to Oracle BAM for analysis and graphical display through the Oracle BAM adapter (shown in the Service Adapters section at the right of the figure below).




Oracle User Messaging Service

Oracle User Messaging Service provides a common service responsible for sending out messages from applications to devices. It also routes incoming messages from devices to applications.

You can easily send outgoing notifications from a BPEL process flow or invoke outgoing and incoming messages for tasks assigned to users from a human task.





{ Click on any of these images for a larger view }

Thursday, January 7, 2010

Counter-Intuitive Considerations -- When You're Automating a Business Process That Includes A Human Workflow


This blog is currently addressing business processes, human workflows, etc. However, at the very bottom of this page appears my bibliography [partial] with prior articles on topics like cost benefit analysis, six sigma, service level agreements, etc

To reconcile these two, sometimes opposed approaches to system design, I recommend the following talk (in a one-hour video) by John Seddon, an occupational psychologist. Just click on the image below to watch his January 03, 2010 presentation.




In the course of his talk, Seddon refers to the 2008 Wiley book



Customer service, often a human task, they assert, is only needed when an organization does something wrong -- eliminating the need for service is the best way to satisfy customers. To be successful, organizations need to treat service as a data point of dysfunction and figure what they need to do to eliminate the demand.

You decide!

Wednesday, January 6, 2010

Security Problems on Flash Drives

Kingston, known as one of the giants in portable memory, has recently confirmed a security problem with some of their DataTraveler series. The problem centers on the fact that even if encryption is used, it is possible to gain access to the data on the device.

In a statement, a company spokesperson said that someone with physical access to the flash drive could access the encrypted data, given the will to do so and the skill needed. The spokesperson went on to mention that the encryption used is sound, only that “there is a small loophole regarding the processing of the password.”

While the data on the drive is indeed encrypted using 256-bit AES encryption, there’s a huge failure in the authentication program. When the correct password is supplied by the user, the authentication program always send the same character string to the drive to decrypt the data no matter what the password used. This character string is the same for not only Kingston USB flash drives but those of SanDisk and Verbatim as well.

Cracking the drives is therefore quite an easy process. The folks at the security firm SySS wrote an application that always sent the appropriate string to the drive, irrespective of the password entered, and therefore gained immediate access to all the data on the drive.

These drives are sold as meeting security standards making them suitable for use with sensitive US Government data (unclassified rating) and have a FIPS 140-2 Level 2 certificate issued by the US National Institute of Standards and Technology (NIST) and companies like CapMed (Newtown, Pa.) -- to name one -- are putting personal health records on USB drives.

If you're using one of these USB stick from Kingston, SanDisk or Verbatim, you may want to get in touch with them.

Thursday, December 31, 2009

An Update on the BPEL4People & WS-Human Task Standards


The BPEL specification focuses on business processes, the activities of which are assumed to be interactions with Web services with no additional prerequisite behavior. But the spectrum of activities that make up general purpose business processes is much broader. People often participate in the execution of business processes introducing new aspects, such as human interaction patterns. Workflow tools already cater for the orchestration of user interactions.


User interactions range from simple scenarios, such as manual approval, to complex scenarios where data is entered by the user. Imagine a bank’s personal loan process. This process is made available on the internet site of the bank using a web interface. Customers can use this interface to enter the data for their loan approval request and to start the approval process. The process performs some checks, and eventually informs the customer whether his or her personal loan request has been approved or rejected. Processing is often automatic and does not require any human involvement. However, there are cases that require bank staff to be involved. An example of such a case is if the online check of a customer’s creditworthiness returns an ambiguous result. In this case, instead of declining the request automatically, a bank clerk could check the request and determine whether to approve or decline it. Another example would be if a request exceeds the amount of money that can be approved automatically. In this case, a manual approval step is required, in which a member of the “approvers” group either approves or declines the request.

User interactions in business processes are not limited to approval steps. They also may involve data. An example of a user interaction that involves data is when an e-mail from an employer is manually attached to the process instance, or when the summary of an interview with an applicant is keyed into the process via a simple form or custom-built application.

To support a broad range of scenarios that involve people within business processes, a BPEL extension is required.

BPEL4People is defined in a way that it is layered on top of the BPEL language so that its features can be composed with the BPEL core features whenever needed. We envisage that additional BPEL extensions may be introduced which may use the BPEL4People extension introduced here.

BPEL4People is the WS-BPEL Extension for People as proposed in a joint white paper by IBM and SAP in July 2005.

In June 2007, Active Endpoints, Adobe, BEA, IBM, Oracle and SAP published the BPEL4People and WS-HumanTask specifications as a follow-up to the whitepaper, describing how human interaction in BPEL processes can be performed.

The OASIS WS-BPEL Extension for People (BPEL4People) Tecnical Committee is working on standardizing the BPEL4People and WS-HumanTask specifications.

Click here for a very engaging podcast that describes the inner workings of Technical Committee’s (something you usually don’t hear much about), describes the work the OASIS TC has recently accomplished and articulates the grand vision for business process management (BPM) and workflow that the committee has been working on.

I strongly encourage you to listen to this podcast. You’ll hear how some the of most important thought-leaders in the IT world, including IBM, SAP, Oracle, Microsoft, TIBCO and Active Endpoints are discussing BPEL and BPEL4People.

Wednesday, December 30, 2009

SOA, Web Services, BPEL, Human Workflow, User Interaction and Healthcare Systems


Lack of integration among legacy healthcare systems and applications means a continued reliance on manual processes that can introduce high risk errors into critical medical data. And isolated systems can compromise a provider's ability to follow an individual patient's care seamlessly from intake to treatment to aftercare.

While healthcare providers recognize that integration can help them achieve better service levels, many have been reluctant to proceed because of the critical nature of healthcare systems. But the approach to integration need not be a radical one of system rip and replace, nor does it have to precede through the development of system-by-system integration solutions.

Service Oriented Architecture (SOA) is a standards-based approach to integrating IT resources that can enable you to leverage existing assets, while at the same time building an infrastructure that can rapidly respond to new organizational challenges and deliver new dynamic applications. The SOA approach can help free application functionality from its underlying IT architecture and make existing and new services available for consumption over the network.

To derive a new value from existing services and go beyond simple point-to-point integration, you will need to combine and orchestrate these services in a business process. You will want to connect them in a coordinated manner, for example, have the result(s) from one service be the input to another service and have branching logic based on the outcome. Of course, you can use Java, C#, or another programming environment to call the services and manage the processes and data, but there is an easier, declarative way.

BPEL

An important standard in the SOA world is BPEL, or Business Process Execution Language, which serves as the glue to tie SOA-based services (Web services) together into business processes -- at least the portions that can be automated. The resulting BPEL process can itself be exposed as a Web service, and therefore, be included in other business processes.

The BPEL standard says nothing about how people interact with it, but BPEL in the Oracle Inc. BPEL Process Manager (to be discussed in my next post) includes a Human Workflow component (shown in the figure below) that provides support for human interaction with processes.



BPEL and User Interaction

I began an introduction to BPEL and human workflow towards the bottom of my December 14 post. Click here for a good deal more on this topic.

Humans can be involved in business processes as a special kind of implementation of an activity. To facilitate this, a new BPEL activity type called human task is required. From the point of view of the BPEL business process, a human task is a basic activity, which is not implemented by a piece of software, but realized by an action performed by a human being. In the drag-and-drop design pallet shown in the figure above, the actor of a human activity can be introduced into a BPEL process by using your mouse. A human activity can be associated with different groups of people, one for each generic human role.

People dealing with business processes do so by using a user interface. When human activities are used, the input data and output data must be rendered in a way that the user can interpret. More on this in upcoming posts.