diff --git a/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java b/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java index 4defe9a..0deaf6b 100755 --- a/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java @@ -673,8 +673,7 @@ public Future evaluateAllFlags() { if (executor == null) { executor = Executors.newSingleThreadExecutor(); } - dao.deleteAllPatientFlags(); - return executor.submit(PatientFlagTask.evaluateAllFlags()); + return executor.submit(new PatientFlagTask()); } /** diff --git a/api/src/main/java/org/openmrs/module/patientflags/db/FlagDAO.java b/api/src/main/java/org/openmrs/module/patientflags/db/FlagDAO.java index 30e7ac9..a6bb287 100755 --- a/api/src/main/java/org/openmrs/module/patientflags/db/FlagDAO.java +++ b/api/src/main/java/org/openmrs/module/patientflags/db/FlagDAO.java @@ -318,10 +318,4 @@ public interface FlagDAO { */ void deletePatientFlagsForFlag(Flag flag) throws DAOException; - /** - * Delete all patient flags. - * - * @throws DAOException the dao exception - */ - void deleteAllPatientFlags() throws DAOException; } diff --git a/api/src/main/java/org/openmrs/module/patientflags/db/hibernate/HibernateFlagDAO.java b/api/src/main/java/org/openmrs/module/patientflags/db/hibernate/HibernateFlagDAO.java index 9414af7..821e008 100755 --- a/api/src/main/java/org/openmrs/module/patientflags/db/hibernate/HibernateFlagDAO.java +++ b/api/src/main/java/org/openmrs/module/patientflags/db/hibernate/HibernateFlagDAO.java @@ -458,20 +458,4 @@ public List getPatientFlags(Patient patient) throws DAOException { return criteria.list(); } - - /** - * Delete all patient flags. - * - * @throws DAOException the dao exception - */ - @Override - public void deleteAllPatientFlags() throws DAOException { - Criteria criteria = sessionFactory.getCurrentSession().createCriteria(PatientFlag.class); - List flags = criteria.list(); - - flags.forEach(patientFlag -> { - sessionFactory.getCurrentSession().delete(patientFlag); - }); - } - } diff --git a/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java b/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java index eaccb2f..b274628 100644 --- a/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java +++ b/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java @@ -49,9 +49,9 @@ else if (flag != null) { evaluateAllFlags(); } } - - public static Runnable evaluateAllFlags() { - return Daemon.runInDaemonThread(new AllFlagsEvaluator(), daemonToken); + + public void evaluateAllFlags() { + Daemon.runInDaemonThread(new AllFlagsEvaluator(), daemonToken); } public static void setDaemonToken(DaemonToken token) { @@ -75,12 +75,8 @@ public void generatePatientFlags(Flag flag) { } private static void generatePatientFlags(Flag flag, FlagService service) { - service.deletePatientFlagsForFlag(flag); - generatePatientFlagsForFlagAndPatient(flag,service); - } - private static void generatePatientFlagsForFlagAndPatient(Flag flag, FlagService service){ if (!flag.getEnabled() || flag.getRetired()) { return; } @@ -138,7 +134,6 @@ private static class AllFlagsEvaluator implements Runnable { @Override public void run() { FlagService flagService = Context.getService(FlagService.class); - flagService.getAllFlags().forEach(flag -> Daemon.runInNewDaemonThread(new PatientFlagGenerator(flag))); } } @@ -150,10 +145,10 @@ private static class PatientFlagGenerator implements Runnable { this.flag = flag; } - @Override - public void run() { - FlagService service = Context.getService(FlagService.class); - generatePatientFlagsForFlagAndPatient(flag, service); - } - } + @Override + public void run() { + FlagService service = Context.getService(FlagService.class); + generatePatientFlags(flag, service); + } + } }