我想寫一個簡單的「Web服務」,我可以用Mirth來發送HL7消息。這個「Web服務」可以像CGI腳本一樣簡單,並且只需要使用Mirth的HTTP發送方作爲POST請求接受HL7消息作爲字符串(可能還有其他值)。如何從Web服務向Mirth發送ACK?
這似乎很簡單,但該「Web服務」應該如何發回ACK以讓Mirth知道一切是否正確或出了什麼問題?是否有一種特定的格式,歡樂期待作爲迴應?或者有什麼方法可以告訴Mirth什麼期望?
注意:我不想在接收端使用Mirth。
我想寫一個簡單的「Web服務」,我可以用Mirth來發送HL7消息。這個「Web服務」可以像CGI腳本一樣簡單,並且只需要使用Mirth的HTTP發送方作爲POST請求接受HL7消息作爲字符串(可能還有其他值)。如何從Web服務向Mirth發送ACK?
這似乎很簡單,但該「Web服務」應該如何發回ACK以讓Mirth知道一切是否正確或出了什麼問題?是否有一種特定的格式,歡樂期待作爲迴應?或者有什麼方法可以告訴Mirth什麼期望?
注意:我不想在接收端使用Mirth。
簡而言之,它完全取決於您......歡樂連接可以適應任何響應(或缺少響應)並執行自定義用戶邏輯來決定響應是否「成功」。
您可以讓您的外部Web服務生成一個HL7 v2.x ACK並將其發回。然後在HTTP發送方一側,確保您的響應數據類型設置爲HL7 v2.x,並在目標設置中啓用「驗證響應」。
您還可以讓您的Web服務生成完全自定義的響應,並在MC端執行自定義驗證。例如,如果你有你的Web服務發送回這樣的迴應:
{
"success": true,
"message": "Message received successfully."
}
然後你可以設置你的迴應數據類型JSON,並在響應變壓器做到這一點:
if (msg.success !== true) {
responseStatus = ERROR;
}
responseStatusMessage = msg.message;
你可以也純粹驗證響應狀態代碼。默認情況下,對於HTTP發件人,僅當HTTP請求的返回狀態爲< 400時,纔會將消息狀態設置爲SENT。其他情況和狀態將保留爲QUEUED(如果排隊禁用,則爲ERROR)。
雖然您可以在響應轉換器中覆蓋該行爲。如果狀態是特定的200(而不是其他2xx或3xx代碼),你可能只希望它是SENT。將響應數據類型設置爲Raw(即使沒有響應時也會執行響應變換),並在響應變換器中執行此操作:
var responseStatusLine = $('responseStatusLine');
var responseCode = parseInt(responseStatusLine.split(' ')[1], 10);
if (responseCode != 200) {
responseStatus = ERROR;
responseStatusMessage = responseStatusLine.substr(responseStatusLine.indexOf(' ')).trim();
}
謝謝,Nick Rupley。 – Wodin