mirthConnect 常用示例和语法整理
1、jolt json常用语法
https://please.blog.csdn.net/article/details/140137463
2、常用方法
2.1 WinningDateUtils
所有的时间工具在WinningDateUtils里面
- 获取当前时间:var nowStr=WinningDateUtils.getStandardNowStr()
- 获取秒级时间戳 var nowStamp=WinningDateUtils.currentSeconds()
- 更多方法请查看对应工具类
2.2 WinningXmlUtil
- XML格式字符串转换为Map :WinningXmlUtil.xmlToMap(String xmlData, String xmlRootElement)
- 将Map转换为XML格式的字符串 WinningXmlUtil.mapToXml(Map<String, String> data)
3、常用内置变量
3.1 msg
表示入站消息的转换版本的XML对象,
进入mirthConnect的传递参数 ,一般在filter和transform使用,
不建议在response使用(因为这个值可能会被改变)
filter示例
获取请求参数的数据
举例入参
{ "apiInterfaceProviderCode":"Winning", "patientName":"zhangsan" }
如何设计到复杂的判断,请使用js代码书写,举例如下
var arr = ['Winning', 'winex_his']
if (arr.indexOf(msg['apiInterfaceProviderCode']) != -1) {
return true;
}
return false;
3.2 sourceMap
前端传递的源数据map,常用 sourceMap[‘url’] 用来在filter过滤请求的地址,举例如下:
注意判断逻辑,一般使用Contains
3.3 channelMap
当当前消息通过通道处理时,此映射与当前消息隔离。如果您存储源连接器中的连接器映射变量,您将可以访问所有连接器中的该值后续目的地。然而,当当前消息结束,下一条消息开始时下一条消息将无法访问您为上一条消息存储的值。通道映射对于需要在多个目的地之间共享的任何内容都很有用,或者源连接器和所有目的地。(官方文档英文翻译)
主要是在transform使用,用来给HttpSender 传递参数
importPackage(Packages.java.util);
importPackage(Packages.com.winning.mirth);
importPackage(Packages.com.bazaarvoice.jolt);
var reInfo={
"beid":"123456",
"patientName":"zhangsan"
};
var abc=JSON.stringify(reInfo);
//这里的jsonData在HttpSender进行使用
channelMap.put('jsonData',abc);
3.4 connectorMessage
连接消息的对象 一般在response使用,源码在ImmutableConnectorMessage .java
- connectorMessage.getRaw() 原始的响应返回数据
- connectorMessage.getResponseTransformedData() 有转换后的返回数据 (一般用这个)
//调用接口响应返回
var resposeInfo=connectorMessage.getResponseTransformedData()
//把返回的字符串转换成对象,方便取值
var tempRespose=JSON.parse(resposeInfo);
3.5 response
修改实际响应数据是通过使用可用于变压器响应数据的内部表示为msg,而内部表示为出站模板的表示形式(如果已设置)是tmp。当响应变压器完成时处理时,它将使用tmp的值(如果没有设置出站模板,则使用msg)来创建已处理的响应内容。(英语翻译)
响应的对象 在response使用
response.getMessage(); 获取响应的返回数据
//调用接口响应返回的json字符串 var resp=response.getMessage()
3.6 configurationMap
此配置也可用于整个服务器、所有频道和所有消息。与全局映射一样,这意味着您可以在任何通道中使用配置映射中的值,或者其他地方。如配置对外的url地址
3.7 globalMap
全局的map 可以在所有的接口使用
- 获取值 globalMap.get(‘key’)
- 存值 globalMap.put(‘key’,‘value’)
3.7 globalMap
全局的map 可以在所有的接口使用
- 获取值 globalMap.get(‘key’)
- 存值 globalMap.put(‘key’,‘value’)