我一次解析并验证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()方法验证失败的情况下生成确认消息。
答案 0 :(得分:1)
您通过以下方式禁用了解析验证:
hapiContext.setValidationContext((ValidationContext) ValidationContextFactory.noValidation());
但是您使用相同的上下文来验证您的消息,但验证仍然是禁用的,这可能是根本原因。
另外,你试过这个吗? context.getParserConfiguration().setValidating(false);
或真实