Hi, I have received the next ORU^R01 message:

MSH|^~\&|MG|MG|LAB|LAB|20100127101236+0100||ORU^R01^ORU_R01|1234567890|P|2.5
PID|...
PV1|...
ORC|...
OBR|1|OP2|10101010|HEM^Hemograma^SISTEMA1|...
OBX|1|NM|HTIE^Hematíes^SISTEMA1||7.00|x10*6/uL|4.5 - 
5.9|HH|||F|||20100127095652
OBX|2|NM|HGB^Hemoglobina^SISTEMA1||567567.0|g/dL|13.0 - 
17.5|HH|||F|||20100127095652
OBX|3|NM|HTCO^Hematocrito^SISTEMA1||77.0|%|37.0 - 
53.0|HH|||F|||20100127095728
OBX|4|NM|VCM^VCM^SISTEMA1||67.0|fl|80.0 - 100.0|LL|||F|||20100127095728
SPM|1|9018000088||^SANGRE PERIFERICA||||||||||||||20100127095625||Y||||||1

In this message, the OBR Segment contains a Battery (HEM) and the tests 
have been added in OBX Segments.
In this case, the HEM Battery contains 4 tests (HTIE, HGB, HTCO and VCM).

I would like to know if this message is a Standard HL7 Message.
At the moment, I have only received tests in ORU^R01 messages.

In the next ORU^R01 message, I have received a test (CLC00500) with two 
results (OBX.1 and OBX.2 segments):

MSH|^~\&|MG|MG|FSM|FSM|20141105132023+0100||ORU^R01^ORU_R01|LAB31415190023385|P|2.5
PID|...
PV1|...
ORC|...
OBR|1|PA5999171|20000002|CLC00500^Pla--Glucosa; 
c.sust.(proc.)^SISTEMA1||||||CE||||||00010258960^ape1 ape2, 
nombre||||5||||LAB|F|||||||admin^20141105132022+0100
OBX|1|NM|CLC00500^Pla--Glucosa; 
c.sust.(proc.)^SISTEMA1||65|mg/dL||HH|||F|||20141105132022||admin|||20141105132022
OBX|2|ST|CLC00500^Pla--Glucosa; 
c.sust.(proc.)^SISTEMA1|1|POSITIVO|||||||||20141105132022||admin
SPM|1|0120000002||3^Suero||||||||||||||20141105132010||Y||||||1

How could I to know when the OBR Segment contains a Battery or a test?
My first idea is the next: if OBR.4.1 = OBX.3.1, then the OBR Segment 
contains a Test, else OBR Segment contains a Battery. But this is a bad 
solution :(

Help me!
Best Regards.
Rafael.




Rafael San Vidal Hidalgo - Dpto. Sistemas de Diagnóstico 
Tlf.: 914702104 (ext.158) - Fax: 915261867 
rsanvi...@fsoria.com - www.f-soria.es 

AVISO DE CONFIDENCIALIDAD 
La información contenida en este mensaje y archivos adjuntos es privada, 
confidencial y de uso exclusivo de la(s) persona(s) y entidad(es) a la(s) 
que va dirigido. Si Ud. no es el destinatario de esta información se le 
notifica que está expresamente prohibida la declaración, reproducción, 
distribución o la toma de cualquier acción basada en el contenido de esta 
comunicación. Si ha recibido este mensaje por error, le rogamos que nos lo 
comunique inmediatamente y proceda a eliminarlo de todos sus sistemas. 
Francisco Soria Melguizo, S.A. no asume responsabilidad legal por el 
contenido de esta comunicación, ni representa la opinión de la firma, 
salvo que expresamente se especifique lo contrario y que el remitente esté 
autorizado para hacerlo. Gracias. 




De:
Rafael San Vidal Hidalgo/GSORIA
Para:
Ian Vowles <ian.vow...@health.qld.gov.au>
cc:
"hl7api-devel@lists.sourceforge.net" <hl7api-devel@lists.sourceforge.net>
Fecha:
08/05/2014 09:36
Asunto:
RE: [HAPI-devel] Parse only Segment MSH


Thank you, Ian
I will develope your two options.

In the first option (using parser method with the first segment only), How 
do I get the first segment in XML Format? 
I would try to get the first segment  looking for the </MSH> value.
I will try the preparser option too, proposed by our partner James Agner. 

Best regards.
Rafael San Vidal.


Rafael San Vidal Hidalgo - Dpto. Sistemas de Diagnóstico 
Tlf.: 914702104 (ext.158) - Fax: 915261867 
rsanvi...@fsoria.com - www.f-soria.es 

AVISO DE CONFIDENCIALIDAD 
La información contenida en este mensaje y archivos adjuntos es privada, 
confidencial y de uso exclusivo de la(s) persona(s) y entidad(es) a la(s) 
que va dirigido. Si Ud. no es el destinatario de esta información se le 
notifica que está expresamente prohibida la declaración, reproducción, 
distribución o la toma de cualquier acción basada en el contenido de esta 
comunicación. Si ha recibido este mensaje por error, le rogamos que nos lo 
comunique inmediatamente y proceda a eliminarlo de todos sus sistemas. 
Francisco Soria Melguizo, S.A. no asume responsabilidad legal por el 
contenido de esta comunicación, ni representa la opinión de la firma, 
salvo que expresamente se especifique lo contrario y que el remitente esté 
autorizado para hacerlo. Gracias. 







RE: [HAPI-devel] Parse only Segment MSH

Ian Vowles 
para:
rsanvi...@fsoria.com, hl7api-devel@lists.sourceforge.net
Enviado: 08/05/2014 00:11
Recibido: 08/05/2014 09:10





Our team often finds itself wanting to deal with individual segments. 
Segment constructors still require something to base themselves on, so you 
seem to be required to do something like this:
 
    private static ADT_A01 parent;
.
.
.
        parent = new ADT_A01();
        parent.initQuickstart("ADT", "A01", "P");
        String message = 
"MSH|^~\\&|SENDING-APP|SENDING-FAC|RECEIVING-APP|RECEIVING-FAC|20140508111155|SECURITY|ADT^A08|MESSAGE-CONTROL-ID|P|2.4|||AL|AL|AUS|ASCII|ENG|\r"
                + "MORE SEGMENTS GO HERE IN A REAL MESSAGE\r";
        System.out.println("Message Control Id = " + getUID(message));
.
.
.
 
        /** 
         * Get MessageControlID 
         * @param mensaje 
         * @return MessageControlID 
         */ 
        public static String getUID(String mensaje) 
        {                 
                try 
                {
                    MSH msh = new 
MSH(parent,parent.getModelClassFactory());
                    if (mensaje.indexOf("\r") > 0) {
                      msh.parse(mensaje.substring(0, 
mensaje.indexOf("\r"))); 
                    }
                    return msh.getMessageControlID().getValue(); 
                }
                catch (HL7Exception e) {}         
                return null; 
        }
 
If anyone can show a simpler way to create a segment from scratch, that 
would be most helpful.
 
To just get amongst the MSH you could go for all string manipulation, but 
you have to worry about the standard. You could do something like this:
 
        /** 
         * Get MessageControlID 
         * @param mensaje 
         * @return MessageControlID 
         */ 
        public static String getUIDNoHapi(String mensaje) 
        {                 
            if (mensaje != null && mensaje.length() > 4 && 
mensaje.startsWith("MSH") && mensaje.indexOf("\r") > 0) {
                String msh = mensaje.substring(0, mensaje.indexOf("\r"));
                String fieldDel = mshsubstring(3, 4);
                if ("|".equals(fieldDel)) {
                    fieldDel = "\\|";
                }
                String[] mshFields = msh.split(fieldDel);
                return mshFields[9];
            }   
            return null; 
        }
 
 
There are traps in this code if people start using non standard delimiters 
or send you very bad content. The HAPI library is a much better to help 
you avoid such trouble.
 
Thanks
Ian
 
From: rsanvi...@fsoria.com [mailto:rsanvi...@fsoria.com] 
Sent: Wednesday, 7 May 2014 6:22 PM
To: Ian Vowles; hl7api-devel@lists.sourceforge.net
Subject: [HAPI-devel] Parse only Segment MSH
 

Hi, 
In our source code, we parse the full message (from string data) to get 
the MessageControlID value. 
How can I get the MessageControlID value without parsing the full message 
(Example: parsing only the MSH Segment)? 

Note: I attach the "getUID" method to get this value. 
Best regards. 
Rafael. 


        import ca.uhn.hl7v2.model.Message; 
        import ca.uhn.hl7v2.model.v25.segment.MSH; 

        /** 
         * Get MessageControlID 
         * @param mensaje 
         * @return MessageControlID 
         */ 
        public static String getUID(String mensaje) 
        {                 
                try 
                { 
                        Parser parseador = new GenericParser(); 
                        parseador.setValidationContext(new NoValidation())
; 

                        Message mensajeHAPI = parseador.parse(mensaje); 

                        MSH segmentoHAPI_MSH = (MSH) 
mensajeHAPI.get(Parametros.MSH); 
                        return 
segmentoHAPI_MSH.getMessageControlID().getValue(); 
                } 
                catch (Exception e) {}         
                return null; 
        } 



Rafael San Vidal Hidalgo - Dpto. Sistemas de Diagnóstico 
Tlf.: 914702104 (ext.158) - Fax: 915261867 
rsanvi...@fsoria.com - www.f-soria.es 

AVISO DE CONFIDENCIALIDAD 
 

La información contenida en este mensaje y archivos adjuntos es privada, 
confidencial y de uso exclusivo de la(s) persona(s) y entidad(es) a la(s) 
que va dirigido. Si Ud. no es el destinatario de esta información se le 
notifica que está expresamente prohibida la declaración, reproducción, 
distribución o la toma de cualquier acción basada en el contenido de esta 
comunicación. Si ha recibido este mensaje por error, le rogamos que nos lo 
comunique inmediatamente y proceda a eliminarlo de todos sus sistemas. 
Francisco Soria Melguizo, S.A. no asume responsabilidad legal por el 
contenido de esta comunicación, ni representa la opinión de la firma, 
salvo que expresamente se especifique lo contrario y que el remitente esté 
autorizado para hacerlo. Gracias. 
********************************************************************************
This email, including any attachments sent with it, is confidential and 
for the sole use of the intended recipient(s). This confidentiality is not 
waived or lost, if you receive it and you are not the intended 
recipient(s), or if it is transmitted/received in error.
Any unauthorised use, alteration, disclosure, distribution or review of 
this email is strictly prohibited. The information contained in this 
email, including any attachment sent with it, may be subject to a 
statutory duty of confidentiality if it relates to health service matters.
If you are not the intended recipient(s), or if you have received this 
email in error, you are asked to immediately notify the sender by 
telephone collect on Australia +61 1800 198 175 or by return email. You 
should also delete this email, and any copies, from your computer system 
network and destroy any hard copies produced.
If not an intended recipient of this email, you must not copy, distribute 
or take any action(s) that relies on it; any form of disclosure, 
modification, distribution and/or publication of this email is also 
prohibited.
Although Queensland Health takes all reasonable steps to ensure this email 
does not contain malicious software, Queensland Health does not accept 
responsibility for the consequences if any person's computer inadvertently 
suffers any disruption to services, loss of information, harm or is 
infected with a virus, other malicious computer programme or code that may 
occur as a consequence of receiving this email.
Unless stated otherwise, this email represents only the views of the 
sender and not the views of the Queensland Government.
**********************************************************************************
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
Hl7api-devel mailing list
Hl7api-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to