· Mar 9, 2017

Options for moving documents between systems?


We have a mixture of legacy and new systems, and are grappling with the issue of moving documents between systems.

At the moment we are mostly using file drops and encoding metadata in filenames, but a new supplier (letter transcription) is going to provide a Hl7v2 feed sending MDM^T02 messages with PDF's of letters base64 encoded in the message itself.

We are thinking of asking all our suppliers to go with MDM (or ORU) for sending documents. 

I'm interested in the pros and cons of the options; and if there are options I haven't thought of. 

This is the options I have so far;

  1. file drops - which are fragile and hard to monitor when you do them with service accounts, scripts and 'Scheduled Tasks'
  2. file drops managed by HealthShare - more reliable, but no 'ACK' to the sending system
  3. MDM^T02 - better - multiple documents more metadata than I can squeeze in a filename  (ORU^R02 for results)
  4. HL7v3 ITK non-coded CDA - essentially the same as MDM but in XML
  5. FHIR - same as 3 & 4 but in JSON 

Please let me know if

a) you know of any other options

b) you can elaborate on the advantages and disadvantages of the each of the option



Discussion (2)0
Log in or sign up to continue

We don't get a lot of choice/option in how we move documents and always seem to be dictated to by the source and receiving systems. We use Ensemble to pick up/receive documents and then manipulate them into whatever method the receiving system can receive them in. Some examples of what we do; * We pick up documents as streams from within an application database (using SQL Adapter), and querying other application database tables for metadata. * We then transform this into an MDM^T02 message and send out (with PDF stream or HTML inside). * We may also use Ensemble to send an email with the document attached (from and to secure email addresses). * One system we have to interact with using their API which means creating an XML request (again with the document stream contained within the XML payload). * Mostly an application will drop the document along with an accompanying xml metadata file into a folder which Ensemble will then need to process. Up until this point we have never been able to specify to any system suppliers how we want them to send/receive documents, however now as we are doing more and more document sending then we will try to specify 'document moving preferences' during the tendering stage with suppliers.


We have an Ensemble Service class that extends " EnsLib.SOAP.Service" and provides a web method with a parameter that is a class that includes a property of " %Stream.FileBinary", plus all the meta data in other properties. This allows the source application, written in .net, to send us documents fairly easily, as all the translation back and forth into xml, etc. is done for you (I assume it is also easy to do at the .net end). There is not a lot of code needed to define the class and web service, then it just needs to build a message object with that same input class as a property, and send that onwards as usual.

(Unfortunately, we then have to convert the file into base 64 encoded chunks and insert into segments in one of those MDM^T02 messages like you do. But that's another story.)