HAPI API를 사용하여 HL7 V2.6 메시지를 간단하게 만들려고합니다. 최신 2.2 API를 사용하고 있습니다.HAPI : H17 파서는 세그먼트를 분리하지 않고 하나의 HL7 세그먼트에 모든 데이터를 추가합니다.
메시지를 인쇄하려고하면 모든 데이터가 하나의 세그먼트에만 추가됩니다. 여기 내 코드 -
package com.psl;
import ca.uhn.hl7v2.DefaultHapiContext;
import ca.uhn.hl7v2.HapiContext;
import ca.uhn.hl7v2.model.v26.message.ADT_A01;
import ca.uhn.hl7v2.model.v26.segment.MSH;
import ca.uhn.hl7v2.model.v26.segment.PID;
import ca.uhn.hl7v2.parser.Parser;
/**
* Example transmitting a message
*
* @author <a href="mailto:[email protected]">James Agnew</a>
* @version $Revision: 1.4 $ updated on $Date: 2009-10-03 15:29:05 $ by $Author: jamesagnew $
*/
public class CreateAMessage
{
/**
* @param args
* @throws HL7Exception
*/
public static void main(String[] args) throws Exception {
ADT_A01 adt = new ADT_A01();
adt.initQuickstart("ADT", "A01", "P");
// Populate the MSH Segment
MSH mshSegment = adt.getMSH();
mshSegment.getSendingApplication().getNamespaceID().setValue("TestSendingSystem");
mshSegment.getDateTimeOfMessage().setDatePrecision(2016,06,15);
mshSegment.getMsh10_MessageControlID().setValue("12345");
mshSegment.getSequenceNumber().setValue("123");
mshSegment.getAcceptAcknowledgmentType().setValue("AL");;
// Populate the PID Segment
PID pid = adt.getPID();
pid.getPatientName(0).getFamilyName().getSurname().setValue("Doe");
pid.getPatientName(0).getGivenName().setValue("John");
pid.getPatientIdentifierList(0).getCx1_IDNumber().setValue("1234567");
/*
* In a real situation, of course, many more segments and fields would be populated
*/
// Now, let's encode the message and look at the output
HapiContext context = new DefaultHapiContext();
Parser parser = context.getPipeParser();
String encodedMessage = parser.encode(adt);
System.out.println("Printing ER7 Encoded Message:");
System.out.println(encodedMessage);
/*
* Prints:
*
* MSH|^~\&|TestSendingSystem||||200701011539||ADT^A01^ADT A01||||123
* PID|||123456||Doe^John
*/
// Next, let's use the XML parser to encode as XML
parser = context.getXMLParser();
encodedMessage = parser.encode(adt);
System.out.println("Printing XML Encoded Message:");
System.out.println(encodedMessage);
}
}
콘솔입니다 출력 :
콘솔 출력 : PID ||| 1234567 || 미상^Johntem |||| 20160615 || ADT^A01^ADT_A01 | 12345 | P | 2.6 | 123 || AL
MSH가 없습니까? 도와주세요.
V2 XML 메시지를 인쇄 할 때 올바르게 출력됩니다. 누군가 문제 해결에 도움을 주시겠습니까? 내가 HAPI에서이 예제를 촬영 한
그것은 한 줄에 모든 세그먼트 당신에 println 인쇄를 보인다 그래서 PID 세그먼트와 MSH 세그먼트를 덮어 http://hl7api.sourceforge.net/xref/ca/uhn/hl7v2/examples/CreateAMessage.html
감사합니다. 내가 파일에 작성하고 메모장 + +로 열고 올바른 메시지를 볼 수 있습니다. Windows에서 작동하지 않는 이유를 모르겠습니다. Java 코드를 작성하고 메시지를 인쇄하기 위해 Eclipse 도구를 사용하고 있습니다. –