Mirth是否支持自定义HL7 V2.4 Schema并解析验证消息?求实现方法
Mirth自定义HL7 V2.4 Schema并验证入站消息的实现方法
Mirth完全支持自定义HL7 V2.4消息结构(Schema)来替代默认规则,并且能基于自定义Schema完成入站消息的解析与验证。具体实现步骤如下:
1. 准备自定义Schema资源
- 梳理好你的自定义HL7 V2.4规则:包括需要的段、每个段的字段/组件定义、必填项、数据类型、重复次数等。你提供的XSD可以作为结构参考,但Mirth主要依赖内部的消息结构配置来实现验证。
- 准备好测试用的入站HL7消息示例,方便后续验证配置是否生效。
2. 创建自定义HL7消息类型
- 打开Mirth Connect管理后台,进入通道管理器,点击顶部菜单栏的「消息类型」选项。
- 点击「新建」,选择「HL7 v2.x」作为基础类型,填写自定义名称(比如
Custom HL7 v2.4),版本选2.4,点击确定。 - 在消息编辑器里配置自定义结构:
- 点击「添加段」,按你的Schema添加需要的段(默认MSH段通常保留,可添加自定义Z段或修改现有段的字段)。
- 双击每个段进入字段配置:修改字段的数据类型、必填状态、重复次数,添加/删除组件/子组件,完全匹配你的自定义规则。
- 若有自定义Z段(如ZXX),直接添加并配置其下所有字段的规则。
- 配置完成后点击「保存」,将这个自定义消息类型存入Mirth。
3. 配置通道启用自定义Schema验证
- 创建或打开目标通道,进入源标签页:
- 在「传入数据类型」下拉菜单中,选择你刚创建的
Custom HL7 v2.4。 - 勾选「验证传入数据」,这样Mirth会自动用你的自定义Schema校验入站消息。
- 在「传入数据类型」下拉菜单中,选择你刚创建的
- (可选)如果需要额外业务规则验证,在源标签页的「转换」脚本里添加逻辑,比如:
// 示例:检查自定义ZXX段的第一个字段是否为数字 const zxxField = msg['ZXX']['ZXX.1'].toString(); if (!/^\d+$/.test(zxxField)) { throw new Error("ZXX.1字段必须为数字格式"); } - 若通道有输出需求,在目的地标签页配置对应的数据类型,确保输出也适配自定义结构。
4. 测试验证效果
- 进入通道的仪表板标签页,点击「发送测试消息」,输入你的HL7测试示例。
- 如果消息不符合自定义Schema规则(比如缺必填字段、数据类型错误),Mirth会在「错误」列表里显示详细的验证失败信息;验证通过的话,消息会进入正常处理流程。
- 查看消息的「原始」和「已解析」视图,确认Mirth正确解析了自定义结构的消息。
内容的提问来源于stack exchange,提问作者Mari
相关产品推荐
相关产品推荐

