Download Latest Version jLabEquipmentProcesingConsole.rar (4.8 MB)
Email in envelope

Get an email when there's a new version of HL7 Inbox

Home
Name Modified Size InfoDownloads / Week
HL7DataTransformation 2011-03-27
ComPortService 2011-03-25
HL7Inbox 2011-03-25
readme.txt 2011-04-07 3.5 kB
Totals: 4 Items   3.5 kB 0
All this code was written in VB.net in VS Studio 2005.  It is open source under The BSD License.

I want to thank the staff (past and present) at the Institute of Human Virology Nigeria (affilaiated with the University of Maryland) for engaging jProg to write this code and for providing key direction for the overall idea.

The HL7 Inbox and its two companion services are designed to automate the processing of lab equipment results in small labs where lab technicians have to manually record results.  The originating project is running in a number of low resource labs in Nigeria.

There are 3 components:

	COMPORT harvesting -> A windows service that listens for comport events and and writes the raw data to small files named in a way that they can be sequentially read.  Every aspect of the com port can be configured in a settings file.  I wrote it this way so that it could work with multiple lab equipment machines without re-compiling.  If they get a new piece of equipment with Com Port output they can plug it in (don't forget to use a null modem cable), dink with the settings, and send me the output files to look at prior to writing a parser on the other side of the globe.

	HL7 Data Transormation -> A windows service that monitors a directory for new files (usually these comport files) and transforms them to HL7 and and puts them in the HL7 Inbox.  The data transformation scheme I came up with gets a little complicated because of an early design assumption I made that the equipment would send each sample in a separate comport message, but that turned out not to be the case about a 6 months after the first interface was in production (see iLabVendorInterface.vb for more details).  That said the transformation engine has been working very well for its 2 years of life.  I have had discussions with some people behind OpenLIS and they tell me that mirth may be better for managing data transformation and they may be right.  I have not had a chance to look at it.  You can find examples for transforming  Cyflow SL3, Sysmex KX21N, Vitros 250/350 output. 

	Email style HL7 Inbox -> The HL7 Inbox is an email style windows forms user application that displays each HL7 file in an Inbox summery row as they are put in the Inbox folder (usually immediately after transformation). From the lab technician perspective, they do a test or batch of tests and the inbox gets a new row or rows about a second later.  If the lab equipment can't provide demographics there are visual queues they need to add them now.  They can click the row, and quickly add the demographics, print a three part form (Lab, M&E, Patient), and move it to the Outbox where CAREWare (or any HL7 compliant application) can pick it up.

If you are just looking for vb.net code examples you can find examples of:

	* A pretty comprehensive implementation of  the .Net IO.Ports.SerialPort class in ComPortListener.vb
	* An XML event logger that queues input and gently writes to disk in jXML.vb.
	* Examples of creating, editing, reading and writing HL7 files using vb.net, this includes a set of objects capable of working with lab data.
	* Examples of creating and installing a windows service
	* A somewhat sad (that .Net requires this) implementation if the .Net IO.FileWatcher class that takes the seemingly spastic output from the ting and aggregates it into events I could actually use in InboxOutboxDocumentManager.vb
	* A few other goodies you will just have to look for ;) 
Source: readme.txt, updated 2011-04-07