Проверьте HL7 с C# и nHapi для.NET

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

https://github.com/duaneedwards/nHapi

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

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

NHapi.Base.validation.MessageValidator

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

Кроме того, я не могу найти соответствующие документы API для него.

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

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

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

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

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

https://github.com/shivkumarhaldikar/NHapiValidatator

Другие вопросы по тегам