Possibility/suggested architecture for integration with OD

For complex topics that regular users would not be interested in. For power users and database administrators.
Post Reply
dzilberman
Posts: 6
Joined: Thu Apr 10, 2014 11:07 am

Possibility/suggested architecture for integration with OD

Post by dzilberman » Sun Apr 13, 2014 11:29 pm

Hello,

I am working for a medical software startup and we are very interested to build an integration with OpenDental software that our clients use. Our software focus is to make user experience (new patient registration/triage questions, appointments scheduling, insurance eligibility etc.) an easier experience for our users and we have build a Mobile client for Android that interacts with Web Services and Database deployed in Amazon EC2 cloud.

For "Proof of Concept" approach we would like ti implement the following use cases:

The use cases that our client (OpenDental users) asked about are:

1. Bi-directional Patient Demographic data synchronization: Patient data entered and stored in our platform ==> "propagated" into OpenDental repository of a client practice and the other way around.
2. Bi-directional Appointment data: Patient's appointment created and stored in our platform ==> "propagated" into OpenDental DB repository of a client practice and the other way around.

It need to be mentioned that we are have not yet built outbound or inbound HL7 interfaces our platform although do have specifications for those, so data format is flexible.

I noticed that OpenDental offers a large set of OOTB "bridges" (connectors) for data exchange with various dental practice software but most of them rely of co-located deployment of an executable of the program being integrated, such as Dolphin imaging: http://www.opendental.com/manual/bridgedolphin.html and specified data import file name such as c:\dolphin\import.txt

For eClinicalWorks integration described on the HL7 setup page: http://www.opendental.com/manual/hl7.html I figured that the HL7 incoming/outcoming data is transmitted even via local file system (e.g. F:\temp\HL7\in for inbound and F:\temp\HL7\out ) for outbound messages or via TCP/IP sockets via designated ports (5485/5486)

Could you please clarify the following for me:

1. Does the system to be integrated with OpenDental have to expose data via functioning HL7 interfaces which we have to map to OpenDental using Hl7 configuration UI similar to eCW integration? HL7 data files need to be either placed into ""in" folder of OpenDental server or sent to listening TCP socket defined for Custom HL7 mapping? That may be challenging is client's instance of OpenDental is behind a firewall, wonder how other dealt with such scenario?

2. Besides HL7 interfaces (which we haven't fully built out yet) - can we use other batch data extraction and packaging to export data from our app platform - like custom, JSON or XMl formatted text files? Assuming that we can deliver these files into network location available to OpenDental , what module should be created for periodic processing of such files and mapping their format to that in the OD DB scheme, like used in example of EWoo bridge:

Code: Select all

 <Patient LastName="Smith" FirstName="John" ChartNumber="123">
      <Birthday>18/12/1972</Birthday>
      <Address>123 Main St, Salem, OR</Address>
      <ZipCode>97302</ZipCode>
      <Phone>(503)363-5432</Phone>
      <Mobile>(503)215-3215</Mobile>
      <SocialID>123456789</SocialID>
      <Gender>Male</Gender> 
   </Patient>
Where can I find the sample code for this type of bridge, if that is the "quick and dirty" way to establish integration for use cases above?

These questions are very important for our project, would appreciate a detailed response.

thanks, :D
Dan Zilberman
Integration Architect
JakariCare inc

dzilberman
Posts: 6
Joined: Thu Apr 10, 2014 11:07 am

Re: Possibility/suggested architecture for integration with

Post by dzilberman » Fri Apr 25, 2014 4:04 pm

I have spoken to Nathan on high level and have follow up questions, sorry it is long:

For the realistic Use cases for integration with OpenDental we can do the following:

a. Create Patient record in OD (either on site server or via shared WebForms Web UI) - that will generate required Patient DI for further access to the data, export that data out, import into Jakari DB
b. Update/enrich Patient demographics Data in Jakari (Web portal), export it out from our DB, import data to OD Database.(via custom bridge or HL7 interface)

c. Create Appointment data (for existing patient as we do need that Patient DI for referral) in our Portal, export it out from Jakari DB as data file, import into OD database (via custom bridge or HL7 interface)

d. (Maybe) Update Appointment data in OD Web UI, export it from OD database out, import into our app Db I say "Maybe" because we capture pretty limited set of fields in our Appointment whereas OD captures more, including Operatory rooms etc.

So we will only be able to use limited subset of appointment data exported from OD in Jakari (see attached Appointment Data export dump file).

2. For message format and transport layer- we have short and long term approaches


a. the short term approach for 1 would be have a custom bridge code (C# using OD framework) running with each OpenDental server instance) and producing custom formatted files with dumps of Patient and Appointment records (attached sample files). These files can be transferred /send wrapped in Web Service requests to existing Web Services or whatever interface currently used to import Appointment/Patient data from OrthoTrac

b. Would involve same approach but in reverse - export custom (pre-defined) Patient and Appointment data files from our DB , transfer them to OD server locations pre-defined in folders and have another part of custom bridge pick that data up and import into corresponding tables in OD database.

This would be one-off solution specific to OD current DB schema and using proprietary formats for importing/exporting data between the systems but it may not involve the middle tier at all and may be more time efficient. We will coordinate that bridge source code with OpenDental community.

I fully support your take for long term/scalable solution to build out HL7 outbound and inbound interfaces for JakariCare

As we saw, here is what OD have OOTB for HL7 based integration for eCW:

http://www.opendental.com/manual/hl7.html

We have *almost* all of these fields in our HL7 outbound specification, can turn them into into inbound.

For exporting data out of OD, we'd have to add ADT -A04 outgoing and SIU-S12 outgoing segments for exporting Patient demo and Appointment data from OD and make sure that HL7 service actually produces these messages correctly - but according to General HL7 manual page, it should work!

QUESTION, PLEASE: Will we be able to add OUTGOING Hl7 messages for ADT and SIU segments to be run by HL7 service?


For HL7 based solution, for outbound interface from Jakari, we'll need to get a key-value formatted fie (like attached Patient JSON sample), put it through Mirth channel to generate Hl7 and have it e-mail (yes, Mirth can send e-mails) that file as attachment or directly FTP it to specified folder in client's network.

For inbound interface to Jakari, we will need a small piece of custom code that will pick up HL7 formatted files with Patient/Appointment data and make a call to Mirth Web Service (like my Test Eligibility Dispatch) passing in that message. Then Mirth channel will parse HL7 (OOTB functionality as well) and write data directly into Jakari database.

QUESTION: could you please point me to a code framework for OD database access from C# code to build my custom bridge solution for CRUD operations?

Thank you & apologies for very long message - wanted to lay down all the options and get your feedback.

Dan z
Dan Zilberman

Post Reply