【问题标题】:Validate HL7 with C# and nHapi for .NET使用 C# 和 nHapi for .NET 验证 HL7
【发布时间】:2018-05-22 22:50:30
【问题描述】:

我希望使用 C# 和 .NET 版本的 nHapi 项目验证 HL7 2.3 标准消息:

https://github.com/duaneedwards/nHapi

我已下载 dll 并将 NHapi.Base.dll 和 NHapi.Model.V23.dll 添加到我的项目中。

我知道我应该使用:

NHapi.Base.validation.MessageValidator

但我不知道应该如何配置 IValidationContext theContext 以检查 2.3 版本。

此外,我找不到任何合适的 API 文档。

有人可以帮忙吗?

【问题讨论】:

    标签: c# .net hl7-v2 nhapi


    【解决方案1】:

    验证消息的方法嵌入到解析器中。具体规则的实施有意留给实施者(以提高灵活性)。你需要做的是创建新的上下文:

    public class CustomContext : DefaultValidationContext //:IValidationContext
    {
        //Define the rules and rule Bindings
    }
    
    public class Rule1 : IMessageRule
    {
        //Check whatever you want in the fully parsed message
        //For example, check for the mandatory segment, groups cardinalities etc.
    }
    

    然后

    PipeParser p = new PipeParser();
    CustomContext myContext = new CustomContext();
    p.ValidationContext = myContext;
    

    这是一个很好的起点:NHapi Documentation

    【讨论】:

      【解决方案2】:

      即使我正在寻找一些解决方案来使用 NHapi 验证 HL7 V2 消息,但找不到任何好的文章。所以我决定通过 NHapi 对象模块查看任何有用的信息来验证结构,我发现了一些东西。

      NHapi HL7 v2 IMessage 是使用IType 接口实现的,它有一个名为ExtraComponent 的属性。 NHapi 解析器不会对无效结构抛出任何异常,而是填充ExtraComponent 属性。因此,如果您发现 ExtraComponent.numComponents() 大于 0,那么您的消息存在结构性问题。

      我用 C# 编写了一个验证器代码。你可以从github下载。

      https://github.com/shivkumarhaldikar/NHapiValidatator

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-14
        • 2016-03-16
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-28
        • 2021-07-15
        相关资源
        最近更新 更多