HAPI HL7 Validator不验证已解析的消息

时间:2018-02-14 15:37:48

标签: hl7 hapi

我一次解析并验证HL7消息的方案按预期工作:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FormShifting : MonoBehaviour {

    public GameObject myObject1;
    public GameObject myObject2;
    int high;

    void Update () {

        if (Input.GetKey("up") && high == 0)
        {
            myObject1.SetActive(false);
            myObject2.SetActive(true);
        }

        if (Input.GetKey("down") && high == 1)
        {
            myObject2.SetActive(false);
            myObject1.SetActive(true);
        }
    }
}

异常(这是一种有效的行为):

HapiContext hapiContext = new DefaultHapiContext();
PipeParser parser = hapiContext.getPipeParser();
Message message = parser.parse("MSH|^~\\&|MedSeries|CAISI_1-2|PLS|3910|200903230934||ADT^A31^ADT_A05|75535037-1237815294895|P^T|2.5\r"
            + "EVN|A31|200903230934345345345345345\r"
            + "PID|1||29^^CAISI_1-2^PI~\"\"||Test300^Leticia^^^^^L||19770202|M||||||||||||||||||||||");

但是当我首先尝试解析HL7消息然后验证时 - 验证方法返回true并且没有抛出异常:

Exception in thread "main" ca.uhn.hl7v2.model.DataTypeException: ca.uhn.hl7v2.validation.ValidationException: Validation failed: Primitive value '200903230934345345345345345' requires to be empty or a HL7 datetime string at EVN-2(0)

我需要这个以在使用message.generateACK()方法验证失败的情况下生成确认消息。

1 个答案:

答案 0 :(得分:1)

您通过以下方式禁用了解析验证:

hapiContext.setValidationContext((ValidationContext) ValidationContextFactory.noValidation());

但是您使用相同的上下文来验证您的消息,但验证仍然是禁用的,这可能是根本原因。

另外,你试过这个吗? context.getParserConfiguration().setValidating(false);或真实