/** * gets a relative based on an NK1 segment * * @param nk1 an NK1 segment from the HL7 request * @return a matching Person or null if not found * @throws HL7Exception */ private Person getRelative(NK1 nk1) throws HL7Exception { // if there are no associated party identifiers, the person will not exist if (nk1.getNextOfKinAssociatedPartySIdentifiers().length < 1) { return null; } // find the related person via given IDs return Context.getHL7Service().resolvePersonFromIdentifiers(nk1.getNextOfKinAssociatedPartySIdentifiers()); }
/** * Returns a count of the current number of repetitions of Address (NK1-4). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getNk14_AddressReps() { return this.getReps(4); }
/** * Returns * NK1-1: "Set ID - NK1" - creates it if necessary */ public SI getSetIDNK1() { SI retVal = this.getTypedField(1, 0); return retVal; }
CX[] identifiers = nk1.getNextOfKinAssociatedPartySIdentifiers(); String uuid = getUuidFromIdentifiers(identifiers); if (Context.getPersonService().getPersonByUuid(uuid) != null) { for (XPN patientNameX : nk1.getNKName()) { PersonName name = new PersonName(); name.setFamilyName(patientNameX.getFamilyName().getSurname().getValue()); String gender = nk1.getAdministrativeSex().getValue(); if (gender == null) { throw new HL7Exception("Missing gender in an NK1 segment"); TS dateOfBirth = nk1.getDateTimeOfBirth(); if (dateOfBirth == null || dateOfBirth.getTime() == null || dateOfBirth.getTime().getValue() == null) { throw new HL7Exception("Missing birth date in an NK1 segment");
private void init(ModelClassFactory factory) { try { this.add(SI.class, true, 1, 4, new Object[]{ getMessage() }, "Set ID - NK1"); this.add(XPN.class, false, 0, 250, new Object[]{ getMessage() }, "NK Name"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Relationship"); this.add(XAD.class, false, 0, 250, new Object[]{ getMessage() }, "Address"); this.add(XTN.class, false, 0, 250, new Object[]{ getMessage() }, "Phone Number"); this.add(XTN.class, false, 0, 250, new Object[]{ getMessage() }, "Business Phone Number"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Contact Role"); this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "Start Date"); this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "End Date"); this.add(ST.class, false, 1, 60, new Object[]{ getMessage() }, "Next of Kin / Associated Parties Job Title"); this.add(JCC.class, false, 1, 20, new Object[]{ getMessage() }, "Next of Kin / Associated Parties Job Code/Class"); this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Next of Kin / Associated Parties Employee Number"); this.add(XON.class, false, 0, 250, new Object[]{ getMessage() }, "Organization Name - NK1"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Marital Status"); this.add(IS.class, false, 1, 1, new Object[]{ getMessage(), new Integer(1) }, "Administrative Sex"); this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Date/Time of Birth"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(223) }, "Living Dependency"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(9) }, "Ambulatory Status"); this.add(CE.class, false, 0, 250, new Object[]{ getMessage() }, "Citizenship"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Primary Language"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(220) }, "Living Arrangement"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Publicity Code"); this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(136) }, "Protection Indicator"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(231) }, "Student Indicator"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Religion"); this.add(XPN.class, false, 0, 250, new Object[]{ getMessage() }, "Mother's Maiden Name"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Nationality"); this.add(CE.class, false, 0, 250, new Object[]{ getMessage() }, "Ethnic Group");
/** * Creates a new NK1 segment */ public NK1(Group parent, ModelClassFactory factory) { super(parent, factory); init(factory); }
case 0: return new SI(getMessage()); case 1: return new XPN(getMessage()); case 2: return new CE(getMessage()); case 3: return new XAD(getMessage()); case 4: return new XTN(getMessage()); case 5: return new XTN(getMessage()); case 6: return new CE(getMessage()); case 7: return new DT(getMessage()); case 8: return new DT(getMessage()); case 9: return new ST(getMessage()); case 10: return new JCC(getMessage()); case 11: return new CX(getMessage()); case 12: return new XON(getMessage()); case 13: return new CE(getMessage()); case 14: return new IS(getMessage(), new Integer( 1 )); case 15: return new TS(getMessage()); case 16: return new IS(getMessage(), new Integer( 223 )); case 17: return new IS(getMessage(), new Integer( 9 )); case 18: return new CE(getMessage()); case 19: return new CE(getMessage()); case 20: return new IS(getMessage(), new Integer( 220 )); case 21: return new CE(getMessage()); case 22: return new ID(getMessage(), new Integer( 136 )); case 23: return new IS(getMessage(), new Integer( 231 )); case 24: return new CE(getMessage()); case 25: return new XPN(getMessage()); case 26: return new CE(getMessage()); case 27: return new CE(getMessage()); case 28: return new CE(getMessage());
String relCodingSystem = nk1.getRelationship().getNameOfCodingSystem().getValue(); if (!relCodingSystem.equals(HL7Constants.HL7_LOCAL_RELATIONSHIP)) { throw new HL7Exception(Context.getMessageSourceService().getMessage("ORUR01.error.relationshipCoding", String relIdentifier = nk1.getRelationship().getIdentifier().getValue();
private void init(ModelClassFactory factory) { try { this.add(SI.class, true, 1, 4, new Object[]{ getMessage() }, "Set ID - NK1"); this.add(XPN.class, false, 0, 250, new Object[]{ getMessage() }, "NK Name"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Relationship"); this.add(XAD.class, false, 0, 250, new Object[]{ getMessage() }, "Address"); this.add(XTN.class, false, 0, 250, new Object[]{ getMessage() }, "Phone Number"); this.add(XTN.class, false, 0, 250, new Object[]{ getMessage() }, "Business Phone Number"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Contact Role"); this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "Start Date"); this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "End Date"); this.add(ST.class, false, 1, 60, new Object[]{ getMessage() }, "Next of Kin / Associated Parties Job Title"); this.add(JCC.class, false, 1, 20, new Object[]{ getMessage() }, "Next of Kin / Associated Parties Job Code/Class"); this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Next of Kin / Associated Parties Employee Number"); this.add(XON.class, false, 0, 250, new Object[]{ getMessage() }, "Organization Name - NK1"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Marital Status"); this.add(IS.class, false, 1, 1, new Object[]{ getMessage(), new Integer(1) }, "Administrative Sex"); this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Date/Time of Birth"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(223) }, "Living Dependency"); this.add(IS.class, false, 0, 2, new Object[]{ getMessage(), new Integer(9) }, "Ambulatory Status"); this.add(CE.class, false, 0, 250, new Object[]{ getMessage() }, "Citizenship"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Primary Language"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(220) }, "Living Arrangement"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Publicity Code"); this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(136) }, "Protection Indicator"); this.add(IS.class, false, 1, 2, new Object[]{ getMessage(), new Integer(231) }, "Student Indicator"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Religion"); this.add(XPN.class, false, 0, 250, new Object[]{ getMessage() }, "Mother's Maiden Name"); this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Nationality"); this.add(CE.class, false, 0, 250, new Object[]{ getMessage() }, "Ethnic Group");
/** * Creates a new NK1 segment */ public NK1(Group parent, ModelClassFactory factory) { super(parent, factory); init(factory); }
case 0: return new SI(getMessage()); case 1: return new XPN(getMessage()); case 2: return new CE(getMessage()); case 3: return new XAD(getMessage()); case 4: return new XTN(getMessage()); case 5: return new XTN(getMessage()); case 6: return new CE(getMessage()); case 7: return new DT(getMessage()); case 8: return new DT(getMessage()); case 9: return new ST(getMessage()); case 10: return new JCC(getMessage()); case 11: return new CX(getMessage()); case 12: return new XON(getMessage()); case 13: return new CE(getMessage()); case 14: return new IS(getMessage(), new Integer( 1 )); case 15: return new TS(getMessage()); case 16: return new IS(getMessage(), new Integer( 223 )); case 17: return new IS(getMessage(), new Integer( 9 )); case 18: return new CE(getMessage()); case 19: return new CE(getMessage()); case 20: return new IS(getMessage(), new Integer( 220 )); case 21: return new CE(getMessage()); case 22: return new ID(getMessage(), new Integer( 136 )); case 23: return new IS(getMessage(), new Integer( 231 )); case 24: return new CE(getMessage()); case 25: return new XPN(getMessage()); case 26: return new CE(getMessage()); case 27: return new CE(getMessage()); case 28: return new CE(getMessage());
/** * Returns a count of the current number of repetitions of Business Phone Number (NK1-6). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getNk16_BusinessPhoneNumberReps() { return this.getReps(6); }
/** * Returns * NK1-1: "Set ID - NK1" - creates it if necessary */ public SI getNk11_SetIDNK1() { SI retVal = this.getTypedField(1, 0); return retVal; }
/** * @throws HL7Exception * @see HL7Service#getUuidFromIdentifiers(null) */ @Test public void getUuidFromIdentifiers_shouldNotFailIfNoAssigningAuthorityIsFound() throws HL7Exception { 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|||||||||||||||||5^^^^PT||||\r" + "PV1||O|1^Unknown Location||||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; List<NK1> nk1List = new ORUR01Handler().getNK1List(oru); CX[] identifiers = nk1List.get(0).getNextOfKinAssociatedPartySIdentifiers(); hl7service.getUuidFromIdentifiers(identifiers); }
/** * Returns a count of the current number of repetitions of Living Dependency (NK1-17). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getLivingDependencyReps() { return this.getReps(17); }
/** * Returns a specific repetition of * NK1-2: "NK Name" - creates it if necessary * * @param rep The repetition index (0-indexed) */ public XPN getNKName(int rep) { XPN retVal = this.getTypedField(2, rep); return retVal; }
/** * @throws HL7Exception * @see HL7Service#getUuidFromIdentifiers(null) */ @Test public void getUuidFromIdentifiers_shouldReturnNullIfNoUUIDFound() throws HL7Exception { 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|||||||||||||||||5^^^L^PN||||\r" + "PV1||O|1^Unknown Location||||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; List<NK1> nk1List = new ORUR01Handler().getNK1List(oru); CX[] identifiers = nk1List.get(0).getNextOfKinAssociatedPartySIdentifiers(); String result = hl7service.getUuidFromIdentifiers(identifiers); Assert.assertNull("should have returned null", result); }
/** * Returns a count of the current number of repetitions of Mother's Maiden Name (NK1-26). * This method does not create a repetition, so if no repetitions have currently been defined or accessed, * it will return zero. */ public int getMotherSMaidenNameReps() { return this.getReps(26); }
/** * Returns all repetitions of Phone Number (NK1-5). */ public XTN[] getPhoneNumber() { XTN[] retVal = this.getTypedField(5, new XTN[0]); return retVal; }
/** * @throws HL7Exception * @see HL7Service#getUuidFromIdentifiers(null) */ @Test public void getUuidFromIdentifiers_shouldNotFailIfMultipleSimilarUUIDsExistInIdentifiers() throws HL7Exception { 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|||||||||||||||||2178037d-f86b-4f12-8d8b-be3ebc220022^^^UUID^v4~2178037d-f86b-4f12-8d8b-be3ebc220022^^^UUID^v4||||\r" + "PV1||O|1^Unknown Location||||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; List<NK1> nk1List = new ORUR01Handler().getNK1List(oru); CX[] identifiers = nk1List.get(0).getNextOfKinAssociatedPartySIdentifiers(); String result = hl7service.getUuidFromIdentifiers(identifiers); Assert.assertEquals("2178037d-f86b-4f12-8d8b-be3ebc220022", result); }