# Current state of HL7/CCD

**URL:** <https://community.open-emr.org/t/current-state-of-hl7-ccd/6550>\
**Category:** OpenEMR Development\
**Created:** [January 22, 2015, 4:17pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550 "2015-01-22T16:17:32Z")\
**Posts on this page:** 18\
**Page:** 2

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [January 24, 2015, 7:29pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/21 "2015-01-24T19:29:33Z")

</div>

**[rdejournett](https://sourceforge.net/u/rdejournett/)** wrote on [Saturday, January 24, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#d55a/561a):

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.

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [January 25, 2015, 3:31am UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/22 "2015-01-25T03:31:19Z")

</div>

**[mdsupport](https://sourceforge.net/u/mdsupport/)** wrote on [Sunday, January 25, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#c74f):

1. For training purposes, you can either use [demo farm](http://www.open-emr.org/wiki/index.php/OpenEMR_Wiki_Home_Page#Demos) established by Brady which get refreshed on a schedule OR download an [VM appliance](http://www.open-emr.org/wiki/index.php/OpenEMR_Downloads).
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.

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [January 27, 2015, 5:52pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/23 "2015-01-27T17:52:11Z")

</div>

**[rdejournett](https://sourceforge.net/u/rdejournett/)** wrote on [Tuesday, January 27, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#ad71):

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.).

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [January 28, 2015, 6:00am UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/24 "2015-01-28T06:00:01Z")

</div>

**[tmccormi](https://sourceforge.net/u/tmccormi/)** wrote on [Wednesday, January 28, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#ad71/a5c6):

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

Tony McCormick, CTO

> **[MI-Squared - Medical Information Integration - mi-squared](https://mi-squared.com/)**
>
> \[vc\_row padding\_top\_multiplier=”custom” padding\_bottom\_multiplier=”2x” rc\_heading\_color=”light” rc\_bg\_type=”image” rc\_bg\_image=”6313″ rc\_bg\_image\_type=”parallax” rc\_bg\_color\_overlay=”dark” rc\_bg\_opacity\_overlay=”60″ rc\_add\_shadow=”large-shadow”...

Support: 866-735-0897, Direct: 713-574-6709  
My Calendar: [http://bit.ly/XznvDo](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](mailto: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](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/?limit=25#ad71)
> 
> Sent from [sourceforge.net](http://sourceforge.net) because you indicated interest in  
> [OpenEMR / Discussion / Developers](https://sourceforge.net/p/openemr/discussion/202506/)
> 
> To unsubscribe from further messages, please visit  
> [SourceForge.net: Log In to SourceForge.net](https://sourceforge.net/auth/subscriptions/)

–  
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](mailto:hipaa-security@mrsb-ltd.com) and  
destroy this message.

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [January 30, 2015, 2:31pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/25 "2015-01-30T14:31:09Z")

</div>

**[rdejournett](https://sourceforge.net/u/rdejournett/)** wrote on [Friday, January 30, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#462b):

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.

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [January 30, 2015, 5:16pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/26 "2015-01-30T17:16:23Z")

</div>

**[mdsupport](https://sourceforge.net/u/mdsupport/)** wrote on [Friday, January 30, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#da9a):

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.

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [August 16, 2015, 3:53pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/27 "2015-08-16T15:53:48Z")

</div>

**[dockery](https://sourceforge.net/u/dockery/)** wrote on [Sunday, August 16, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#462b/7d6f):

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–

---

<div class="post-metadata">

**Author:** ![system](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/b/bb9e4e8ae2ea7faac2e952fd9e38a3ce03aac403.png) [@system](https://community.open-emr.org/u/system)\
**Post date:** [August 16, 2015, 5:28pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/28 "2015-08-16T17:28:52Z")

</div>

**[teryhill](https://sourceforge.net/u/teryhill/)** wrote on [Sunday, August 16, 2015](https://sourceforge.net/p/openemr/discussion/202506/thread/9a230ccc/#462b/7d6f/6eb0):

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

---

<div class="post-metadata">

**Author:** ![david.tessier](https://community.open-emr.org/user_avatar/community.open-emr.org/david.tessier/32/11981_2.png) [@david.tessier](https://community.open-emr.org/u/david.tessier)\
**Post date:** [September 26, 2018, 7:32pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/29 "2018-09-26T19:32:31Z")

</div>

> [@system](#):
>
> I have mirth running on my development box (windows 2008 server R2) with openemr and have accomplished moving data from openemr to a 3rd party app in a XML format.

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.

---

<div class="post-metadata">

**Author:** ![jacksparrow25](https://community.open-emr.org/user_avatar/community.open-emr.org/jacksparrow25/32/15094_2.png) [@jacksparrow25](https://community.open-emr.org/u/jacksparrow25)\
**Post date:** [September 26, 2018, 7:42pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/30 "2018-09-26T19:42:19Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![visolve](https://community.open-emr.org/user_avatar/community.open-emr.org/visolve/32/10972_2.png) [@visolve](https://community.open-emr.org/u/visolve)\
**Post date:** [September 27, 2018, 1:14pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/31 "2018-09-27T13:14:42Z")

</div>

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](http://www.visolve.com/hc)

---

<div class="post-metadata">

**Author:** ![david.tessier](https://community.open-emr.org/user_avatar/community.open-emr.org/david.tessier/32/11981_2.png) [@david.tessier](https://community.open-emr.org/u/david.tessier)\
**Post date:** [September 27, 2018, 2:03pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/32 "2018-09-27T14:03:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![stephenwaite](https://community.open-emr.org/user_avatar/community.open-emr.org/stephenwaite/32/15754_2.png) [@stephenwaite](https://community.open-emr.org/u/stephenwaite)\
**Post date:** [September 27, 2018, 8:27pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/33 "2018-09-27T20:27:13Z")

</div>

hi @david.tessier, here’s a somewhat related thread on integrating mirth and openemr [LIS Integration with Open EMR](https://community.open-emr.org/t/lis-integration-with-open-emr/10557/12?u=stephenwaite)

---

<div class="post-metadata">

**Author:** ![jacksparrow25](https://community.open-emr.org/user_avatar/community.open-emr.org/jacksparrow25/32/15094_2.png) [@jacksparrow25](https://community.open-emr.org/u/jacksparrow25)\
**Post date:** [September 29, 2018, 5:24am UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/34 "2018-09-29T05:24:48Z")

</div>

@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 .

---

<div class="post-metadata">

**Author:** ![david.tessier](https://community.open-emr.org/user_avatar/community.open-emr.org/david.tessier/32/11981_2.png) [@david.tessier](https://community.open-emr.org/u/david.tessier)\
**Post date:** [October 4, 2018, 2:16pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/35 "2018-10-04T14:16:26Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jacksparrow25](https://community.open-emr.org/user_avatar/community.open-emr.org/jacksparrow25/32/15094_2.png) [@jacksparrow25](https://community.open-emr.org/u/jacksparrow25)\
**Post date:** [October 4, 2018, 4:00pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/36 "2018-10-04T16:00:33Z")

</div>

@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](https://discourse-uploads-openemr.s3.dualstack.us-east-1.amazonaws.com/original/2X/6/65bd4e7eab178444348bb5bc813c3f41fa41f9b1.xml) (39.0 KB)

---

<div class="post-metadata">

**Author:** ![david.tessier](https://community.open-emr.org/user_avatar/community.open-emr.org/david.tessier/32/11981_2.png) [@david.tessier](https://community.open-emr.org/u/david.tessier)\
**Post date:** [October 4, 2018, 4:13pm UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/37 "2018-10-04T16:13:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jacksparrow25](https://community.open-emr.org/user_avatar/community.open-emr.org/jacksparrow25/32/15094_2.png) [@jacksparrow25](https://community.open-emr.org/u/jacksparrow25)\
**Post date:** [October 5, 2018, 8:35am UTC](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550/38 "2018-10-05T08:35:25Z")

</div>

@david.tessier,

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

[Previous page](https://community.open-emr.org/t/current-state-of-hl7-ccd/6550.md?page=1)
