/** * CD = WVI, WVS,...<br> * WVI = NM, ST */ @Test public void testObx5WithExpectedComponentExpectedSubcomponent() throws HL7Exception { // Message is stripped down String msgString = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||CD|||F1C1&F1C2\r"; ORU_R01 msg = new ORU_R01(); msg.setParser(new PipeParser(new DefaultHapiContext(ValidationContextFactory.noValidation()))); msg.parse(msgString); String encode = msg.encode(); ourLog.debug("\n\n" + encode); Varies observationValue = msg.getPATIENT_RESULT(0) .getORDER_OBSERVATION(0) .getOBSERVATION() .getOBX() .getObx5_ObservationValue(0); CD obx5 = (CD) observationValue.getData(); assertEquals("F1C1", obx5.getCd1_ChannelIdentifier().getWvi1_ChannelNumber().getValue()); assertEquals("F1C2", obx5.getCd1_ChannelIdentifier().getWvi2_ChannelName().getValue()); assertEquals(msgString.trim(), encode.trim()); }
/** AD = ST, ST,... */ @Test public void testObx5WithExpectedComponentExpectedComponent() throws HL7Exception { // Message is stripped down String msgString = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||AD|||F1C1^F2C1\r"; ORU_R01 msg = new ORU_R01(); msg.parse(msgString); String encode = msg.encode(); ourLog.debug("\n\n" + encode); Varies observationValue = msg.getPATIENT_RESULT(0) .getORDER_OBSERVATION(0) .getOBSERVATION() .getOBX() .getObx5_ObservationValue(0); AD obx5 = (AD) observationValue.getData(); assertEquals("F1C1", obx5.getAd1_StreetAddress().getValue()); assertEquals("F2C1", obx5.getAd2_OtherDesignation().getValue()); assertEquals(msgString.trim(), encode.trim()); }
@Test public void testObx5WithExpectedComponentUnpexpectedSubcomponentWithinPrimitive2() throws HL7Exception { // Message is stripped down String msgString = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||ST|||F1C1&F1C2\r"; ORU_R01 msg = new ORU_R01(); msg.getParser().getParserConfiguration().setEscapeSubcomponentDelimiterInPrimitive(true); msg.parse(msgString); String encode = msg.encode(); ourLog.debug("\n\n" + encode); Varies observationValue = msg.getPATIENT_RESULT(0) .getORDER_OBSERVATION(0) .getOBSERVATION() .getOBX() .getObx5_ObservationValue(0); ST obx5 = (ST) observationValue.getData(); assertEquals("F1C1&F1C2", obx5.getValue()); String expected = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||ST|||F1C1\\T\\F1C2\r"; assertEquals(expected.trim(), encode.trim()); }
/** AD = ST, ST,... */ @Test public void testObx5WithExpectedComponentUnpexpectedSubcomponentWithinPrimitive() throws HL7Exception { // Message is stripped down String msgString = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||ST|||F1C1&F1C2\r"; System.setProperty(Varies.ESCAPE_SUBCOMPONENT_DELIM_IN_PRIMITIVE, "TRUE"); ORU_R01 msg = new ORU_R01(); msg.parse(msgString); String encode = msg.encode(); ourLog.debug("\n\n" + encode); Varies observationValue = msg.getPATIENT_RESULT(0) .getORDER_OBSERVATION(0) .getOBSERVATION() .getOBX() .getObx5_ObservationValue(0); ST obx5 = (ST) observationValue.getData(); assertEquals("F1C1&F1C2", obx5.getValue()); String expected = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||ST|||F1C1\\T\\F1C2\r"; assertEquals(expected.trim(), encode.trim()); }
/** Checking a problem that was reported by email */ @Test public void testMultipleValuesInObx5() throws HL7Exception, IOException { ORU_R01 msg = new ORU_R01(); msg.initQuickstart("ORU", "R01", "T"); String input = "OBX|10|FT|2239^Opm." + "fundus^L^OPFU^FUFOFA||TEKST\\\\E\\\\.br\\\\E\\\\Unclear; niet te" + "beoordelen.&line 2&line 3|\\\"\\\"|\\\"\\\"|\\\"\\\"|||F"; OBX obx = msg.getPATIENT_RESULT().getORDER_OBSERVATION().getOBSERVATION().getOBX(); obx.parse(input); String encoded = obx.encode(); ourLog.debug("Encoded: \n{}", encoded); }
/** * This is from a reported message that was kind of malformed to begin with, but became more * malformed in processing. * * <p>Parse method should clear all existing data including extra components. */ @Test public void testVariesParseMethodClearsExistingExtraComponents() throws HL7Exception { // Message is stripped down String msgString = "MSH|^~\\&\r" // - + "OBR|\r" // - + "OBX||FN|||OF1C1^OF2C1&OF2C2\r"; ORU_R01 msg = new ORU_R01(); msg.parse(msgString); OBX obx = msg.getPATIENT_RESULT().getORDER_OBSERVATION().getOBSERVATION().getOBX(); Varies varies = obx.getObx5_ObservationValue(0); varies.parse("NF1^NF2"); String encode = msg.encode(); ourLog.debug("\n\n" + encode); assertEquals("NF1^NF2", varies.encode()); }