使用Javascript的Mirth getMessageCount不起作用

使用Javascript的Mirth getMessageCount不起作用,javascript,mirth,Javascript,Mirth,我想使用getMessageCount()获取特定频道特定日期范围内发送的消息数。因此,“过滤器”由3项组成:状态=发送开始日期=2020-10-15结束日期=2020-10-16 这是我正在使用的代码: var client = new com.mirth.connect.client.core.Client('https://localhost:8443'); var loginStatus = client.login('myusername', 'mypassword'); if (l

我想使用getMessageCount()获取特定频道特定日期范围内发送的消息数。因此,“过滤器”由3项组成:状态=发送开始日期=2020-10-15结束日期=2020-10-16

这是我正在使用的代码:

var client = new com.mirth.connect.client.core.Client('https://localhost:8443');

var loginStatus = client.login('myusername', 'mypassword');
if (loginStatus.getStatus() != com.mirth.connect.model.LoginStatus.Status.SUCCESS) {
    logger.error('Unable to log-on the server (status ' + loginStatus.getStatus() + ')');
    return;
} 

var channelId = 'b544f44c-xxxxxxxxxx-xxxxxxx';

var count = client.getMessageCount(channelId,'status=SENT,startDate=2020-10-15,endDate=2020-10-16');  // THIS FAILS, because 2nd parameter is not a string   
我收到一个错误:找不到方法com.mirth.connect.client.core.client.getMessageCount(string,string

getMessageCount的语法为:getMessageCount(字符串channelId, 消息过滤器过滤器

那么,我如何构造/传递包含上述3项的“filter”参数呢?请给出一个清晰的示例。

要获取“昨天”的发送计数,以下是解决方案,效果良好:

//创建一个客户端实例,并使用它应该连接的服务器对其进行初始化
var client=new com.mirth.connect.client.core.client('https://localhost:8443');
//登录到服务器
试一试{
var loginStatus=client.login($g('apiUsername'),$g('apiPassword');
}捕获(ex){
抛出“无法登录服务器”+“服务器+”错误:“+ex.message;
}
//检查登录是否成功
if(loginStatus.getStatus()!=com.mirth.connect.model.loginStatus.Status.SUCCESS){
logger.error('无法登录服务器(状态'+loginStatus.getStatus()+');
返回;
} 
var filter=new com.mirth.connect.model.filters.MessageFilter;
var calendar=java.util.calendar;
var startDate=new calendar.getInstance();
var endDate=new calendar.getInstance();
startDate.add(calendar.DATE,-1);//从昨天开始
endDate.add(calendar.DATE,-1);//从昨天开始
startDate.set(startDate.get(calendar.YEAR)、startDate.get(calendar.MONTH)、startDate.get(calendar.DAY\u OF\u MONTH)、0、0、0);
startDate.set(日历毫秒,0);
//将endDate设置为午夜前1毫秒
//Ex:2020-10-15 23:59:59.999(午夜前)
endDate.set(endDate.get(calendar.YEAR)、endDate.get(calendar.MONTH)、endDate.get(calendar.DAY/OF/u MONTH)、23、59、59);
endDate.set(日历毫秒,999);
过滤器。设置开始日期(开始日期);
filter.setEndDate(endDate);
var status=new java.util.HashSet();
var Status=com.mirth.connect.aduck.model.message.Status;
变量channelId='b544f44c-XXXXXXXXX-XXXXXXXXX';
状态。添加(状态。已发送);
过滤器。设置状态(状态);
var sentCount=client.getMessageCount(channelId,filter);

logger.info('昨天发送的消息数:'+sentCount)你可以尝试使用api调用吗?@VibinGuevara我尝试过,但有“证书”问题:-)我发现下面的解决方案是干净的