如何基于ca.uhn.hl7v2.model.Message发送HL7 NACK消息?
生成HL7 NACK消息的实现方法
当接收到内容不符合要求的HL7消息时,你可以借助HAPI库提供的重载generateACK方法生成NACK,具体操作如下:
指定错误类型与描述
先确定符合HL7标准的应答代码:AR表示消息被拒绝(格式合法但业务校验不通过),AE表示处理时发生应用级错误,CR表示条件性拒绝。同时准备具体的错误描述,比如“缺少必填患者ID字段”。调用重载方法生成NACK
不要使用无参的msg.generateACK(),而是传入应答代码和异常信息来生成NACK消息:// msg为接收到的ca.uhn.hl7v2.model.Message实例 AcknowledgmentCode ackCode = AcknowledgmentCode.AE; // 构造包含错误信息的HL7异常 HL7Exception errorException = new HL7Exception("内容校验失败:缺少必填字段PID-3", ErrorCode.MISSING_REQUIRED_FIELD); // 生成NACK消息 Message nackMessage = msg.generateACK(ackCode, errorException);发送NACK至HIS
沿用你发送ACK的通道(比如MLLP连接),将生成的nackMessage发送回HIS系统即可。
注意事项:
- 应答代码和错误码要严格遵循HL7标准,便于HIS端准确识别错误类型。
- 异常中的错误描述要清晰具体,方便排查问题。
内容的提问来源于stack exchange,提问作者Stimpson Cat
相关产品推荐
相关产品推荐

