/** * @see org.openmrs.api.VisitService#purgeVisit(org.openmrs.Visit) */ @Override public void purgeVisit(Visit visit) throws APIException { if (visit.getVisitId() == null) { return; } if (!Context.getEncounterService().getEncountersByVisit(visit, true).isEmpty()) { throw new APIException("Visit.purge.inUse", (Object[]) null); } dao.deleteVisit(visit); }
/** * @see org.openmrs.api.db.VisitDAO#getNextVisit(Visit, Collection, Date) */ @Override public Visit getNextVisit(Visit previousVisit, Collection<VisitType> visitTypes, Date maximumStartDate) { Criteria criteria = getCurrentSession().createCriteria(Visit.class); criteria.add(Restrictions.eq("voided", false)).add( Restrictions.gt("visitId", (previousVisit != null) ? previousVisit.getVisitId() : 0)).addOrder( Order.asc("visitId")).add(Restrictions.isNull("stopDatetime")).setMaxResults(1); if (maximumStartDate != null) { criteria.add(Restrictions.le("startDatetime", maximumStartDate)); } if (CollectionUtils.isNotEmpty(visitTypes)) { criteria.add(Restrictions.in("visitType", visitTypes)); } return (Visit) criteria.uniqueResult(); } }
/** * @see org.openmrs.api.VisitService#saveVisit(org.openmrs.Visit) */ @Override public Visit saveVisit(Visit visit) throws APIException { if (visit.getVisitId() == null) { Context.requirePrivilege(PrivilegeConstants.ADD_VISITS); } else { Context.requirePrivilege(PrivilegeConstants.EDIT_VISITS); } CustomDatatypeUtil.saveAttributesIfNecessary(visit); return dao.saveVisit(visit); }
private void mergeVisits(Patient preferred, Patient notPreferred, PersonMergeLogData mergedData) { // move all visits, including voided ones (encounters will be handled below) //TODO: this should be a copy, not a move VisitService visitService = Context.getVisitService(); for (Visit visit : visitService.getVisitsByPatient(notPreferred, true, true)) { if (log.isDebugEnabled()) { log.debug("Merging visit " + visit.getVisitId() + " to " + preferred.getPatientId()); } visit.setPatient(preferred); Visit persisted = visitService.saveVisit(visit); mergedData.addMovedVisit(persisted.getUuid()); } }
@Test public void getVisits_shouldGetAllVisitsWithGivenAttributeValues() throws ParseException { executeDataSet(VISITS_ATTRIBUTES_XML); Map<VisitAttributeType, Object> attrs = new HashMap<>(); attrs.put(visitService.getVisitAttributeType(1), new SimpleDateFormat("yyyy-MM-dd").parse("2011-04-25")); List<Visit> visits = visitService.getVisits(null, null, null, null, null, null, null, null, attrs, true, false); assertEquals(1, visits.size()); assertEquals(Integer.valueOf(1), visits.get(0).getVisitId()); }
/** * @see VisitDAO#getNextVisit(Visit,Collection<VisitType>,Date) */ @Test public void getNextVisit_shouldReturnTheNextUnvoidedActiveVisitMatchingTheSpecifiedTypesAndStartDate() { executeDataSet(VISITS_INCLUDE_VISITS_TO_AUTO_CLOSE_XML); ArrayList<VisitType> visitTypes = new ArrayList<>(); visitTypes.add(dao.getVisitType(4)); Calendar cal = Calendar.getInstance(); cal.set(2005, 0, 4, 23, 59, 59); cal.set(Calendar.MILLISECOND, 999); Assert.assertEquals(105, dao.getNextVisit(dao.getVisit(1), visitTypes, cal.getTime()).getVisitId().intValue()); } }
/** * This method assigns a visit to a new encounter using the registered visit assignment handler * * @param encounter a new encounter */ private void createVisitForNewEncounter(Encounter encounter) { if (encounter.getEncounterId() == null) { //Am using Context.getEncounterService().getActiveEncounterVisitHandler() instead of just //getActiveEncounterVisitHandler() for modules which may want to AOP around this call. EncounterVisitHandler encounterVisitHandler = Context.getEncounterService().getActiveEncounterVisitHandler(); if (encounterVisitHandler != null) { encounterVisitHandler.beforeCreateEncounter(encounter); //If we have been assigned a new visit, persist it. if (encounter.getVisit() != null && encounter.getVisit().getVisitId() == null) { Context.getVisitService().saveVisit(encounter.getVisit()); } } } }
int visitId = visit.getVisitId();
/** * @see ExistingVisitAssignmentHandler#beforeCreateEncounter(Encounter) */ @Test public void beforeCreateEncounter_shouldAssignExistingVisitIfMatchFound() { Encounter encounter = Context.getEncounterService().getEncounter(1); Assert.assertNull(encounter.getVisit()); new ExistingVisitAssignmentHandler().beforeCreateEncounter(encounter); Assert.assertNotNull(encounter.getVisit()); Assert.assertNotNull(encounter.getVisit().getVisitId()); }
assertNotNull(encounter.getVisit().getVisitId());
/** * @see EncounterService#saveEncounter(Encounter) */ @Test public void saveEncounter_shouldAssignEncounterToVisitIfTheAssignToExistingHandlerIsRegistered() { Encounter encounter = buildEncounter(); //We should have no visit assertNull(encounter.getVisit()); GlobalProperty gp = Context.getAdministrationService().getGlobalPropertyObject( OpenmrsConstants.GP_VISIT_ASSIGNMENT_HANDLER); gp.setPropertyValue("org.openmrs.api.handler.ExistingVisitAssignmentHandler"); Context.getAdministrationService().saveGlobalProperty(gp); Context.getEncounterService().saveEncounter(encounter); //We should have a visit. assertNotNull(encounter.getVisit()); assertNotNull(encounter.getVisit().getVisitId()); }