Current state of HL7/CCD

rdejournett wrote on Saturday, January 24, 2015:

There would probably need to be a bit of database work within the open emr, unless there was a field such as last update date/time. I am looking at the patietn_data table and don’t see such a field, but I do see some date fields. Basically we’d need to know what type of message to send and where to send it. For example the typical new patient ADT is an A04, so when a new entry in the patient_data table was created, we need somewhere to say ‘create an Hl7 message for this patient’, such as an HL7 table with the id, date, and message type.

As for the HL7 itself, probably it would be best to do the work in Mirth, that way the core application is insulated from any requirements. For example Epic doesn’t really like A04s without a CSN, they want an A28. Some don’t want version 2.5.1 of HL7, they want version 2.2 or 2.3.

My biggest question - is there a training database somewhere with some (fake) patient data? I’d need that or to figure out the app enough to do registration, scheduling, create vaccination orders, that sort of thing.

mdsupport wrote on Sunday, January 25, 2015:

  1. For training purposes, you can either use demo farm established by Brady which get refreshed on a schedule OR download an VM appliance.
  2. As you get specific questions, several members on this forum will be extremely helpful.
  3. Please consider using outbound interface first. If you use direct database reads, you will bypass the logging mechanism in emr but mirth could probably log that action in its database if needed.
  4. Most tables will have ‘date’ field, it is usually date created. Application also includes a phpmyadmin installation (Admin -> More -> Database).
  5. For testing purposes, use Admin -> Layout -> Demographics to maintain screen layout. You can either use one of the unused ‘custom’ fields for user to mark for HL7 output and change it from ‘unused’ to ‘optional’ OR you can add a new field for this purpose. Try it in any of the public demos.
  6. For production use, we could probably put in little code in the application that will directly call Mirth as a jsonp / web service providing patient id and facility as the keys which can in turn do the HL7 export action in real time. Inbound processing logic will take some thought as no office will want another system creating an entry in the background.

rdejournett wrote on Tuesday, January 27, 2015:

Terry and I are working on outbound ADT as a proof of concept, about half done. I’ll share when we’re more fleshed out.

Regarding 3.x - yes it’s completely different. I haven’t seen any U.S. implementations yet (but the world is big and I am small). Mostly we are going towards CCD generation and exchange. 2.x is mostly for real-time exchange of interfaced systems such as labs, documentation, etc. CCDs are great for patient portals and the like. (probably most of you know this but anyway.).

tmccormi wrote on Wednesday, January 28, 2015:

Excellent Please think about C-CDA as that is the new MU2 direction

Tony McCormick, CTO

Support: 866-735-0897, Direct: 713-574-6709
My Calendar: http://bit.ly/XznvDo
… we have to slow down a bit to be able to speed up a lot… (me)

On Tue, Jan 27, 2015 at 9:52 AM, Rob Dejournett rdejournett@users.sf.net
wrote:

Terry and I are working on outbound ADT as a proof of concept, about half
done. I’ll share when we’re more fleshed out.

Regarding 3.x - yes it’s completely different. I haven’t seen any U.S.
implementations yet (but the world is big and I am small). Mostly we are
going towards CCD generation and exchange. 2.x is mostly for real-time
exchange of interfaced systems such as labs, documentation, etc. CCDs are
great for patient portals and the like. (probably most of you know this but
anyway.).

Current state of HL7/CCD
https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/?limit=25#ad71

Sent from sourceforge.net because you indicated interest in
OpenEMR / Discussion / Developers

To unsubscribe from further messages, please visit
SourceForge.net: Log In to SourceForge.net


Please be aware that e-mail communication can be intercepted in
transmission or misdirected. Please consider communicating any sensitive
information by telephone. The information contained in this message may be
privileged and confidential. If you are NOT the intended recipient, please
notify the sender immediately with a copy to hipaa-security@mrsb-ltd.com and
destroy this message.

rdejournett wrote on Friday, January 30, 2015:

I am done with a proof of concept system which will send person updates or add persons based on a trigger added to the patient_data table. Here are the files needed for it to run. Once the new SQL is added to the database, create c:\mirth, c:\mirth\in and c:\mirth\out, deploy the two channels in mirth, and do a patient update (ie change the name). Or add a new patient. You should get an ADT outbound in the c:\mirth\out directory.

This POC is missing visit level info, dx info, and any insurance beyond primary.

mdsupport wrote on Friday, January 30, 2015:

Awesome turnaround time! We will try it out on our test installation.

Would be extremely helpful for community if you have time to release this as an VM appliance since many enthusiasts in the community could get turned off by Mirth installation steps and unfairly write the PoC off as too complicated. If VM appliance is available, test instructions would be few lines such as :

  1. Download and install OpenEMR VM appliance.
  2. Download and install Mirth VM appliance.
  3. If necessary, log on to Mirth appliance and change %MIRTH_HOME%/conf/mirth.properties as follows …
  4. Congratulations, you are now ready for testing.

Thank you again.

dockery wrote on Sunday, August 16, 2015:

CentOS 6.4
Mirth 3.2.2.7694 with Derby
OpenEMR 4.2.0 patch 3 using MySQL Server version: 5.1.73, PHP 5.3.3
Mirth and OpenEMR both running on the same box

Hi, I am a novice/intermediate user of OpenEMR and Mirth. I am interested in trying out the proof of concept. I already have several entries in my patient_data table that I wanted to preserve, so instead of using openemr_patient_data.sql, I used:
ALTER TABLE patient_data ADD processed_HL7 int(11) DEFAULT ‘0’;
ALTER TABLE patient_data ADD processed_dttm datetime DEFAULT NULL;

I used the openemr_hl7_log.sql script as-is.

I did not change anything in the OpenEMR web files.

I imported the .xml files into Mirth; my newer version offered to update the format automatically to match the version, which I accepted.

Since I am on CentOS, I changed the mirth in location to /home/wdockery/mirthin and the mirth out location to /home/wdockery/mirthout.

Now I’m stuck. I tried changing the spelling of one of the patients in OpenEMR but did not get any Mirth activity. I’m not quite sure what is the expected flow of info between Mirth and OpenEMR; I’m pretty sure I need to change the file reader and file writer locations, but I’m not sure how.

Any pointers appreciated.

Thanks–

teryhill wrote on Sunday, August 16, 2015:

There are triggers that are setup on the files.Look at the openemr_patient_data.sql for them . This sounds like what you need.

Terry

Hi, this is all I am trying to do. I’m wondering if there’s any documentation on how to do this yet? I have been browsing for a while and can’t seem to find any tips on how to get Mirth and OpenEMR to communicate. My end goals are below. I would love to get one working:

  1. to have Mirth send ADT to OpenEMR
  2. to have OpenEMR send ADT to Mirth.
    All of this is being done on my local computer running XAMPP and Mirth Connect.

Hello david,

Could you please share your mail Id to discuss further?

I have 3.5 years experience in mirth interoperability.i thought I can help you once you shred your mail id and we can have intro call

Hello David,
ViSolve has implemented exchanging ADT messages using Mirth with OpenEMR for an educational institution and for a commercial PMS system. We have implemented this by directly inserting HL7 messages into OpenEMR DB after parsing it. As far as we know, there is no change needed in OpenEMR app. Add a channel in Mirth to exchange data using server side Java Scripts. Mirth manual is straight forward.
-ViSolve OpenEMR Support team

1 Like

Hi! I’m not sure what you mean “mail ID”? I’m new to this forum, where could I find this? Thanks for your help. I’m essentially looking for a sample channel that I may be able to import as a reference. Maybe something with a sample as simple as how to insert an A04 message to OpenEMR from Mirth to insert a new patient.

hi @david.tessier, here’s a somewhat related thread on integrating mirth and openemr LIS Integration with Open EMR

@david.tessier,

I have Mirth Channels for ADT - A04, A08 integrated with OpenEMR.
If requried i can give a demo .

Sorry for the inconvenience , (Mail ID ) I just asked your Email Address .

1 Like

Thanks, @jacksparrow25. Would you be willing to summarize what was required, and perhaps provide some code here instead of a demo? There may be others who could benefit from this as well.

Maybe just one message type, like an A04? I’d love to see what needed to be done on the OpenEMR side, and on the Mirth side. For Mirth you could just export and upload your channel and I can open it and see how it’s setup.

@david.tessier,

To import ADT Messages to OpenEMR , we just need to create a channel at Mirth Side .
We will not make any changes in OpenEMR coding. I just attached one simple channel to Import ADT messages to OpenEMR .

Steps to use :

  1. Import this channel in your mirth
  2. This channel is TCP listener and it will listen to port 8444 to receive HL7 messages from any PMS or Other systems.
  3. Make changes on Database credentials in destination connector .

we can also add our own filters and transformations in this channel .
It depends upon the process and i am sure this will help you to understand the basic ADT channel .

Please check and let me know if any clarifications.

ADT-Channel.xml (39.0 KB)

1 Like

This is perfect and a great example of what I was looking for! Thank you very much!

@david.tessier,

If your problem resolved by our answers , Please mark it as solution and it will help others in future.