【发布时间】:2014-03-21 03:28:02
【问题描述】:
我想使用 JSON 作为 mirth 频道的输入,并输出详情 Save in db 或 Create HL7 message。
简而言之,输入为 JSON 解析并输出为任何格式。
【问题讨论】:
我想使用 JSON 作为 mirth 频道的输入,并输出详情 Save in db 或 Create HL7 message。
简而言之,输入为 JSON 解析并输出为任何格式。
【问题讨论】:
我正在解析这个页面,并找到了你的代码 Rikin patel。实际上,当您创建对象并显示它时,它可能会在控制台中显示为JSON 数据,当您查看输出时,它将是正常的XML 驱动格式。但是,当您使用 msg 时,而不是对象,如下所示:
msg = JSON.stringify(object); //converting msg into JSON object
logger.info("json data:" + msg); //displaying the JSOn message
您会在输出中找到正在修改的数据。
【讨论】:
JSON 对象然后创建新的全局/局部变量来设置JSON 对象。还有一件事你的“对象”变量应该是JSON对象
根据@Debugger,如果有人想要 json 文件作为输入/源,那么试试这个解决方案。
欢乐频道
入站数据类型为分隔文本
Outbound DataType 为 Javascript
将目标类型设为 JavaScript 并在 Transformer 中编写以下代码:
//Create Json Object From JSON string.
var objJson = JSON.parse(messageObject.getRawData());
logger.info(objJson.propertyName);
输入:
{"mrn":"1001","firstName":"COLLEEN","lastName":"OHALLAHAN","dob":"19850704","ssn":"123456789"}
输出:
logger.info(objJson.firstName);
COLLEEN
注意:
在 Mirth 3.0+ 版本中使用 connectorMessage.getRawData() 而不是 messageObject.getRawData()。
【讨论】:
要在 mirth 通道中接收 JSON 作为输入,请将入站数据类型设置为分隔文本,并在通道预处理器中从接收到的消息中创建 Json 对象并返回 json 对象。
使用 json 对象获取详细信息并存储在一些变量中,并使用 DB writer 保存在 db 中。 构建hl7消息,mirth提供了createSegment(seg name, index)等少量函数,可以轻松构建自己的hl7消息。
【讨论】:
var object = {};
//Create JSON Object from HL7 Message.
object.mrn = msg['PID']['PID.3']['PID.3.1'].toString();
object.firstName = msg['PID']['PID.5']['PID.5.2'].toString();
object.lastName = msg['PID']['PID.5']['PID.5.1'].toString();
object.dob = msg['PID']['PID.7']['PID.7.1'].toString();
object.ssn = msg['PID']['PID.19']['PID.19.1'].toString();
//Create string from JSON Object.
var objjson = JSON.stringify(object);
logger.info(objjson);
//Create Json Object From JSON string.
var tt = JSON.parse(objjson);
输出
{"mrn":"1001","firstName":"COLLEEN","lastName":"OHALLAHAN","dob":"19850704","ssn":"123456789"}
HL7Message 示例
MSH|^~\&|ADT1|SHM|SHMADT|SHM|200812091126|SECURITY|ADT^A01^ADT_A01|MSG00001|P|2.5|
EVN|A01|200812091126||
PID|1|1001|1001^5^M11^ADT1^MR^SHM||OHALLAHAN^COLLEEN^^||19850704|F||2106-3|1200 N ELM STREET^^NEWPORT BEACH^CA^92660-1020^US^H|OC|(949) 555-1234|(949) 555-5678||S||PATID1001^2^M10^ADT1^AN^A|123456789|U1234567^CA|
NK1|1|OHALLAHAN^BRITTANY^M|SIS^SISTER||||N^NEXT-OF-KIN
PV1|1|I|2000^2012^01||||001122^ZOIDBERG^JOHN^|||SUR||||1|A0|
【讨论】: