hi, I want to have a PRT segment in a A01 transaction, I have the following method which creates a A01 with MSH EVN and PID but for PRT I am nots ure how to instantiate in A01. In fact I want to instantiate a PRT segment for the following transactions
A01
A03
A04
A05
A06
A07
A08
public static void main(String[] args) throws HL7Exception, IOException {
ADT_A01 a01 = new ADT_A01();
a01.initQuickstart("ADT", "A01", "P");
MSH mshSegment = a01.getMSH();
mshSegment.getSendingApplication().getNamespaceID().setValue("DAY3-SENDERAPP"); mshSegment.getSequenceNumber().setValue("123"); EVN evnSegment = a01.getEVN(); evnSegment.getEvn2_RecordedDateTime().setValue(getEventTime()); evnSegment.getEvn6_EventOccurred().setValue(getEventTime()); PRT prtSegment = a01.getPRT(); // error here. prtSegment.getActionCode().setValue("1"); PID pid = a01.getPID(); pid.getPid3_PatientIdentifierList(0).getIDNumber().setValue("457"); pid.getPid3_PatientIdentifierList(0).getAssigningAuthority().getNamespaceID().setValue("28"); pid.getPid3_PatientIdentifierList(0).getIdentifierTypeCode().setValue("ZPN"); pid.getPid5_PatientName(0).getFamilyName().getSurname().setValue("Chakraborty"); pid.getPid5_PatientName(0).getGivenName().setValue("Swaroop"); pid.getPid5_PatientName(0).getSecondAndFurtherGivenNamesOrInitialsThereof().setValue("Babu"); pid.getPid5_PatientName(0).getNameTypeCode().setValue("L"); pid.getPid11_PatientAddress(0).getStreetAddress().getStreetOrMailingAddress().setValue("121 Demo Road"); pid.getPid11_PatientAddress(0).getCity().setValue("Malvern"); pid.getPid11_PatientAddress(0).getStateOrProvince().setValue("PA"); pid.getPid11_PatientAddress(0).getZipOrPostalCode().setValue("19355"); pid.getPid11_PatientAddress(0).getCountry().setValue("USA"); pid.getPid11_PatientAddress(0).getAddressType().setValue("M"); pid.getPid13_PhoneNumberHome(0).getTelecommunicationUseCode().setValue("PRN"); pid.getPid13_PhoneNumberHome(0).getTelecommunicationEquipmentType().setValue("PH"); pid.getPid13_PhoneNumberHome(0).getCountryCode().setValue("1"); pid.getPid13_PhoneNumberHome(0).getAreaCityCode().setValue("91"); HapiContext context = new DefaultHapiContext(); Parser parser = context.getPipeParser(); String encodedMessage = parser.encode(a01); System.out.println("Printing ER7 Encoded Message:"); System.out.println(encodedMessage); }
PRT is not a segment that is defined for the events you mentioned. Therefore you have to use a more generic way:
You can add it to the message using addNonStandardSegment("PRT") (optionally with index position) and then obtain it with PRT prt = (PRT)a01.get("PRT")
Thanks Chris. I get it now. Your solution worked.