Thank you Martin for the inputs. Yes, it is issue with OBX-2 datatype filed, I tested through my stand alone program by supplying OBX-2 data type as ST.
p.getParserConfiguration().setDefaultObx2Type("ST");//ISSUE However, on the fly I have a listener which starts listening once my server started. In this case my changes are not getting effected and facing the same issue. And also I tried to disable my validations, either way my issue is not yet resolved. Following way I am trying to capture HL7 message and further to process: 1) My health device is producing HL 2.3, and also I am using hapi2.3 jars as maven dependencies. following is my MSH: MSH|^~\&|ABAXIS, INC.^piccolo xpress^3.1.37^0000P26854||||20201121161056||ORU^R01||P|2.3| 2) I tried with disabling validations. And also I supplied ST for OBX2 type. Still I am getting the same issue. //No Validation context.setValidationContext((ValidationContext) ValidationContextFactory.noValidation()); p.getParserConfiguration().setDefaultObx2Type("ST");//ISSUE 3) My listener will start as soon as the server starts and it waits for the message to receive and process further. I kept my validation disabling in my listener class and next level also.. Following is my snippet: Listener.java public class VitalsDeviceListener { private static final Logger log = LoggerFactory.getLogger(VitalsDeviceListener.class); // change this to whatever your port number is private static final int PORT_NUMBER = 54000; // In HAPI, almost all things revolve around a context object private static HapiContext context = new DefaultHapiContext(); @SuppressWarnings("unchecked") public static void enableDeviceListener(String[] args) throws Exception { try { boolean useSecureConnection = false; // are you using TLS/SSL? HL7Service hl7Server = context.newServer(PORT_NUMBER, useSecureConnection); //No Validation context.setValidationContext((ValidationContext) ValidationContextFactory.noValidation()); // You can set up routing rules for your HL7 listener by extending the // AppRoutingData class like this hl7Server.registerApplication(new RegistrationEventRoutingData(), new MessageHandlingAndACK()); hl7Server.startAndWait(); log.info("Listener is started, waiting for client message:" + "\n"); } catch (Exception e) { e.printStackTrace(); } } } This listener forwards the message to MessageHandlingAndACK class. In this class also again I am disabling validation and ST supply to OBX2. public class MessageHandlingAndACK implements ReceivingApplication { private static final Logger log = LoggerFactory.getLogger(MessageHandlingAndACK.class); private static HapiContext context = new DefaultHapiContext(); @Override public boolean canProcess(Message message) { return true; } @Override public Message processMessage(Message receivedMessage, Map metaData) throws ReceivingApplicationException, HL7Exception { //No Validation context.setValidationContext((ValidationContext) ValidationContextFactory.noValidation()); //context.getParserConfiguration().setValidating(false); Parser p = context.getPipeParser(); p.getParserConfiguration().setDefaultObx2Type("ST");//ISSUE1: Piccolo not sending mandatory data type for OBX //Message hapiMsg = p.parse(receivedMessage.toString()); String receivedEncodedMessage = p.encode(receivedMessage); log.info("****Incoming message:\n" + receivedEncodedMessage + "\n\n"); try { log.info("****ACK message from server:\n" + receivedMessage.generateACK()); return receivedMessage.generateACK(); } catch (IOException e) { throw new HL7Exception(e); } } } After doing this changes also, I am getting the same issue. I am not sure whether I am applying my changes at right place or not. I tested this code with sample client, but it is failing with actual health device. Please provide your valuable inputs. Thanks, Dasari From: Martin Fleurke <martin.fleu...@portavita.nl> Sent: Tuesday, November 24, 2020 12:53 AM To: hl7api-devel@lists.sourceforge.net Subject: Re: [HAPI-devel] Need Help in - To use correct version of Hapi Library CAUTION: This email originated from outside of the organization. Do NOT click links or open attachments unless you recognize the sender and know the content is safe. The error message is a bit unclear ( ca.uhn.hl7v2.HL7Exception: A datatype for OBX- must be specified in 5- . at ca.uhn.hl7v2.parser.FixFieldDataType.fix(FixFieldDataType.java:165) at ca.uhn.hl7v2.parser.FixFieldDataType.fixOBX5(FixFieldDataType.java:123)) but I think it is not related to OBX-5 (as that is the VALUE field, which is filled in in your message. You highlighted OBX-4) Instead I think it's about OBX-2, the DataType field, which is empty. Wbr Martin On 23/11/2020 18:58, Dasari, Penchalaiah via Hl7api-devel wrote: Hi Martin, Thanks for your inputs. Yes, I am using hapi-2.3 base jar and hapi-structires-23. My device is sending following way the MSH & OBX segments :- MSH Segment: MSH|^~\&|XYZ, INC.^3.1.37^0000A1234||||20201121161056||ORU^R01||P|2.3| OBX segment: OBX|1||2345-7^^LN^Glucose SerPl-mCnc||99|mg/dL|73 to 118|N|||F||||||Patient| OBX|2||3094-0^^LN^BUN SerPl-mCnc||13|mg/dL|7 to 22|N|||F||||||Patient| You mean OBX-5 (the highlighted portion) is empty? If this is correct, I need to check with my health device provider. Thanks, Dasari From: Martin Fleurke <martin.fleu...@portavita.nl><mailto:martin.fleu...@portavita.nl> Sent: Monday, November 23, 2020 12:48 AM To: hl7api-devel@lists.sourceforge.net<mailto:hl7api-devel@lists.sourceforge.net> Subject: Re: [HAPI-devel] Need Help in - To use correct version of Hapi Library CAUTION: This email originated from outside of the organization. Do NOT click links or open attachments unless you recognize the sender and know the content is safe. Hi, It looks more like a bad message coming in. You should be able to see the message when logging ca.uhn.hl7v2.raw[.inbound] The error says that a required data field (OBX-5) is empty. Solution is to let the sender fill it in. Is the incoming message a hl7v2.3 message? If it is an other version then also include the corresponding hapi-structures-v2X Wbr Martin On 20/11/2020 23:50, Dasari, Penchalaiah via Hl7api-devel wrote: Hello Team, I am trying to receive a message from one our health device by using library (2.3 v). Getting following issue. I am not sure which version of Hapi Library do I need to use To get rid out of this error. Please help me on this issue.. 2020-11-20 13:01:03.230 ERROR 17384 --- [ hapi-worker-8] c.u.h.p.impl.ApplicationRouterImpl : Attempting to send error message to remote system. ca.uhn.hl7v2.HL7Exception: A datatype for OBX- must be specified in 5- . at ca.uhn.hl7v2.parser.FixFieldDataType.fix(FixFieldDataType.java:165) at ca.uhn.hl7v2.parser.FixFieldDataType.fixOBX5(FixFieldDataType.java:123) at ca.uhn.hl7v2.parser.PipeParser.parse(PipeParser.java:401) at ca.uhn.hl7v2.parser.PipeParser.parse(PipeParser.java:1169) at ca.uhn.hl7v2.parser.PipeParser.doParse(PipeParser.java:226) at ca.uhn.hl7v2.parser.GenericParser.doParse(GenericParser.java:245) at ca.uhn.hl7v2.parser.Parser.parse(Parser.java:212) at ca.uhn.hl7v2.parser.GenericParser.parse(GenericParser.java:253) at ca.uhn.hl7v2.protocol.impl.ApplicationRouterImpl.processMessage(ApplicationRouterImpl.java:138) at ca.uhn.hl7v2.protocol.impl.ApplicationRouterImpl.processMessage(ApplicationRouterImpl.java:105) at ca.uhn.hl7v2.app.Responder.processMessage(Responder.java:91) at ca.uhn.hl7v2.app.Receiver$Grunt.run(Receiver.java:127) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) ________________________________ Penchalaiah Dasari Office [http://bap.metagenics.com/metalogo.png]<http://www.metagenics.com> [http://bap.metagenics.com/metasig.png]<https://www.metagenics.com/immune-defense-pack> Disclaimer: This email, its electronic document attachments, and the contents of its website linkages may contain confidential information. This information is intended solely for the use by the individual or entity to whom it is addressed. If you have received this information in error, please notify the sender immediately and arrange for the prompt destruction of the material and any accompanying attachments. *This statement has not been evaluated by the Food and Drug Administration. This product is not intended to diagnose, treat, cure, or prevent any disease.
_______________________________________________ Hl7api-devel mailing list Hl7api-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hl7api-devel