use of org.openmrs.Provider in project openmrs-core by openmrs.
the class EncounterServiceTest method voidEncounter_shouldNotVoidProviders.
/**
* @see EncounterService#voidEncounter(Encounter, String)
*/
@Test
public void voidEncounter_shouldNotVoidProviders() {
EncounterService encounterService = Context.getEncounterService();
Encounter encounter = new Encounter();
encounter.setLocation(new Location(1));
encounter.setEncounterType(new EncounterType(1));
encounter.setEncounterDatetime(new Date());
encounter.setPatient(new Patient(3));
EncounterRole role = new EncounterRole();
role.setName("role");
role = encounterService.saveEncounterRole(role);
Provider provider = new Provider();
provider.setIdentifier("id1");
provider.setPerson(newPerson("name"));
provider = Context.getProviderService().saveProvider(provider);
encounter.addProvider(role, provider);
encounterService.saveEncounter(encounter);
assertEquals(1, encounter.getProvidersByRoles().size());
encounterService.voidEncounter(encounter, "reason");
encounter = encounterService.getEncounter(encounter.getEncounterId());
assertEquals(1, encounter.getProvidersByRoles().size());
}
use of org.openmrs.Provider in project openmrs-core by openmrs.
the class TestOrderValidatorTest method validate_shouldFailValidationIfTheSpecimenSourceIsInvalid.
/**
* @see TestOrderValidator#validate(Object, org.springframework.validation.Errors)
*/
@Test
public void validate_shouldFailValidationIfTheSpecimenSourceIsInvalid() {
ConceptService conceptService = Context.getConceptService();
Concept specimenSource = conceptService.getConcept(3);
OrderService orderService = Context.getOrderService();
assertThat(specimenSource, not(isIn(orderService.getDrugRoutes())));
TestOrder order = new TestOrder();
Patient patient = new Patient(8);
order.setPatient(patient);
order.setOrderType(orderService.getOrderTypeByName("Test order"));
order.setConcept(conceptService.getConcept(5497));
order.setOrderer(new Provider());
order.setCareSetting(new CareSetting());
Encounter encounter = new Encounter();
encounter.setPatient(patient);
order.setEncounter(encounter);
order.setDateActivated(new Date());
order.setSpecimenSource(specimenSource);
Errors errors = new BindException(order, "order");
new TestOrderValidator().validate(order, errors);
Assert.assertTrue(errors.hasFieldErrors("specimenSource"));
Assert.assertEquals("TestOrder.error.specimenSourceNotAmongAllowedConcepts", errors.getFieldError("specimenSource").getCode());
}
use of org.openmrs.Provider in project openmrs-core by openmrs.
the class ORUR01Handler method createEncounter.
/**
* This method does not call the database to create the encounter row. The encounter is only
* created after all obs have been attached to it Creates an encounter pojo to be attached
* later. This method does not create an encounterId
*
* @param msh
* @param patient
* @param pv1
* @param orc
* @return
* @throws HL7Exception
*/
private Encounter createEncounter(MSH msh, Patient patient, PV1 pv1, ORC orc) throws HL7Exception {
// the encounter we will return
Encounter encounter;
// look for the encounter id in PV1-19
CX visitNumber = pv1.getVisitNumber();
Integer encounterId = null;
try {
encounterId = Integer.valueOf(visitNumber.getIDNumber().getValue());
} catch (NumberFormatException e) {
// pass
}
// the database
if (encounterId != null) {
encounter = Context.getEncounterService().getEncounter(encounterId);
} else {
// if no encounter_id was passed in, this is a new
// encounter, create the object
encounter = new Encounter();
Date encounterDate = getEncounterDate(pv1);
Provider provider = getProvider(pv1);
Location location = getLocation(pv1);
Form form = getForm(msh);
EncounterType encounterType = getEncounterType(msh, form);
User enterer = getEnterer(orc);
// Date dateEntered = getDateEntered(orc); // ignore this since we have no place in the data model to store it
encounter.setEncounterDatetime(encounterDate);
if (unknownRole == null) {
unknownRole = Context.getEncounterService().getEncounterRoleByUuid(EncounterRole.UNKNOWN_ENCOUNTER_ROLE_UUID);
}
encounter.setProvider(unknownRole, provider);
encounter.setPatient(patient);
encounter.setLocation(location);
encounter.setForm(form);
encounter.setEncounterType(encounterType);
encounter.setCreator(enterer);
encounter.setDateCreated(new Date());
}
return encounter;
}
use of org.openmrs.Provider in project openmrs-core by openmrs.
the class ORUR01Handler method getProvider.
private Provider getProvider(PV1 pv1) throws HL7Exception {
XCN hl7Provider = pv1.getAttendingDoctor(0);
Provider provider = null;
String id = hl7Provider.getIDNumber().getValue();
String assignAuth = hl7Provider.getAssigningAuthority().getUniversalID().getValue();
String type = hl7Provider.getAssigningAuthority().getUniversalIDType().getValue();
String errorMessage;
if (StringUtils.hasText(id)) {
String specificErrorMsg = "";
if (OpenmrsUtil.nullSafeEquals("L", type)) {
if (HL7Constants.PROVIDER_ASSIGNING_AUTH_PROV_ID.equalsIgnoreCase(assignAuth)) {
try {
provider = Context.getProviderService().getProvider(Integer.valueOf(id));
} catch (NumberFormatException e) {
// ignore
}
specificErrorMsg = "with provider Id";
} else if (HL7Constants.PROVIDER_ASSIGNING_AUTH_IDENTIFIER.equalsIgnoreCase(assignAuth)) {
provider = Context.getProviderService().getProviderByIdentifier(id);
specificErrorMsg = "with provider identifier";
} else if (HL7Constants.PROVIDER_ASSIGNING_AUTH_PROV_UUID.equalsIgnoreCase(assignAuth)) {
provider = Context.getProviderService().getProviderByUuid(id);
specificErrorMsg = "with provider uuid";
}
} else {
try {
Person person = Context.getPersonService().getPerson(Integer.valueOf(id));
Collection<Provider> providers = Context.getProviderService().getProvidersByPerson(person);
if (!providers.isEmpty()) {
provider = providers.iterator().next();
}
} catch (NumberFormatException e) {
// ignore
}
specificErrorMsg = "associated to a person with person id";
}
errorMessage = "Could not resolve provider " + specificErrorMsg + ":" + id;
} else {
errorMessage = "No unique identifier was found for the provider";
}
if (provider == null) {
throw new HL7Exception(errorMessage);
}
return provider;
}
use of org.openmrs.Provider in project openmrs-core by openmrs.
the class ORUR01HandlerTest method processMessage_shouldCreateAnEncounterAndFindTheProviderByPersonId.
/**
* @see ORUR01Handler#processMessage(Message)
*/
@Test
public void processMessage_shouldCreateAnEncounterAndFindTheProviderByPersonId() throws Exception {
int patientId = 2;
Patient patient = new Patient(patientId);
List<Encounter> encForPatient1 = Context.getEncounterService().getEncountersByPatient(patient);
String hl7string = "MSH|^~\\&|FORMENTRY|AMRS.ELD|HL7LISTENER|AMRS.ELD|20080226102656||ORU^R01|JqnfhKKtouEz8kzTk6Zo|P|2.5|1||||||||16^AMRS.ELD.FORMID\r" + "PID|||" + patientId + "^^^^||Hornblower^Horatio^Test||\r" + "PV1||O|1^Unknown Location||||1^name|||||||||||||||||||||||||||||||||||||20080212|||||||V\r" + "ORC|RE||||||||20080226102537|1^Super User\r" + "OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT";
Message hl7message = parser.parse(hl7string);
router.processMessage(hl7message);
List<Encounter> encForPatient2 = Context.getEncounterService().getEncountersByPatient(patient);
assertTrue("An encounter should have been created", (encForPatient1.size() + 1) == encForPatient2.size());
encForPatient2.removeAll(encForPatient1);
Assert.assertTrue(encForPatient2.size() == 1);
Provider newProvider = encForPatient2.get(0).getProvidersByRole(Context.getEncounterService().getEncounterRoleByUuid(EncounterRole.UNKNOWN_ENCOUNTER_ROLE_UUID)).iterator().next();
Assert.assertEquals("c2299800-cca9-11e0-9572-0800200c9a66", newProvider.getUuid());
}
Aggregations