I know there is another HTTP thread similar to this, but I did not want to hijack that thread because my situation is slightly different.
Our current state is simple
Epic sends vaccination messages to the state immunization site. That’s it. No Cloverleaf involvement.
Our future state requires a change to that because we perform vaccinations at multiple facilities and the state now wants each facility to use a different username/password to their web portal.
My concern, other than I’ve never done any web connection in Cloverleaf, other than in class is this…
In my engine, if I have a connection thread to accept the vaccination messages from Epic, say
epic_chirp_v_in
That thread would then filter and route each vaccination message to a distinct outbound webservice connection to Chirp depending on what facility it is for, say
chirp_<fac 1>_v_out
chirp_<fac 2>_v_out
…
chirp_<fac n>_v_out
In turn, each message we send to each webservice connection to Chirp would then be ACK’d or NAK’d by Chirp. And that is the ACK/NAK that we would need to get back to Epic, so Epic users can resolve any errors (NAKs) in a work queue like they do today.
And that is the issue because when Epic sends out the vaccination message to Cloverleaf it will expect an ACK/NAK back to move onto the next message. Typically, the Cloverleaf thread would send Epic the HL7 ACK/NAK back to Epic, but in this situation that ACK/NAK means nothing because the message hasn’t even reached Chirp yet.
So at that point, do we hold the epic outbound connection up (not sure how), do not send the ACK/NAK, but let the vaccination message go through the Cloverleaf routing to the appropriate outbound webservice, then wait for the ACK/NAK from Chirp. When Cloverleaf gets that ACK/NAK from Chirp, we would then need to figure out of it’s possible to route that ACK/NAK through a different connection and get that back to Epic, so if it is a NAK, Epic can add the error to the workqueue for someone to look at, then move onto the next message.
I know that was a lot, hopefully it made sense. Thank you for you time.
Mike