Mapping Data in HIPAA HELL
The following is not meant to be a review of any real depth but as the blogs title suggests, its more of a summation of my findings on a recent problem...
Its been a while now since I have relied on tools to help with something as simple in concept as taking a file and reading its contents into some form of database. I used to always take the approach that tools were for wusses for these kinds of things. Boy was I WRONG! There I said it, I was wrong, wasn't the first time, and won’t be the last either. My particular leverage point on this tipping was reading some HIPAA AnsiX12 834 eligibility files. Now HIPAA is a wonderful standard. (You know what they say about standards). Add to this mess the fact that implementation of this 'standard' often leads to the decidedly non-standard. In this case we were tasked with reading in some membership files cranked out of a state system for public sector healthcare.
I looked into a number of tools; each had to address the following needs.
Be able to produce code that would perform the function without any need to pay royalties to anybody. (Most of our code is actually in the ownership of the client thus the tools needed to create code that could also be in the client’s ownership)
Be able properly read the odd and downright nasty formatting quirks of a typical HIPAA ANSI X12 file.
Not cost an upper and lower appendage (something under 5 grand would be nice)
What I found, was a product called MAPFORCE from a company called ALTOVA. Mapforce is a powerful mapping and conversion tool designed to provide a nice GUI onto the mapping process. Using it is basically as simple as selecting some form of input and some form of output and at its simplest level connecting elements of the input to elements of the output.
Part of the tools power lies in its almost complete collection of EDI and X12 standards awareness. Other sources of power come from its ability to connect to just about any Database available via OLEDB/ODBC. Mapforce also handles traditional Flat ASCII text files with ease, and the last great thing in the software tool are the built-in functional blocks that the user can employ to translate/transform/conditionally act on the data as its passing from input to output.
The software allows you to take these bits of functional blocks and collapse them into user defined functional blocks that perform the task of many hidden behind a single function. Initially these user defined functions only allowed a single output, but during my testing and learning Altova released a new version (SP3) that allowed user defined functions to be multi output as well as multi input, a very welcome addition to the tools arsenal of weapons that can be brought to a problem.
Along the way, I encountered some problems. Most notable was the fact that transitioning from SP2 to SP3 broke the software in regards to reading one of my files. This is where I exercised the companies support option which is solely through the email. Now this has not ever been one of my favorite ways to get support on something, but I can say that its execution with the company ALTOVA was about as good as it gets, and I did get my problem resolved. Most of the real issues I encountered with support stemmed from their need for data, and not being able to freely share the problem files because of the personal health care information contained within the offending data. This would have been a problem with anyone using any form of support. In the end the company was able to help me resolve the issue and along the way fixed some things that were also not a critical problem but minor annoyances. Overall excellent and I can say the best email support I have ever experienced.
In the end, Mapforce proved to be more than I had expected. They have a complete working version available online that times out in 30 days otherwise no strings attached. The code generation can handle XSLT, XQuery, C#, Java or C++. The templates handle every kind of nutty file you might be able to throw at it. The programmability is very powerful. The support is more than adequate, and it does not cost an arm and a leg. Just what the doctor ordered. Now does this mean I will abandon my desire to write everything myself?