javascript - 如何在 Mirth Connect JavaScript 阅读器源连接器中获取 channel 信息?

标签 javascript mirth

我正在使用 Mirth Connect Server 3.8.1,并使用 JavaScript Reader 作为 channel 的源连接器。我正在尝试获取当前的 channel ID,但似乎这是不可能的。谷歌搜索后,我尝试了以下方法来查看是否产生任何结果,但没有:

logger.info(typeof channelId != 'undefined' ? ChannelUtil.getDeployedChannelName(channelId) : 'N/A');
logger.info(typeof connector != 'undefined' ? connector : 'N/A');
logger.info(typeof channel != 'undefined' ? channel : 'N/A');

这只会在日志中产生三个“N/A”。显然,我可以对 channel ID 进行硬编码,但我希望最终导出此配置,并能够将其导入到其他环境,而无需编辑任何内容。另外,感觉 JS 的 Source Connector 片段应该知道它为谁工作。

如何从脚本中获取此信息?

更新:“这应该有效”的答案本质上是正确的,因为事实证明这确实在一个全新的 channel 中有效。我正在使用的 channel 已导入,尽管我找不到影响该 channel 的其他脚本,但它显然已损坏。因此,真正的答案可能是“Mirth Connect Server 3.8.1 有一个错误,导致它有时无法工作,解决方法是创建一个新 channel 。”

更新 2: 罪魁祸首是我后来在本地范围内使用了 channelId 变量,大致如下:

for (var i=0; i<allChannelIds.size(); i++) {
    var channelId = allChannelIds.get(i);
    // Other code
}

我在意识到有一个全局范围的 channelId 变量之前并且在需要它之前写道。显然这会将其重置为未定义。如果每次脚本执行时都设置了全局 channelId,这应该不是问题,但显然情况并非如此。

最佳答案

你可能把事情变得过于复杂了。

在 Mirth 3.5.1 中,以下代码在 channel 源连接器上的 Transformer 中运行良好:

logger.info("Channel ID: "+channelId);

结果是这样的:

[2020-02-25 13:03:30,033]  INFO  (transformer:?): Channel ID: 1122e1c7-34af-4141-9388-533005346d0b

此 ID 与 Mirth 仪表板和 channel 摘要页面上显示的 ID 匹配。

我还验证了代码在 Javascript Reader 中是否有效。在本例中,记录的消息是

[2020-02-25 14:33:20,004]  INFO  (js-connector:?): Channel ID: 1122e1c7-34af-4141-9388-533005346d0b

关于javascript - 如何在 Mirth Connect JavaScript 阅读器源连接器中获取 channel 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60269717/

相关文章:

javascript - var 在函数中自增 10 后变为 NaN

mirth connect 数据库读取器自动列映射

oracle - 如何获取 Mirth Connect 的 HL7 模板?

javascript - 使用 Mirth 将多个 NTE 段添加到 HL7 消息

java.lang.NoClassDefFoundError : net/sourceforge/tess4j/TesseractException

javascript - Mirth Connect Channel 目标排序 JSON 对象数组

javascript - React Router Dom,只显示部分页面的Header组件

javascript - 带有 splice 的 javascript map 函数

javascript - 将 3 个数组的数组转换为 1 个带有对象变量的大数组

Javascript:降低圈复杂度