Проверка HL7 с помощью C# и nHapi для .NET

Я хочу проверить стандартное сообщение HL7 2.3, используя С# и .NET-версию проекта nHapi:

https://github.com/duaneedwards/nHapi

Я скачал dll и добавил в свой проект NHapi.Base.dll и NHapi.Model.V23.dll.

Я знаю, что должен использовать:

NHapi.Base.validation.MessageValidator

Но я не могу понять, как должен быть настроен IValidationContext theContext, чтобы проверить версию 2.3.

Кроме того, я не могу найти для него подходящую документацию по API.

Может ли кто-нибудь помочь?


person ohadinho    schedule 18.10.2015    source источник


Ответы (2)


Методы проверки сообщения встроены в синтаксический анализатор. Реализация конкретных правил была намеренно оставлена ​​на откуп разработчикам (для повышения гибкости). Что вам нужно сделать, так это создать новый контекст:

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

person Oliamster    schedule 22.05.2018

Даже я искал решение для проверки сообщений HL7 V2 с помощью NHapi и не смог найти хороших статей. Поэтому я решил пройтись по объектному модулю NHapi, чтобы увидеть любую полезную информацию для проверки структуры, и я нашел кое-что.

NHapi HL7 v2 IMessage реализован с использованием интерфейса IType и имеет свойство ExtraComponent. Анализатор NHapi не генерирует исключений для недопустимой структуры, а заполняет свойство ExtraComponent. Поэтому, если вы обнаружите, что ExtraComponent.numComponents() больше 0, у вас есть структурные проблемы в сообщении.

Я написал код валидатора на С#. Вы можете скачать его с github.

https://github.com/shivkumarhaldikar/NHapiValidatator

person Shivkumar Haldikar    schedule 10.04.2018