private Location getLocation(PV1 pv1) throws HL7Exception { PL hl7Location = pv1.getAssignedPatientLocation(); Integer locationId = Context.getHL7Service().resolveLocationId(hl7Location); if (locationId == null) { throw new HL7Exception(Context.getMessageSourceService().getMessage("ORUR01.error.UnresolvedLocation")); } return Context.getLocationService().getLocation(locationId); }
private Date getEncounterDate(PV1 pv1) throws HL7Exception { return tsToDate(pv1.getAdmitDateTime()); }
private Provider getProvider(PV1 pv1) throws HL7Exception { XCN hl7Provider = pv1.getAttendingDoctor(0); Provider provider = null; String id = hl7Provider.getIDNumber().getValue();
/** * Returns a count of the current number of repetitions of Referring Doctor (PV1-8). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getPv18_ReferringDoctorReps() { return this.getReps(8); }
/** * Returns * PV1-2: "Patient Class" - creates it if necessary */ public IS getPatientClass() { IS retVal = this.getTypedField(2, 0); return retVal; }
private void init(ModelClassFactory factory) { try { this.add(SI.class, false, 1, 4, new Object[]{ getMessage() }, "Set ID - PV1"); this.add(IS.class, true, 1, 1, new Object[]{ getMessage(), new Integer(4) }, "Patient Class"); this.add(PL.class, false, 1, 80, new Object[]{ getMessage() }, "Assigned Patient Location"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(7) }, "Admission Type"); this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Preadmit Number"); this.add(PL.class, false, 1, 80, new Object[]{ getMessage() }, "Prior Patient Location"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Attending Doctor"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Referring Doctor"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Consulting Doctor"); this.add(IS.class, false, 1, 3, new Object[]{ getMessage(), new Integer(69) }, "Hospital Service"); this.add(PL.class, false, 1, 80, new Object[]{ getMessage() }, "Temporary Location"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(87) }, "Preadmit Test Indicator"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(92) }, "Re-admission Indicator"); this.add(IS.class, false, 1, 6, new Object[]{ getMessage(), new Integer(23) }, "Admit Source"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(9) }, "Ambulatory Status"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(99) }, "VIP Indicator"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Admitting Doctor"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(18) }, "Patient Type"); this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Visit Number"); this.add(FC.class, false, 0, 50, new Object[]{ getMessage() }, "Financial Class"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(32) }, "Charge Price Indicator"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(45) }, "Courtesy Code"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(46) }, "Credit Rating"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(44) }, "Contract Code"); this.add(DT.class, false, 0, 8, new Object[]{ getMessage() }, "Contract Effective Date"); this.add(NM.class, false, 0, 12, new Object[]{ getMessage() }, "Contract Amount"); this.add(NM.class, false, 0, 3, new Object[]{ getMessage() }, "Contract Period"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(73) }, "Interest Code");
/** * Creates a new PV1 segment */ public PV1(Group parent, ModelClassFactory factory) { super(parent, factory); init(factory); }
case 0: return new SI(getMessage()); case 1: return new IS(getMessage(), new Integer( 4 )); case 2: return new PL(getMessage()); case 3: return new IS(getMessage(), new Integer( 7 )); case 4: return new CX(getMessage()); case 5: return new PL(getMessage()); case 6: return new XCN(getMessage()); case 7: return new XCN(getMessage()); case 8: return new XCN(getMessage()); case 9: return new IS(getMessage(), new Integer( 69 )); case 10: return new PL(getMessage()); case 11: return new IS(getMessage(), new Integer( 87 )); case 12: return new IS(getMessage(), new Integer( 92 )); case 13: return new IS(getMessage(), new Integer( 23 )); case 14: return new IS(getMessage(), new Integer( 9 )); case 15: return new IS(getMessage(), new Integer( 99 )); case 16: return new XCN(getMessage()); case 17: return new IS(getMessage(), new Integer( 18 )); case 18: return new CX(getMessage()); case 19: return new FC(getMessage()); case 20: return new IS(getMessage(), new Integer( 32 )); case 21: return new IS(getMessage(), new Integer( 45 )); case 22: return new IS(getMessage(), new Integer( 46 )); case 23: return new IS(getMessage(), new Integer( 44 )); case 24: return new DT(getMessage()); case 25: return new NM(getMessage()); case 26: return new NM(getMessage()); case 27: return new IS(getMessage(), new Integer( 73 )); case 28: return new IS(getMessage(), new Integer( 110 ));
log.debug("Checking for discharge to location"); DLD dld = pv1.getDischargedToLocation(); log.debug("DLD = " + dld); if (dld == null) {
CX visitNumber = pv1.getVisitNumber(); Integer encounterId = null; try {
/** * Returns a count of the current number of repetitions of Contract Code (PV1-24). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getContractCodeReps() { return this.getReps(24); }
/** * Returns * PV1-6: "Prior Patient Location" - creates it if necessary */ public PL getPriorPatientLocation() { PL retVal = this.getTypedField(6, 0); return retVal; }
private void init(ModelClassFactory factory) { try { this.add(SI.class, false, 1, 4, new Object[]{ getMessage() }, "Set ID - PV1"); this.add(IS.class, true, 1, 1, new Object[]{ getMessage(), new Integer(4) }, "Patient Class"); this.add(PL.class, false, 1, 80, new Object[]{ getMessage() }, "Assigned Patient Location"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(7) }, "Admission Type"); this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Preadmit Number"); this.add(PL.class, false, 1, 80, new Object[]{ getMessage() }, "Prior Patient Location"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Attending Doctor"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Referring Doctor"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Consulting Doctor"); this.add(IS.class, false, 1, 3, new Object[]{ getMessage(), new Integer(69) }, "Hospital Service"); this.add(PL.class, false, 1, 80, new Object[]{ getMessage() }, "Temporary Location"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(87) }, "Preadmit Test Indicator"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(92) }, "Re-admission Indicator"); this.add(IS.class, false, 1, 6, new Object[]{ getMessage(), new Integer(23) }, "Admit Source"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(9) }, "Ambulatory Status"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(99) }, "VIP Indicator"); this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Admitting Doctor"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(18) }, "Patient Type"); this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Visit Number"); this.add(FC.class, false, 0, 50, new Object[]{ getMessage() }, "Financial Class"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(32) }, "Charge Price Indicator"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(45) }, "Courtesy Code"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(46) }, "Credit Rating"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(44) }, "Contract Code"); this.add(DT.class, false, 0, 8, new Object[]{ getMessage() }, "Contract Effective Date"); this.add(NM.class, false, 0, 12, new Object[]{ getMessage() }, "Contract Amount"); this.add(NM.class, false, 0, 3, new Object[]{ getMessage() }, "Contract Period"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(73) }, "Interest Code");
/** * Creates a new PV1 segment */ public PV1(Group parent, ModelClassFactory factory) { super(parent, factory); init(factory); }
case 0: return new SI(getMessage()); case 1: return new IS(getMessage(), new Integer( 4 )); case 2: return new PL(getMessage()); case 3: return new IS(getMessage(), new Integer( 7 )); case 4: return new CX(getMessage()); case 5: return new PL(getMessage()); case 6: return new XCN(getMessage()); case 7: return new XCN(getMessage()); case 8: return new XCN(getMessage()); case 9: return new IS(getMessage(), new Integer( 69 )); case 10: return new PL(getMessage()); case 11: return new IS(getMessage(), new Integer( 87 )); case 12: return new IS(getMessage(), new Integer( 92 )); case 13: return new IS(getMessage(), new Integer( 23 )); case 14: return new IS(getMessage(), new Integer( 9 )); case 15: return new IS(getMessage(), new Integer( 99 )); case 16: return new XCN(getMessage()); case 17: return new IS(getMessage(), new Integer( 18 )); case 18: return new CX(getMessage()); case 19: return new FC(getMessage()); case 20: return new IS(getMessage(), new Integer( 32 )); case 21: return new IS(getMessage(), new Integer( 45 )); case 22: return new IS(getMessage(), new Integer( 46 )); case 23: return new IS(getMessage(), new Integer( 44 )); case 24: return new DT(getMessage()); case 25: return new NM(getMessage()); case 26: return new NM(getMessage()); case 27: return new IS(getMessage(), new Integer( 73 )); case 28: return new IS(getMessage(), new Integer( 110 ));
/** * Returns a count of the current number of repetitions of Contract Amount (PV1-26). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getPv126_ContractAmountReps() { return this.getReps(26); }
/** * Returns * PV1-6: "Prior Patient Location" - creates it if necessary */ public PL getPv16_PriorPatientLocation() { PL retVal = this.getTypedField(6, 0); return retVal; }
/** * @throws HL7Exception * @see HL7Service#resolveLocationId(ca.uhn.hl7v2.model.v25.datatype.PL) */ @Test public void resolveLocationId_shouldReturnInternalIdentifierOfLocationIfOnlyLocationIdIsSpecified() throws HL7Exception { executeDataSet("org/openmrs/hl7/include/ORUTest-initialData.xml"); HL7Service hl7service = Context.getHL7Service(); Message message = hl7service .parseHL7String("MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20080226102656||ORU^R01|JqnfhKKtouEz8kzTk6Zo|P|2.5|1||||||||16^AMRS.ELD.FORMID\r" + "PID|||3^^^^||John3^Doe^||\r" + "NK1|1|Hornblower^Horatio^L|2B^Sibling^99REL||||||||||||M|19410501|||||||||||||||||1000^^^L^PN||||\r" + "PV1||O|1^0^0^0&Test Location&0||||1^Super User (1-8)|||||||||||||||||||||||||||||||||||||20080212|||||||V\r" + "ORC|RE||||||||20080226102537|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT\r" + "OBX|1|NM|5497^CD4, BY FACS^99DCT||450|||||||||20080206\r" + "OBX|2|DT|5096^RETURN VISIT DATE^99DCT||20080229|||||||||20080212"); ORU_R01 oru = (ORU_R01) message; PV1 pv1 = oru.getPATIENT_RESULT().getPATIENT().getVISIT().getPV1(); Assert.assertNotNull("PV1 parsed as null", pv1); PL hl7Location = pv1.getAssignedPatientLocation(); Integer locationId = hl7service.resolveLocationId(hl7Location); Assert.assertEquals("Resolved and given locationId shoud be equals", Integer.valueOf(1), locationId); }
/** * Returns a count of the current number of repetitions of Discharge Date/Time (PV1-45). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getDischargeDateTimeReps() { return this.getReps(45); }
/** * Returns all repetitions of Referring Doctor (PV1-8). */ public XCN[] getReferringDoctor() { XCN[] retVal = this.getTypedField(8, new XCN[0]); return retVal; }