我有一个设置为 Web 服务侦听器的 Mirth 通道,它接收一个 ID,构建一个 HL7 查询消息并发送此查询并最终返回一个 HL7 响应。
- 频道名称:查询频道
- 源连接器类型:Web 服务侦听器
- 目标连接器名称:QueryToVista
- 目标连接器类型:LLP 发件人。
这是我从查询中收到的典型 HL7 响应如下:
MSH|~|\&|VAFC RECV|FACILITY|VAFC TRIGGER||20121011141136-0800||ADR~A19|58269|D|2.4|||NE|NE|USA
MSA|AA|1234|
QRD|20121011051137|R|I|500000001|||1^ICN|***500000001***|ICN|NI|
EVN|A1|20121004064809-0800||A1|0^^^^^^^^USVHA\\0363^L^^^NI^TEST FACILITY ID\050\L|20121004064809-0800|050
PID|1|500000001V075322|500000001V075322^^^USVHA\\0363^NI^VA FACILITY ID\050\L~123123123^^^USSSA\\0363^SS^TEST FACILITY ID\050\L~9^^^USVHA\\0363^PI^VA FACILITY ID\050\L||JOHN^DOE^^^^^L|""|19800502|M||""|""^""^""^""^""^^P^""^""~^^""^""^^^N|""|""|""||S|""||123123123|||""|""||||||""||
PD1|||SOFTWARE SERVICE^D^050
ZPD|1||||||||||||||||""
如果我将 Source 的 Response From 参数设置为QueryToVista ,我可以获得以上所有内容
但是,我只想从上述消息中返回值500000001 。我试图在 QueryChanel 目的地中使用转换器但没有成功。
更新:
我尝试在同一通道中的 QueryToVista 连接器之后添加一个 javascriptwriter 连接器,如下所示:
var destination = responseMap.get('QueryToVista');
var responseMessage = destination.getMessage();
//Fails with following error: TypeError: Cannot read property "QRD.4" from undefined
var customack = ResponseFactory.getSuccessResponse(responseMessage['QRD']['QRD.4'] ['QRD.4.1'].toString())**
//work but send the whole HL7 message
var customack = ResponseFactory.getSuccessResponse(responseMessage.toString())**
responseMap.put('Barcode', customack);
我似乎根本无法使用正常的转换来检索元素。谢谢你。