Проверьте 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.