Integrating with EMPI – can a FHIR call be made from an xlate or pre-xlate proc?

Clovertech Forums Cloverleaf Integrating with EMPI – can a FHIR call be made from an xlate or pre-xlate proc?

Tagged: 

  • Creator
    Topic
  • #118593
    Peter Heggie
    Participant

      We are looking at EMPI solutions. After looking at a few vendors, it appears that their approach is to have an ADT interface to collect patient demographics and EMR ID numbers like MRNs, but the Orders, Results or Charges interfaces are meant to be serviced by having the interface engine make a dynamic, real-time API call to the EMPI engine which will return the cross-walked ID value. The real-time API call can be made with REST, FHIR, web-services or even HL7 v2.

      As far as I know, there is no configurable ability to connect an HL7 interface to that point in the middle of an interface, for example at the point of translation or a pre- or post-proc next to the translation. I have gotten tcl procs to dynamically create tcp/ip connections to another thread and send and receive messages, but that seems kind of cumbersome.

      Also, my understanding is that FHIR, REST and web-services are only invoked as source or target thread protocols, not as a “function” like ‘dblookup’.

      Has anyone gotten one of these API calls to work from within the “middle” of an interface, for example from a translator or a TCL proc?

      Peter

      Peter Heggie
      PeterHeggie@crouse.org

    Viewing 6 reply threads
    • Author
      Replies
      • #118594
        Rob Abbott
        Keymaster

          You should look at DTC.

          More info here

           

          Cloverleaf related webinars and events

           

          Rob Abbott
          Cloverleaf Emeritus

        • #118595
          Peter Heggie
          Participant

            The link for the DTC webinar brought up an entry sales page – is there a different way to get to that webinar?

            Peter Heggie
            PeterHeggie@crouse.org

            • #118599
              Anonymous

                same

            • #118596
              Jeff Dinsmore
              Participant

                Peter,

                We’ve been using a Tcl tool kit from Chilkat Software that would probably suit your needs.  It has lots of nice comm tools that are easily integrated into real time scripts.

                We currently use it inside of a few TPS scripts for SFTP.  It allows us to read a file via SFTP into a string that we digest and built into HL7 messages.

                It’s also used in standalone scripts for HTTPS get/put operations, but there’s no reason those couldn’t be called dynamically from the middle of a script or Xlate in Cloverleaf.

                Jeff Dinsmore
                Chesapeake Regional Healthcare

                • #118597
                  Anonymous

                    (wrong post)

                • #118600
                  Peter Heggie
                  Participant

                    that is a powerful toolkit – thank you. I do want to get the FHIR/web-services add-on if possible, but right now I am having trouble just visualizing how FHIR would be used. The suggestion for using DTC has to be explored but I can’t visualize that either. Need a demo that shows threads! So far FHIR seems to be used as the protocol used in the start of an interface (source thread protocol) used at the end of the interface (destination thread protocol), so not sure how to “just” use FHIR as a utility that could be invoked anywhere in  an interface. Wouldn’t it be great if you could have three threads in an interface instead  of two.. Thread 1 (inbound order) to thread 2 (FHIR call) to thread 3 (outbound to ancillary).

                    Peter Heggie
                    PeterHeggie@crouse.org

                  • #118601
                    Jim Kosloskey
                    Participant

                      FHIR is a message set not a protocol. Typically it is used with either restful services or Web Services but that is not necessary.

                      Perhaps DCT might accomplish what you want. When you get access to the webinar you might know better. If I recall I think DCT is a toolset to aggregate data from multiple ‘threads’ into a single payload.

                      So I think what you are envisioning is IB (first thread)to a query to get FHIR response (second thread) then that data be added to the original message and the resultant updated message set to the the final OB (third thread).

                      So using the Tcl toolkit Jeff references I suppose it would be possible (if the toolkit supports it) to utilize some Tcl in an Xlate as the message passes from IB to OB and use that Tcl to do a restful services (for example) protocol query to get a FHIR payload returned. Then you would need to parse that and extract the data element(s) needed to complete the message to the OB. Of course you would now also be responsible for managing the interchange with the FHIR source queried in the Xlate – like what happens if the connection goes down while you have a message in the Xlate thread, etc.).

                       

                      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                    • #118746
                      Mike Strout
                      Participant

                        Like Peter, I have been having a hard time wrapping my mind around how FHIR would be implemented in Cloverleaf. If a developer is looking at a simple request/response interface, no problemo. But from what I have heard from my son who is making extensive use of FHIR to read data out of Epic, querying with FHIR is like querying a DB without using joins. You query to get a key and then you use that key to make another query, and another, and another…until you have all the data you need to respond to the original request. I can’t picture how that would work in Cloverleaf unless you handle everything after the first query in Tcl or you have a bunch of chained threads (which I kinda like the idea of.

                        I am going to unpack the FHIR box referenced in the documentation to see if that clears things up.

                         

                        Mike

                        • #118748
                          Jim Kosloskey
                          Participant

                            I suspect if the requesting and replying systems are using FHIR the requesting system would be responsible for submitting as many requests as necessary to acquire all of the information needed. In that case, Cloverleaf would simply deliver requests and replies as individual messages.

                            My thoughts would be this is the way FHIR is intended to be used.

                            If, on the other hand, the requesting system wants to send a single request which is required to have the appropriate intermediate sub-requests generated and only want back the aggregated result then my thought would be that is where the DCT addon for Cloverleaf would come into play.

                            If there is no money for DCT then money would be spent developing the equivalent using Tcl and something like Sqllite or some other storage mechanism. Kind of an application residing inside the Cloverleaf environment.  Obviously support responsibilities are assumed as well.

                            My opinion (and this is only my opinion) is if the DCT is designed to do this – use that. Also I don’t think the FHIR addon is intended to provide aggregation.

                            email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                          • #118750
                            Rob Abbott
                            Keymaster

                              DTC is included with core Cloverleaf licensing.

                               

                              You’re right Jim, this is a use case for DTC (break a bundle request apart, make requests to multiple backend systems, asynchronously wait for responses to arrive, and bundle them back into a single response.  With translation capability either way.)

                              Rob Abbott
                              Cloverleaf Emeritus

                          • #118813
                            Ted Viens
                            Participant

                              I too am trying to figure out how to leverage Cloverleaf to address inquiries surrounding FHIR.   I am watching the DTC webinar now.    It sounds like there are different ways to address this.   Is there a specific connector that should be used with FHIR or should the java/ws be used?

                          Viewing 6 reply threads
                          • You must be logged in to reply to this topic.