Skip to content

Commit

Permalink
New visit save errors should not clear new encounter rows - TRUNK-2969
Browse files Browse the repository at this point in the history
  • Loading branch information
dkayiwa committed Dec 13, 2012
1 parent 42b055c commit 1b9b756
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public void setDao(DatatypeDAO dao) {
* @see org.openmrs.api.DatatypeService#getAllDatatypeClasses()
*/
@Override
@Transactional(readOnly = true)
public Set<Class<? extends CustomDatatype<?>>> getAllDatatypeClasses() {
if (datatypeClasses == null) {
populateBeanListsFromContext();
Expand All @@ -70,6 +71,7 @@ public Set<Class<? extends CustomDatatype<?>>> getAllDatatypeClasses() {
* @see org.openmrs.api.DatatypeService#getAllHandlerClasses()
*/
@Override
@Transactional(readOnly = true)
public Set<Class<? extends CustomDatatypeHandler<?, ?>>> getAllHandlerClasses() {
if (handlerClasses == null) {
populateBeanListsFromContext();
Expand Down Expand Up @@ -97,6 +99,7 @@ private synchronized void populateBeanListsFromContext() {
* @see org.openmrs.api.DatatypeService#getDatatype(java.lang.Class, java.lang.String)
*/
@Override
@Transactional(readOnly = true)
public <T extends CustomDatatype<?>> T getDatatype(Class<T> clazz, String config) {
try {
T dt = clazz.newInstance();
Expand All @@ -112,6 +115,7 @@ public <T extends CustomDatatype<?>> T getDatatype(Class<T> clazz, String config
* @see org.openmrs.api.DatatypeService#getHandlerClasses(Class)
*/
@Override
@Transactional(readOnly = true)
public List<Class<? extends CustomDatatypeHandler>> getHandlerClasses(Class<? extends CustomDatatype<?>> datatype) {
List<Class<? extends CustomDatatypeHandler>> ret = new ArrayList<Class<? extends CustomDatatypeHandler>>();
for (Class<? extends CustomDatatypeHandler<?, ?>> candidate : getAllHandlerClasses()) {
Expand Down Expand Up @@ -151,6 +155,7 @@ private Class datatypeClassHandled(Type t) {
* @see org.openmrs.api.DatatypeService#getHandler(org.openmrs.customdatatype.CustomDatatype, java.lang.String)
*/
@Override
@Transactional(readOnly = true)
public CustomDatatypeHandler<?, ?> getHandler(CustomDatatype<?> datatype, String handlerConfig) {
if (prioritizedHandlerClasses == null)
prioritizeHandlers();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,7 @@ public List<User> getUsers(String name, List<Role> roles, boolean includeRetired
* @see UserService#notifyPrivilegeListeners(User, String, boolean)
*/
@Override
@Transactional(readOnly = true)
public void notifyPrivilegeListeners(User user, String privilege, boolean hasPrivilege) {
if (privilegeListeners != null) {
for (PrivilegeListener privilegeListener : privilegeListeners) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public class MessageSourceServiceImpl implements MessageSourceService {
/**
* @see org.openmrs.messagesource.MessageSourceService#getMessage(java.lang.String)
*/
@Transactional(readOnly = true)
public String getMessage(String s) {
return getMessage(s, null, Context.getLocale());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public String showForm(@ModelAttribute("visit") Visit visit,
if (visit.getVisitId() != null)
model.addAttribute("canPurgeVisit", Context.getEncounterService().getEncountersByVisit(visit, true).size() == 0);

addEncounterAndObservationCounts(visit, model);
addEncounterAndObservationCounts(visit, null, model);
return VISIT_FORM;
}

Expand Down Expand Up @@ -143,7 +143,7 @@ public String saveVisit(HttpServletRequest request, @ModelAttribute("visit") Vis
e.setVisit(null);
validateEncounter(e, result);
if (result.hasErrors()) {
addEncounterAndObservationCounts(visit, model);
addEncounterAndObservationCounts(visit, encounterIds, model);
return VISIT_FORM;
}

Expand All @@ -161,7 +161,7 @@ public String saveVisit(HttpServletRequest request, @ModelAttribute("visit") Vis
e.setVisit(visit);
validateEncounter(e, result);
if (result.hasErrors()) {
addEncounterAndObservationCounts(visit, model);
addEncounterAndObservationCounts(visit, encounterIds, model);
return VISIT_FORM;
}

Expand Down Expand Up @@ -193,7 +193,7 @@ public String saveVisit(HttpServletRequest request, @ModelAttribute("visit") Vis
}
}

addEncounterAndObservationCounts(visit, model);
addEncounterAndObservationCounts(visit, encounterIds, model);
return VISIT_FORM;
}

Expand Down Expand Up @@ -258,7 +258,7 @@ public String voidVisit(WebRequest request, @ModelAttribute(value = "visit") Vis
"Visit.void.error"), WebRequest.SCOPE_SESSION);
}

addEncounterAndObservationCounts(visit, model);
addEncounterAndObservationCounts(visit, null, model);
return VISIT_FORM;
}

Expand Down Expand Up @@ -289,7 +289,7 @@ public String unvoidVisit(WebRequest request, @ModelAttribute(value = "visit") V
"Visit.unvoid.error"), WebRequest.SCOPE_SESSION);
}

addEncounterAndObservationCounts(visit, model);
addEncounterAndObservationCounts(visit, null, model);
return VISIT_FORM;
}

Expand Down Expand Up @@ -353,18 +353,28 @@ private void validateEncounter(Encounter e, BindingResult result) {
}
}

private void addEncounterAndObservationCounts(Visit visit, ModelMap model) {
private void addEncounterAndObservationCounts(Visit visit, List<Integer> encounterIds, ModelMap model) {
int encounterCount = 0;
int observationCount = 0;
EncounterService encounterService = Context.getEncounterService();
if (visit != null && visit.getId() != null) {
List<Encounter> encounters = Context.getEncounterService().getEncountersByVisit(visit, false);
List<Encounter> encounters = encounterService.getEncountersByVisit(visit, false);
encounterCount = encounters.size();

if (!encounters.isEmpty()) {
observationCount = Context.getObsService().getObservationCount(null, encounters, null, null, null, null,
null, null, null, false);
}
}

if (encounterIds != null) {
List<Encounter> visitEncounters = new ArrayList<Encounter>();
for (Integer encounterId : encounterIds) {
visitEncounters.add(encounterService.getEncounter(encounterId));
}
model.put("visitEncounters", visitEncounters);
}

model.put("encounterCount", encounterCount);
model.put("observationCount", observationCount);
}
Expand Down

0 comments on commit 1b9b756

Please sign in to comment.