Hi Daniel, Two obvious solutions jump out at me.
One, using the terser (as you mention) should be fairly easy. An example from code we use here is to pass it "/.PID-3(0)-1", then "/.PID-3(1)-1", then "/.PID-3(3)-1" to retrieve the various IDs in PID-3. One other option you might try is to subclass PipeParser and in your subclass, override the parse(String) method to have it replace all of the version strings with the most recent one you need (for instance have it replace the first instance of "2.1", "2.2", etc with "2.6"). That way your message will always be parsed as a 2.6 message. HL7 is designed to be backward compatible, so this should also work. Actually, thinking about this more (sorry for the rambling email!) an even better solution along the same vein would be to implement a custom ModelClassFactory that always returns 2.6 objects regardless of version and pass that to your pipe parser. Hopefully this gives you some ideas! Cheers, James On Thu, Jul 23, 2009 at 2:36 PM, Kamp, Daniel (GE Healthcare) < [email protected]> wrote: > Good afternoon, > I am trying to write a transformer which converts an HL7 message to a local > object graph. In doing so, I need to account for repeating fields. > > For example, PID-5 can have multiple names and we need to parse it out into > a List of PatientName objects (each PatientName object contains family name, > given name, and name type code). > > Since we need to support many versions of HL7 we can not use a specific v > 2.x model data types. Instead we are relying on the generic: > ca.uhn.hl7v2.model.Message > ca.uhn.hl7v2.util.Terser > to parse the message. > > I have had a difficult time finding simple examples of parsing repeating > fields using these generic classes. > > I realize if we used > ca.uhn.hl7v2.model.v25.message > it would be easier to do this, but we need to remain version agnostic. > > Can anyone assist me in a simple way to extract a repeating field as > mentioned above? > > Thank you in advance, > Dan > > Dan Kamp > GE Healthcare > Information Technologies - Global Engineering > Shared Asset Solutions > T (847) 277- 4327 > D *567-4327 > E [email protected] > www.gehealthcare.com <http://www.gehealthcare.com/> > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Hl7api-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > >
------------------------------------------------------------------------------
_______________________________________________ Hl7api-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hl7api-devel

