Есть ли хороший синтаксический анализатор, который может анализировать сообщение HL7 V2.7 с использованием Java, кроме HAPI. Моя цель - преобразовать сообщение в файл XML.
Парсер HL7 версии 2.7 с использованием Java, кроме Hapi
Ответы (2)
Существует моя собственная альтернатива с открытым исходным кодом под названием HL7X, которая работает с любой версией HL7v2. Он преобразует вашу строку HL7 в строку XML.
Пример:
MSH|^~\&|||||20121116122025||ADT^A01|5730224|P|2.5||||||UNICODE UTF-8
EVN|A01|20130120151827
PID||0|123||Name^Firstname^^^^||193106170000|w
PV1||E|
Превращается в
<?xml version="1.0" encoding="UTF-8"?>
<HL7X>
<HL7X>
<MSH>
<MSH.1>^~\&</MSH.1>
<MSH.6>20121116122025</MSH.6>
<MSH.8>
<MSH.8.1>ADT</MSH.8.1>
<MSH.8.2>A01</MSH.8.2>
</MSH.8>
<MSH.9>5730224</MSH.9>
<MSH.10>P</MSH.10>
<MSH.11>2.5</MSH.11>
<MSH.17>UNICODE UTF-8</MSH.17>
</MSH>
<EVN>
<EVN.1>A01</EVN.1>
<EVN.2>20130120151827</EVN.2>
</EVN>
<PID>
<PID.2>0</PID.2>
<PID.3>123</PID.3>
<PID.5>
<PID.5.1>Name</PID.5.1>
<PID.5.2>Firstname</PID.5.2>
</PID.5>
<PID.7>193106170000</PID.7>
<PID.8>F</PID.8>
</PID>
<PV1>
<PV1.2>E</PV1.2>
</PV1>
</HL7X>
этот http://www.dcm4che.org/confluence/display/ee2/Home Программное обеспечение Java с открытым исходным кодом может получать различные сообщения HL7 через протокол MLLP, преобразовывать их в XML, запускать через преобразователь XSLT, а затем загружать их в базу данных и по мере необходимости передавать клиентам DICOM. Для этого в кодовой базе есть код HL7->XML. Просто найдите его, скопируйте/вставьте и используйте.
Однажды я узнал, где именно находится этот код, когда решал проблему с набором символов сообщения. В то время я обнаружил, что парсер HL7 довольно простодушен и может понять только 1 набор символов, предусмотренный в конфигурации. Он не читает/использует набор символов (MSH-18, таблица 0211, советы по кодированию Грэма Грива), представленный в сообщениях, также не поддерживает переключение наборов символов во время декодирования сообщения (см. главу «Escape-последовательности, поддерживающие несколько наборов символов» в спецификации HL7).
Итак, я знаю, что код парсера есть. Это на Яве. Он создает входные данные XML для пользовательского сценария преобразования XSLT. Это должно быть довольно легко повторно использовать.
Вы должны быть в состоянии найти его самостоятельно. В противном случае ваш вопрос оказался бы простым поиск инструмента §4 не по теме :)