Menu

#248 Bypass HL7 data type exceptions on creating a new message

2.3
open
1
2018-04-29
2018-04-29
No

Hi, I am using HAPI 2.8.1 version.
I have been getting an HAPI HL7 exception while creating a FT1-22-1 segment which says :

"ca.uhn.hl7v2.model.DataTypeException: ca.uhn.hl7v2.validation.ValidationException: Validation failed: Primitive value '10m' requires to be empty or a number with optional decimal digits
at ca.uhn.hl7v2.model.AbstractPrimitive.setValue(AbstractPrimitive.java:97)"

This is a legitimate error as field number FT1-22-1 only supports numeric values, but I need to bypass this HAPI error and set the value to a alphanumeric value as per project requirement. How do I bypass this error and make HAPI understand to by pass all HL7 Data Type Exceptions?

The following is the code snippet which throws the error while creating the HAPI message DFT_P03

    public static void main(String args[])
    { DFT_P03 adt= new DFT_P03();
    try {
        adt.initQuickstart("DFT", "P03", "P");

    MSH mshSegment=adt.getMSH();
     FT1 finSegment=adt.getFINANCIAL(0).getFT1();

     finSegment.getFt122_UnitCost().getPrice().getQuantity()
        .setValue("10m");
finSegment.getFt122_UnitCost().getPriceType()
        .setValue("1");
finSegment.getFt122_UnitCost().getFromValue()
        .setValue("1");
finSegment.getFt122_UnitCost().getToValue()
        .setValue("1");
finSegment.getFt122_UnitCost().getRangeUnits().getText()
        .setValue("1");
finSegment.getFt122_UnitCost().getRangeType()
        .setValue("1");
        HapiContext context = new DefaultHapiContext();

        Parser parser = context.getPipeParser();
        String encodedMessage = parser.encode(adt);
        PipeParser pipeParser = new PipeParser();
        Message message = pipeParser.parse(encodedMessage);

     Terser terser = new Terser(message);
        message.addNonstandardSegment("ZPV");
        message.addNonstandardSegment("ZIN");
        terser.set("/.ZIN-1","1");
        terser.set("/ZIN-22-1","Z-Segment-1ZIN");
        terser.set("/ZIN(1)-1","2");
        terser.set("/ZIN(1)-22-6","Z-Segment-2ZIN");
        terser.set("/.ZPV(1)-1","1");
        terser.set("/ZPV(1)-2","Z-Segment-1ZPV");

        System.out.println(message.encode());

        //return encodedMessage;
    } catch (HL7Exception e) {
        System.out.println("ok");
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }

Discussion


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.