Archive for the ‘Microsoft’ Category

Google Health Launches: More PHR for the masses.

Monday, May 19th, 2008

It's finally here: Drumroll, Please: Google Health Launches!

If you use any of the Google applications (like Gmail), it's just as easy as all the others:

Google Health

It will be interesting to see if this and HealthVault have an impact on how patients interact with their medical service providers. The privacy and security issues are certain to remain a significant barrier to adoption. Only time will tell.

UPDATE (5/23/08): See Delving Into Google Health's Privacy Concerns

UPDATE (5/24/08): Apparently this Slashdot reference is "uninformed": Why Google Health and HealthVault are not covered by HIPAA.

UPDATE (7/6/08): I ran across this post that talks about Microsoft HealthVault security: You Will Never Get It Microsoft. Here's a quote from it:

Microsoft obviously think that I don't know how HealthVault works. I don't have to know how it works, I only know that it will and can be abused one day.

Microsoft Health Common User Interface (CUI) v1.3

Tuesday, May 13th, 2008

Last year I looked at the MSCUI. Along with the v1.3 release is a glimpse into the future. The user experience is greatly enhanced with the use of Silverlight 2.0. Check out the Patient Journey Demonstrator (you'll need to install Silverlight first):

Patient Chart

Bill Crounse has a good overview and links here.

The UI busy and complex, but there seems to be an intuitive consistency to the madness. Besides the slick look, one of the great things about Silverlight (and WPF) are the transition animations that makes using the controls a feel-good experience.

Most of the Silverlight/WPF demos I've seen are photo/video mashup types of applications. The MSCUI clinical workflow and patient record demos give you a much better appreciation for how this UI technology can be put to effective use.

I still think the MSCUI Design Guidance documents are the key to success. Everybody goes gaga over the cool graphics and animations, but these requirements need to drive the use of the technology.

UPDATE (9/11/08): MSCUI R1.5 is now live.

ALT.NET for the Rest of Us

Sunday, May 4th, 2008

If you follow Microsoft comings and goings, one of the more interesting developments (at least to me) over the last 8 months has been the formation of a community that calls themselves ALT.NET.

As explained in What is ALT .NET?, the term was coined by David Laribee last year and describes a group of

like-minded individuals within the larger world of the Microsoft® .NET Framework who felt a growing frustration that Microsoft tooling, guidance, and .NET culture at large did not reflect or support an important set of core values.

The name is misleading because even though most members are from the .NET community, the group's purpose is to promote a set of core values that are platform/language independent. To summarize from Jeremy's article:

  1. Keeping an eye out for a better way.
  2. Adopt the best of any community.
  3. Not content with the status quo -- experimenting with techniques.
  4. It's the principles and knowledge that really matter.

The members of the ALT.NET group are distinguished technologist and many are productive bloggers, e.g. codebetter.com and Ayende@Rahien. Also, the discussion group altdotnet is very active (over 6200 posts since the beginning of the year) and lively. There are also periodic group meetings (see the ALT.NET site for links) that use Open Space Technology (OST) to organize conference agendas. Check out the interesting videos (by David Laribee) from the recent conference in Seattle.

So why are ALT.NETters not like the rest of us? We're experienced developers that use modern tools and techniques, but we:

  • Have never used enterprise-class frameworks and tools (e.g. Biztalk, P&P Application Blocks, ESB, TFS, etc.).
  • Have never worked with a "Software Architect". We have always had to design and develop our own systems.
  • Have experimented with Agile development methodologies but have never been part of a "real" Agile team.
  • Think Pair programming is an April Fool's joke.
  • As with Agile, we know about all the different "driven" software development approaches, but have never had the opportunity to fully embrace any of them.
  • Have heard about Boo, Spec#, and F#, but have never used them.

This list could go on and on. Many have never used an ORM or the MVC design pattern either. The point isn't what we know versus what they know. I've talked about Stereotyping Programmers before and how it's just plain bad. I think the ALT.NET community has made a conscious effort to improve their inclusiveness.

The ALT.NET group is certainly on the cutting edge of useful and innovative software technologies and techniques. We may not understand everything they're talking about, but the conversation is well worth listening to. Someday you may be faced with a challenge that will need just the type of solutions they've been discussing.

The PHR Battle: Microsoft vs. Google (redux, again)

Tuesday, February 26th, 2008

Here in Orlando at HIMSS'08 Google is barely noticeable and Microsoft is making a huge splash. Even so, Scott Shreeve unabashedly declares Google the PHR winner in his Getting Giga Over Google (Again) post:

My prediction: Google by a long shot. A really long, interconnected, collaborative, collective intelligence, networked kind of aggregated intelligence kind of a shot.

Whether you a agree with Scott or not, it's a good read.

My only caution: It's never a good idea to underestimate Microsoft. They may come to the game late, but when they put their minds (and resources) to it, they often win.

Microsoft Interoperability Principles

Saturday, February 23rd, 2008

As with many Microsoft press offerings, Microsoft Makes Strategic Changes in Technology and Business Practices to Expand Interoperability has created quite a stir. When you think about interoperability, Microsoft isn't the first thing that pops into your head.

The talk in the open source community regarding this announcement is understandably negative (read through the Slashdot commentary). According to the Interoperability Principles, Microsoft is opening up their protocols and APIs and embracing industry standards. That's good. But look at the Open Source Compatibility (I.5, my highlight):

Microsoft will covenant not to sue open source developers for development and non-commercial distribution of implementations of these Open Protocols.

This plus the licensing of patented software "at low royalty rates" have made the Microsoft naysayers say "nay" (yet again) and that this is all just another marketing ploy.

Maybe so. This philosophical change is not meant to make Microsoft a FOSS (free open source software) company. Their goal is still to make money, which is exactly what their shareholders demand.

I think providing an improved forum for open source interoperability, and presumably better support moving forward, is a good thing. As long as Microsoft continues to own the desktop, the easier it is to inter-operate with their “high-volume products”, the better. This will certainly be true for the healthcare industries, which like most others, depend on Microsoft products.

UPDATE (3/4/08):

Check out Microsoft's Interoperability Principles and IE8 (and here). This is good news for the Web development community. Doing the right thing must be good for business.

Software and Services: A stress reliever?

Sunday, January 13th, 2008

Here's a quote from the post: Is this the future of Software and Services?:

...in healthcare these same types of solutions will save lives...as well as reduce stress levels...don't fear the technology that could some day save your life or the lives of others...

Yes, Software as a Service (SaaS) is a real technology that has a number of pros and cons. All major EMR/EHR software vendors effectively use server-based systems in order to protect data and provide disaster recovery.

The referenced video is essentially a Microsoft advertisement for their Windows Mobile and Surface technologies. This is cool stuff, but I don't see how it's going save lives. I also doubt it will reduce the stress levels of clinicians.

If you're interested in SaaS topics, here are some good resources:

Bill Gates CES2008 Keynote

Monday, January 7th, 2008

Bill is leaving his full time position at Microsoft this coming July. Even though it's vainglorious, the video clip from the presentation is pretty funny -- the cameo appearances show what money can buy (actually, it makes you wonder...): Bill Gates Last Day CES Clip

The entire keynote is here. The audio is out of sync and intermittent, which seems odd for what's supposed to be a show-case for next generation consumer products. CES should have consulted YouTube on how to put video on-line.

Stereotyping Programmers

Saturday, December 1st, 2007

Let's start with a definition of Stereotype:

Stereotypes are generalizations about groups and their individual members, based primarily on membership in that group. They may be positive or negative, they may be accurate or inaccurate regarding average characteristics of a group, and may be used to justify certain discriminatory behaviors. Some people consider all stereotypes to be negative because they are unjust to individuals who vary from group characteristics.

Over the last week Jeff Atwood had a couple of posts on this subject: The Two Types of Programmers and Mort, Elvis, Einstein, and You.

If you dig into some of the links from these posts you'll find that the Microsoft persona classifications have been the source of heated debate for a long time. There is no fine line here, in this context personas and stereotyping are the same thing.

The first time I heard the terms 'Mort' and 'Elvis' was when I read ALT.NET Recap: Front and center, let's talk constructively about Mort. As you can tell from my comment to that post, I was greatly offended. I probably over-reacted. I just reread the post though, and I still feel the same way. Here's an example of why:

Back to the question about whether or not Mort can get the stuff we're talking about like separation of concerns and TDD. The typical Mort has managed to acquire a working knowledge of...

And the "Mort related quotes" didn't help either.

Even though Jeremy's intent was to explore how to improve the ALT.NET community, the use of stereotypes in this manner seriously distracts from that purpose. As I commented, if I came away feeling that way, I'm sure that others will too.

I don't mean to single out Jeremy in this regard (even though I did) -- his blog is consistently high quality, and inoffensive. The use of Mort-Elvis-Einstein is ubiquitous in the Microsoft blogosphere.

On the other hand, when I read the posts by Jeff and others that debate this issue I take no offense at all. I can even thoughtfully try to place myself into the different personas like many of the commenter's did. This just shows how important context and intent are. As Jeff found out, this is a touchy issue -- nobody likes to be pigeonholed.

Grouping based on stereotypes is inherently non-inclusive (there's always someone not in a group, or in the wrong group). Even after you've figured out how to reach the unreachable, make sure that your message is made in an inclusive way.

UPDATE: (5-Dec-07)

This is sort of related: Call to Action : People Are Not Resources (via D'Arcy). Related in that calling people resources is also stereotyping, at least by the strictest definition. The more common form of stereotyping in exclusive, whereas being a pork-belly is all-inclusive. For some reason, I'm not as offended by being considered a resource as I am being called a Mort. But that's just me.

What I don't get is that if calling individual humans "resources" is bad, how come "Human Resources", as a department name, is fine? If you want to get rid of labels, you really need to start at the top. How about "Human Assets" or the "Recruitment, Retainment, and Severance" department?

UPDATE: (12-Dec-07)

Jay Kimble has another take on this issue in his Is it 80% and 20% or is 20% too high... post.

...it seems to me that there are 2 kinds of people.

Those that think hard on an issue and those that don't.

I would further generalize and say that laziness is one of the root causes of stereotyping. Stereotyping is the easy way out ("buzz words") and is done by people that don't want to take the time to understand another persons point-of-view or the complexity of an issue.

Healthcare IT Interoperability Defined

Tuesday, November 20th, 2007

I guess I've been obsessed with interoperability (or lack thereof) lately.

Definitions:

interoperability

Dictionary interoperability 1,0,0,0;interoperability=555039

Main Entry: in·ter·op·er·a·bil·i·ty Listen to the pronunciation of interoperability
Pronunciation: \ˌin-tər-ˌä-p(ə-)rə-ˈbi-lə-tē\
Function: noun
Date: 1977
: ability of a system (as a weapons system) to work with or use the parts or equipment of another system

Interoperability:

The ability of two or more systems or components to exchange information and to use the information that has been exchanged.

From the National Alliance for Health Information Technology (NAHIT) definition:

In healthcare, interoperability is the ability of different information technology systems and software applications to communicate, to exchange data accurately, effectively, and consistently, and to use the information that has been exchanged.

The four NAHIT levels are:

  1. Non-electronic data. Examples include paper, mail, and phone call.
  2. Machine transportable data. Examples include fax, email, and un-indexed documents.
  3. Machine organizable data (structured messages, unstructured content). Examples include HL7 messages and indexed (labeled) documents, images, and objects.
  4. Machine interpretable data (structured messages, standardized content). Examples include the automated transfer from an external lab of coded results into a provider’s EHR. Data can be transmitted (or accessed without transmission) by HIT systems without need for further semantic interpretation or translation.

From IEEE 1073 (Point of Care Medical Device Communications) and IEEE-USA Interoperability for the National Health Information Network (NHIN) -- original definitions are from IEEE Standard Computer Dictionary: Compilation of IEEE Standard Computer Glossaries, IEEE, 1990:

Functional: The capability to reliably exchange information without error.

  • Shared architectures (conceptual design)
  • Shared methods (processes and procedures)
  • Shared frameworks (goals and strategies)

An architecture is the conceptual design of the system. Systems inter-operate if their architectures are similar enough that functions that execute on one system execute identically (or nearly identically) on another system.

Shared methods refer to the processes and procedures that a system performs. To ensure interoperability, these operations must be capable of being performed identically at any point in the network, regardless of implementation.

A shared framework is a shared set of goals and strategies. Stakeholders must agree on a shared set of goals and approaches to implementation.

Semantic: The ability to interpret, and, therefore, to make effective use of the information so exchanged.

  • Shared data types (types of data exchanged)
  • Shared terminologies (common vocabulary)
  • Shared codings (standard encodings)

Shared data types refer to the types of data exchanged by systems. Interoperability requires that systems share data types on many different levels, including messaging formats (e.g. XML, ASCII), and programming languages (e.g. integer, string).

Shared terminologies refer to establishing a common vocabulary for the interchange of information. Standardized terminology is a critical requirement for healthcare applications to ensure accurate diagnosis and treatment, and has led to developing standards such as SNOMED-CT.

Shared codings refer to establishing standard encodings to be shared among systems. Codings refer not only to encoding software functions, but also to encoding medical diagnoses and procedures for claims processing purposes, research, and statistics gathering (e.g. ICD9/10, CPT).

At Healthcare Informatics Technology Standards Panel (HITSP) I came across a maturity model of interoperability types from the Mayo Clinic. Even though this table is taken out of context, the Technical-Semantic-Process model shows yet another view of interoperability.

Mayo Clinic Interop Types

There are also a number of Models of Interoperability that describe abstract interoperability. For example, a finer grained layered model is called Conceptual Interoperability. This model encompasses the previous healthcare IT definitions:

Levels of Conceptual Interoperability Model (LCIM)

Besides these definitions there are many articles (and books), especially as it relates to healthcare and EMR/EHR, that espouse the benefits of interoperability.

From a broader software industry point of view you can imagine the number and variety of issues that a company like Microsoft has to deal with. They claim Interoperability by Design. Of course Microsoft has gotten a lot of attention about their push to get Open Office XML (OOXML) approved as a standard by EMCA -- some quite negative:

NoOOXML

Even though I don't believe the healthcare industry has the equivalent of 'Da Bill' (or maybe it does?), this points out one of the necessary components for the implementation of interoperability: standards.

I was on an ASTM standards committee a number of years ago (E1467-94, now superseded) , so I have some understanding of how difficult it is to get consensus on these types of issues. The process is long (years) and can sometimes be contentious. Even after a standard has been balloted and approved, there's no guarantee that it will be widely adopted.

Summary:

In my previous post on this subject I pointed out the plethora of healthcare IT standards and their confusing inter-relationships. The definitions of interoperability can be just as confusing. Each of the different models has a slightly different way of looking at the same thing. This is certainly one reason why there are so many overlapping standards.

Conculsion:

Interoperability in healthcare IT is multi-faceted and complex. This makes it difficult to agree upon exactly what it is (the definition) and even harder to develop the standards on which to base implementations.

Healthcare Un-Interoperability

Wednesday, November 7th, 2007

Or maybe that should be "non-interoperability"? Anyway, I have ranted in the past about the state of the EMR industry. I thought I'd add a little meat to the bone so you could better appreciate the hurdles facing device interoperability in healthcare today.

Here's a list of the standards and organizations that make up the many components of health information systems. I'm sure that I've missed a few, but these are the major ones:

Medical Coding

  • SNOMED (Standardized Nomenclature for Medicine)
  • LOINC (Logical Observation Identifiers Names and Codes)
  • ICD9/10 (The International Classification of Diseases)
  • CPT (Current Procedural Terminology)

Organizations

  • FDA CDRH (Food and Drug Administration Center for Devices and Radiological Health)
  • NHIH (National Health Information Network)
  • HIMSS (Healthcare Information and Management Systems Society)
  • CCHIT (Certification Commission for Healthcare Information Technology)
  • PHIN (Public Health Information Network)
  • VISTA (Veterans Health Information Systems and Technology Architecture)

Standards

  • HL7 (Health Level Seven: v2 and v3)
  • HIPAA (The Health Insurance Portability and Accountability Act of 1996)
  • 21 CFR Part 11 (FDA/HHS Electronic Records and Signatures)
  • IEEE-1073 (Point of Care Medical Device Communications)
  • IHE (Integrating the Healthcare Enterprise)
  • DICOM (Digital Imaging and Communications in Medicine)
  • HITSP (Healthcare Information Technology Standards Panel)
  • EHRVA (HIMSS Electronic Health Record Vendors' Association)
  • NCPDP (National Council for Prescription Drug Programs)
  • openEHR (International Foundation that promotes Electronic Health Records)
  • CEN (European Committee for Standardization)
  • CCR (Continuity of Care Record)
  • ANSI X12 (Electronic Data Interchange)
  • MLLP (Minimal Lower Layer Protocol)
  • ebXML (Electronic Business using eXtensible Markup Language)

This list does not include any of the underlying transport or security protocols. They are either data formatting (many based on XML) or specialized messaging systems.

The diagram below gives an overview of how many of these standards are related (from an IEEE-USA purchased e-book -- copying granted for non-commercial purposes):

Taxonomy of Core Standards for the NHIN

I don't know about you, but trying to make sense of all these standards and protocols is not an easy task. A discussion of next generation PHRs summarizes the situation well:

... not only is information scattered, but standards for defining and sharing the data are still evolving; where standards exist, many of them predate the Internet. Standards about how to define consistently the information (clinical standards) and to transmit and exchange the information (technical standards) are not yet formalized and agreed upon.

The point about predating the Internet is an important one. This particularly pertains to HL7 v2.x which still uses ASCII delimited messages for transmission over serial lines. For all you 21st century programmers that may have never seen one before, here's what an HL7 v2.x message looks like:

MSH|^~\&|AcmeHIS|StJohn|ADT|StJohn|20060307110111||ADT^A04
|MSGID20060307110111|P|2.4EVN|A04PID|||12001||Jones^John|
|19670824|M|||123 West St.^^Denver^CO^80020^USAPV1||O
|OP^PAREG^||||2342^Jones^Bob|||OP|||||||||2|||||||||||||||
||||||||||20060307110111|AL1|1||3123^Penicillin
||Produces hives~Rash~Loss of appetite

HL7 v3 uses XML for it's message format but it has not been widely adopted yet. A good history of HL7 v2 and v3, and an explanation of their differences, can be found here (pdf).

HL7 v2 is commonly used in hospitals to communicate between medical devices and EMR/HIS systems. Even though the communications framework is provided by HL7, new interfaces must still be negotiated, developed, and tested on a case-by-case basis.

Most of the large EMR companies provide HL7 interfaces, but many of the smaller ones do not. This is because hospitals are not their primary market so they don't generally need device interfaces. These EMRs are essentially clinical document management, patient workflow, and billing systems. The only external data they may deal with are scanned paper documents that can be attached to a patients record. The likelihood that they would conform to any of the standards listed above is low.

I'm not sure things will improve much with the recent PHR offerings from Microsoft (HealthVault) and Google (Google Health -- not yet launched) . Microsoft appears to be embracing some of these standards as discussed in Designing HealthVault’s Data Model, but there are a couple of telling comments:

Some of the data types we needed in order to support our partners’ applications where not readily available in the standards community.

Our types also allow each vendor to add “extensions” of their own making to item data – so to the extent that we are missing certain fields, they can be added – and the industry can rally around those extensions if it makes sense.

Microsoft says they are not the "domain experts", so they're leaving it to the industry to sort it all out. Great! This is probably the same attitude that got us to where we are today.

Hopefully you can now see why I've used the words "mess" and "chaos" to describe the current situation. The challenges facing interoperability in healthcare are immense.