First a word about POC. The original intent of VistA lab setup was for use in a hospital. Thus, if the lab is going to provide testing services for porcelain levels, it would define the test during setup and then run the test. Thus all sorts of information values are needed for each test: specimen, lab name, workload code, etc, etc. Then, they needed a way for labs to be sent to outside labs, when they are not performed locally. So there is functionality for that. And when the reference lab sends back results via HL7, then the lab result is filed automatically. The POC system, to my understanding, is an extension of the reference lab system. It treats the POC (point of care) lab as an outside lab, and expects results to come back via HL7.
The problem with this system, is that every lab has to be defined before a result can be accepted. I have created 2 lab interfaces for my office, and we get lab results on our patients, even if we did not order the lab (we want it this way, so we can get lab results from ER visits etc.). And as a result we get all sorts of lab tests that I might not have even heard of before. In the traditional VA hospital lab setup, it was not that big a deal to take 20 minutes to get a lab set up when the hospital is considering offering a new test. But it IS a big deal when I am constantly flooded with new labs that I have to quickly get registered in between seeing patients in the office.
Another problem, is that I could not figure out how to manage the errors that the VA lab system generated. There would be some problem with the incoming lab, and I would search and search and search and just could not figure out what the error was trying to tell me, or what I needed to do to fix it. And this raises another issue. Inevitably, the HL7 messages as provided by the outside lab are not going to be in the exact format that the VistA lab system wants. So there will have to be a transformation of the HL7 message. Mirth is one possible transformation engine that is quite powerful. I ended up not using it because Mirth doesn't have access to the VistA database, so it is limited in what it can do.
I spent nearly a year working on this problem, and finally decided that I just couldn't get the POC system to work for me. So I wrote my own import system as follows
--Our outside lab runs client software that delivers text files for each HL7 message to a shared folder
--My mumps software runs a scheduled task that polls for these files
--The HL7 message is run through my custom transformation engine. This engine first parses the HL7 message into a mumps array tree structure for all the parts. It then checks for handlers for each part. If a handler exists, then that handler is called with the relevant data part, and the handler will transform the value. Because the handlers are part of VistA, I can look up workload codes, for example, for the incoming lab descriptors, and get the message into a usable format
--I then call my custom lab filer which stores the data into the VistA database.
--During the above process, if there are problems with the filing process, than an alert is generated. During the user processing the alert, the user is provided with a menu structure for registering the lab right then and there.
It has worked fairly well for me, in a private practice where we also get paper copies of the labs. However, I would want someone more knowledgeable than I to go through the system carefully before I would use it in a hospital system.
Downfalls of the system are as follows:
-- The microbiology system is not used. My system puts urine culture results in as a "chemistry" result.
-- The pathology system is also not used. All results are also put into the chemistry part of lab results.
-- It is also very difficult at times to determine if two labs are the same. For example, the other day I got a result for "Thrombin clotting time." I wasn't sure if this was the exact same thing as "Thrombin time" that was already defined in my system. So I ended up making two different labs. Perhaps this is not the best example, but there are many immunoglobin tests that I am not intimately familiar with, so I just end up making a new lab entry for them. Perhaps some of them should be combined but are not.
Hope this helps.
Kevin