我想使用JSON作为mirth频道的输入并输出类似于详细信息保存在db或Create HL7消息中。
简而言之,输入为JSON解析它并以任何格式输出。
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"}
HL7消息样本
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|
我正在解析这个页面,并找到了你的代码Rikin patel。实际上,当您创建对象并显示它时,它可能会作为JSON
数据出现在控制台中,当您查看输出时,它将是正常的XML
驱动格式。但是当您使用msg时,而不是对象,如下所示:
msg = JSON.stringify(object); //converting msg into JSON object
logger.info("json data:" + msg); //displaying the JSOn message
您将在输出中找到要修改的数据。
如Per @Debugger,如果有人想要json文件作为输入/源,那么试试这个解决方案。
欢乐通道
制作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
注意:
使用connectorMessage.getRawData()
而不是messageObject.getRawData()
用于Mirth 3.0+版本。
要在mirth通道中接收JSON作为输入,请将入站数据类型设置为分隔文本,并在通道预处理器中从接收的消息创建Json对象并返回json对象。
使用json对象获取详细信息并存储在某些变量中,并使用DB writer保存在db中。为了构建hl7消息,mirth提供了一些函数,比如createSegment(seg name,index),可以轻松构建自己的hl7消息。