mirthConnect 常用示例和语法整理

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.8 responseStatus

获取响应的状态,一般是失败返回ERROR 成功返回SENT

if (responseStatus == 'ERROR') {
    logger.info('HTTP请求失败,可能超时');
} else {
    var responseMessage = response.getMessage();
    if (responseMessage == null || responseMessage.trim() == '') {
        logger.info('HTTP请求可能超时或未返回数据');
    } else {
        logger.info('HTTP响应内容: ' + responseMessage);
    }
}

3.8 ResponseFactory.getErrorResponse(‘message’)

获取响应的状态

var errorStatus=ResponseFactory.getErrorResponse('message');
if (errorStatus== 'ERROR') {
    logger.info('HTTP请求失败,可能超时');
} else {
    var responseMessage = response.getMessage();
    if (responseMessage == null || responseMessage.trim() == '') {
        logger.info('HTTP请求可能超时或未返回数据');
    } else {
        logger.info('HTTP响应内容: ' + responseMessage);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值