Search in sources :

Example 96 with Patient

use of org.openmrs.Patient in project openmrs-core by openmrs.

the class ORUR01HandlerTest method processNK1_shouldFailIfTheCodingSystemIsNot99REL.

/**
 * @see ORUR01Handler#processNK1(Patient,NK1)
 */
@Test(expected = HL7Exception.class)
public void processNK1_shouldFailIfTheCodingSystemIsNot99REL() throws Exception {
    // process a message with an invalid coding system
    // the patient that is the focus of
    Patient patient = new Patient(3);
    // this hl7 message
    String hl7String = "MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20090728170332||ORU^R01|gu99yBh4loLX2mh9cHaV|P|2.5|1||||||||4^AMRS.ELD.FORMID\r" + "PID|||3^^^^||Beren^John^Bondo||\r" + "NK1|1|Jones^Jane^Lee^^RN|3A^Parent^ACKFOO||||||||||||F|19751016|||||||||||||||||2^^^L^PI\r" + "PV1||O|1^Unknown||||1^Super User (admin)|||||||||||||||||||||||||||||||||||||20090714|||||||V\r" + "ORC|RE||||||||20090728165937|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT\r" + "OBX|2|NM|5497^CD4 COUNT^99DCT||123|||||||||20090714\r" + "OBR|3|||23^FOOD CONSTRUCT^99DCT\r" + "OBX|1|CWE|21^FOOD ASSISTANCE FOR ENTIRE FAMILY^99DCT||22^UNKNOWN^99DCT^2471^UNKNOWN^99NAM|||||||||20090714";
    ORUR01Handler oruHandler = new ORUR01Handler();
    Message hl7message = parser.parse(hl7String);
    ORU_R01 oru = (ORU_R01) hl7message;
    List<NK1> nk1List = oruHandler.getNK1List(oru);
    for (NK1 nk1 : nk1List) oruHandler.processNK1(patient, nk1);
}
Also used : Message(ca.uhn.hl7v2.model.Message) ORU_R01(ca.uhn.hl7v2.model.v25.message.ORU_R01) NK1(ca.uhn.hl7v2.model.v25.segment.NK1) Patient(org.openmrs.Patient) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Example 97 with Patient

use of org.openmrs.Patient in project openmrs-core by openmrs.

the class ORUR01HandlerTest method processMessage_shouldUnderstandFormUuidIfPresent.

/**
 * @see ORUR01Handler#processMessage(Message)
 */
@Test
public void processMessage_shouldUnderstandFormUuidIfPresent() throws Exception {
    // save original encounter count
    List<Encounter> encounters = Context.getEncounterService().getEncountersByPatient(new Patient(3));
    Integer originalEncounters = encounters.size();
    // process message
    String hl7String = "MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20090728170332||ORU^R01|gu99yBh4loLX2mh9cHaV|P|2.5|1||||||||d9218f76-6c39-45f4-8efa-4c5c6c199f50^AMRS.ELD.FORMUUID\r" + "PID|||3^^^^||Beren^John^Bondo||\r" + "PV1||O|1^Unknown||||1^Super User (admin)|||||||||||||||||||||||||||||||||||||20090714|||||||V\r" + "ORC|RE||||||||20090728165937|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT\r" + "OBX|2|NM|5497^CD4 COUNT^99DCT||123|||||||||20090714";
    Message hl7message = parser.parse(hl7String);
    router.processMessage(hl7message);
    // make sure an encounter was added
    encounters = Context.getEncounterService().getEncountersByPatient(new Patient(3));
    Assert.assertEquals(originalEncounters + 1, encounters.size());
    // get last encounter
    Encounter enc = encounters.get(encounters.size() - 1);
    // check the form uuid
    Form form = enc.getForm();
    Assert.assertEquals("d9218f76-6c39-45f4-8efa-4c5c6c199f50", form.getUuid());
}
Also used : Message(ca.uhn.hl7v2.model.Message) Form(org.openmrs.Form) Encounter(org.openmrs.Encounter) Patient(org.openmrs.Patient) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Example 98 with Patient

use of org.openmrs.Patient in project openmrs-core by openmrs.

the class ORUR01HandlerTest method processMessage_shouldAppendToAnExistingEncounter.

/**
 * If an hl7 message contains a "visit number" pv1-19 value, then assume its an encounter_id and
 * that information in the hl7 message should be appended to that encounter.
 *
 * @see ORUR01Handler#processMessage(Message)
 */
@Test
public void processMessage_shouldAppendToAnExistingEncounter() throws Exception {
    // there should be an encounter with encounter_id == 3 for this test
    // to append to
    assertNotNull(Context.getEncounterService().getEncounter(3));
    String hl7string = "MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20080902151831||ORU^R01|yow3LEP6bycnLfoPyI31|P|2.5|1||||||||3^AMRS.ELD.FORMID\r" + "PID|||7^^^^||Indakasi^Testarius^Ambote||\r" + "PV1||O|1||||1^Super User (1-8)||||||||||||3|||||||||||||||||||||||||20080831|||||||V\r" + "ORC|RE||||||||20080902150000|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT\r" + "OBX|1|NM|10^CD4 COUNT^99DCT||250|||||||||20080831";
    Message hl7message = parser.parse(hl7string);
    router.processMessage(hl7message);
    Patient patient = new Patient(7);
    Concept question = new Concept(10);
    // check that the CD4 count obs in the hl7 message was appended to the
    // encounter with encounter_id == 3 and _not_ put into a new encounter
    // that has encounter_id == (autoincremented value)
    List<Obs> obsForPatient = Context.getObsService().getObservationsByPersonAndConcept(patient, question);
    // there should be 1 obs now for
    assertEquals(1, obsForPatient.size());
    // this patient
    assertEquals(3, obsForPatient.get(0).getEncounter().getId().intValue());
}
Also used : Concept(org.openmrs.Concept) Obs(org.openmrs.Obs) Message(ca.uhn.hl7v2.model.Message) Patient(org.openmrs.Patient) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Example 99 with Patient

use of org.openmrs.Patient in project openmrs-core by openmrs.

the class ORUR01HandlerTest method processORU_R01_shouldProcessMultipleNK1Segments.

/**
 * @see ORUR01Handler#processORU_R01(ORU_R01)
 */
@Test
public void processORU_R01_shouldProcessMultipleNK1Segments() throws Exception {
    PersonService personService = Context.getPersonService();
    // the patient that is the focus of
    Patient patient = new Patient(3);
    // this hl7 message
    // the patient that is related to
    Patient relative = new Patient(2);
    // patientA
    // create a relationship in the database
    Relationship newRel = new Relationship();
    newRel.setRelationshipType(new RelationshipType(3));
    newRel.setPersonA(relative);
    newRel.setPersonB(patient);
    personService.saveRelationship(newRel);
    // verify relationship exists
    Assert.assertEquals(1, personService.getRelationships(relative, patient, new RelationshipType(3)).size());
    // process a new message with multiple NK1 segments
    // this one defines patientB as patientA's Sibling and Patient
    String hl7String = "MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20090728170333||ORU^R01|gu99yBh4loLX2mh9cHaV|P|2.5|1||||||||4^AMRS.ELD.FORMID\r" + "PID|||3^^^^||Beren^John^Bondo||\r" + "NK1|1|Jones^Jane^Lee^^RN|2A^Sibling^99REL||||||||||||F|19751016|||||||||||||||||2^^^L^PI\r" + "NK1|2|Jones^Jane^Lee^^RN|1B^Patient^99REL||||||||||||F|19751016|||||||||||||||||2^^^L^PI\r" + "PV1||O|1^Unknown||||1^Super User (admin)|||||||||||||||||||||||||||||||||||||20090714|||||||V\r" + "ORC|RE||||||||20090728165937|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT\r" + "OBX|2|NM|5497^CD4 COUNT^99DCT||123|||||||||20090714\r" + "OBR|3|||23^FOOD CONSTRUCT^99DCT\r" + "OBX|1|CWE|21^FOOD ASSISTANCE FOR ENTIRE FAMILY^99DCT||22^UNKNOWN^99DCT^2471^UNKNOWN^99NAM|||||||||20090714";
    Message hl7message = parser.parse(hl7String);
    router.processMessage(hl7message);
    // verify existing relationship
    List<Relationship> rels = personService.getRelationships(relative, patient, new RelationshipType(3));
    Assert.assertTrue("existing relationship was not retained", !rels.isEmpty() && rels.size() == 1);
    // verify first new relationship
    rels = personService.getRelationships(patient, relative, new RelationshipType(2));
    Assert.assertTrue("first new relationship was not created", !rels.isEmpty() && rels.size() == 1);
    // verify second new relationship
    rels = personService.getRelationships(patient, relative, new RelationshipType(1));
    Assert.assertTrue("second new relationship was not created", !rels.isEmpty() && rels.size() == 1);
}
Also used : Message(ca.uhn.hl7v2.model.Message) PersonService(org.openmrs.api.PersonService) Relationship(org.openmrs.Relationship) RelationshipType(org.openmrs.RelationshipType) Patient(org.openmrs.Patient) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Example 100 with Patient

use of org.openmrs.Patient in project openmrs-core by openmrs.

the class ORUR01HandlerTest method processNK1_shouldNotCreateARelationshipIfOneExists.

/**
 * @see ORUR01Handler#processNK1(Patient,NK1)
 */
@Test
public void processNK1_shouldNotCreateARelationshipIfOneExists() throws Exception {
    PersonService personService = Context.getPersonService();
    // the patient that is the focus of
    Patient patient = new Patient(3);
    // this hl7 message
    // the patient that is related to
    Patient relative = new Patient(2);
    // patientA
    // create a relationship in the database
    Relationship rel = new Relationship();
    rel.setRelationshipType(new RelationshipType(3));
    rel.setPersonA(relative);
    rel.setPersonB(patient);
    personService.saveRelationship(rel);
    // verify relationship exists
    Assert.assertEquals(1, personService.getRelationships(relative, patient, new RelationshipType(3)).size());
    // process a message with a single NK1 segment
    // defines relative as patient's Parent
    String hl7String = "MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20090728170332||ORU^R01|gu99yBh4loLX2mh9cHaV|P|2.5|1||||||||4^AMRS.ELD.FORMID\r" + "PID|||3^^^^||Beren^John^Bondo||\r" + "NK1|1|Jones^Jane^Lee^^RN|3A^Parent^99REL||||||||||||F|19751016|||||||||||||||||2^^^L^PI\r" + "PV1||O|1^Unknown||||1^Super User (admin)|||||||||||||||||||||||||||||||||||||20090714|||||||V\r" + "ORC|RE||||||||20090728165937|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT\r" + "OBX|2|NM|5497^CD4 COUNT^99DCT||123|||||||||20090714\r" + "OBR|3|||23^FOOD CONSTRUCT^99DCT\r" + "OBX|1|CWE|21^FOOD ASSISTANCE FOR ENTIRE FAMILY^99DCT||22^UNKNOWN^99DCT^2471^UNKNOWN^99NAM|||||||||20090714";
    ORUR01Handler oruHandler = new ORUR01Handler();
    Message hl7message = parser.parse(hl7String);
    ORU_R01 oru = (ORU_R01) hl7message;
    List<NK1> nk1List = oruHandler.getNK1List(oru);
    for (NK1 nk1 : nk1List) oruHandler.processNK1(patient, nk1);
    // verify existing relationship
    List<Relationship> rels = personService.getRelationships(relative, patient, new RelationshipType(3));
    Assert.assertTrue("existing relationship was not retained", !rels.isEmpty() && rels.size() == 1);
}
Also used : Message(ca.uhn.hl7v2.model.Message) ORU_R01(ca.uhn.hl7v2.model.v25.message.ORU_R01) NK1(ca.uhn.hl7v2.model.v25.segment.NK1) PersonService(org.openmrs.api.PersonService) Relationship(org.openmrs.Relationship) RelationshipType(org.openmrs.RelationshipType) Patient(org.openmrs.Patient) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Aggregations

Patient (org.openmrs.Patient)389 Test (org.junit.Test)345 BaseContextSensitiveTest (org.openmrs.test.BaseContextSensitiveTest)284 Date (java.util.Date)106 PatientServiceImplTest (org.openmrs.api.impl.PatientServiceImplTest)91 Encounter (org.openmrs.Encounter)76 PatientIdentifier (org.openmrs.PatientIdentifier)60 Location (org.openmrs.Location)57 OrderUtilTest (org.openmrs.order.OrderUtilTest)47 PersonName (org.openmrs.PersonName)43 DrugOrder (org.openmrs.DrugOrder)42 BindException (org.springframework.validation.BindException)38 Concept (org.openmrs.Concept)37 Order (org.openmrs.Order)36 PatientIdentifierType (org.openmrs.PatientIdentifierType)33 Errors (org.springframework.validation.Errors)33 Visit (org.openmrs.Visit)29 ArrayList (java.util.ArrayList)28 Obs (org.openmrs.Obs)28 TestOrder (org.openmrs.TestOrder)28