diff --git a/frontend/src/components/layout/Header.js b/frontend/src/components/layout/Header.js
index 7638536d25..b1692ad196 100644
--- a/frontend/src/components/layout/Header.js
+++ b/frontend/src/components/layout/Header.js
@@ -476,15 +476,15 @@ function OEHeader(props) {
position: "absolute",
top: "-5px",
right: "-5px",
- backgroundColor: "#3A6B8D",
+ backgroundColor: "red",
color: "white",
borderRadius: "50%",
- width: "16px",
- height: "16px",
+ width: "22px",
+ height: "22px",
display: "flex",
alignItems: "center",
justifyContent: "center",
- fontSize: "10px",
+ fontSize: "12px",
animation: "pulse 5s infinite",
opacity: 1,
transition:
diff --git a/frontend/src/components/notifications/SlideOver.jsx b/frontend/src/components/notifications/SlideOver.jsx
index ba1b4c8005..fb1390cbfd 100644
--- a/frontend/src/components/notifications/SlideOver.jsx
+++ b/frontend/src/components/notifications/SlideOver.jsx
@@ -87,7 +87,7 @@ const SlideOver = ({
onCloseClick && onCloseClick();
}}
>
- ←
+ →
{title}
diff --git a/src/main/java/org/openelisglobal/dataexchange/order/action/DBOrderPersister.java b/src/main/java/org/openelisglobal/dataexchange/order/action/DBOrderPersister.java
index 5ca3dcb303..fa9c80b700 100644
--- a/src/main/java/org/openelisglobal/dataexchange/order/action/DBOrderPersister.java
+++ b/src/main/java/org/openelisglobal/dataexchange/order/action/DBOrderPersister.java
@@ -13,6 +13,7 @@
*/
package org.openelisglobal.dataexchange.order.action;
+import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -22,12 +23,16 @@
import org.openelisglobal.address.service.PersonAddressService;
import org.openelisglobal.address.valueholder.AddressPart;
import org.openelisglobal.address.valueholder.PersonAddress;
+import org.openelisglobal.common.constants.Constants;
import org.openelisglobal.common.log.LogEvent;
import org.openelisglobal.common.services.IStatusService;
import org.openelisglobal.common.services.StatusService.ExternalOrderStatus;
import org.openelisglobal.common.util.StringUtil;
import org.openelisglobal.dataexchange.order.valueholder.ElectronicOrder;
import org.openelisglobal.dataexchange.service.order.ElectronicOrderService;
+import org.openelisglobal.internationalization.MessageUtil;
+import org.openelisglobal.notifications.dao.NotificationDAO;
+import org.openelisglobal.notifications.entity.Notification;
import org.openelisglobal.patient.service.PatientContactService;
import org.openelisglobal.patient.service.PatientService;
import org.openelisglobal.patient.valueholder.Patient;
@@ -38,9 +43,11 @@
import org.openelisglobal.patientidentitytype.valueholder.PatientIdentityType;
import org.openelisglobal.person.service.PersonService;
import org.openelisglobal.person.valueholder.Person;
+import org.openelisglobal.sample.valueholder.OrderPriority;
import org.openelisglobal.spring.util.SpringContext;
import org.openelisglobal.systemuser.service.SystemUserService;
import org.openelisglobal.systemuser.valueholder.SystemUser;
+import org.openelisglobal.userrole.service.UserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@@ -75,6 +82,10 @@ public class DBOrderPersister implements IOrderPersister {
private PersonAddressService personAddressService;
@Autowired
private AddressPartService addressPartService;
+ @Autowired
+ private NotificationDAO notificationDAO;
+ @Autowired
+ private UserRoleService userRoleService;
private Patient patient;
@@ -359,6 +370,22 @@ public void persist(MessagePatient orderPatient, ElectronicOrder eOrder) {
persist(orderPatient);
eOrder.setPatient(patient);
eOrderService.insert(eOrder);
+ if (eOrder.getPriority().equals(OrderPriority.STAT)) {
+ String message = MessageUtil.getMessage("notification.eorder.stat", eOrder.getExternalId());
+ List systemUserIds = userRoleService.getUserIdsForRole(Constants.ROLE_RECEPTION);
+ for (String userId : systemUserIds) {
+ try {
+ Notification notification = new Notification();
+ notification.setMessage(message);
+ notification.setUser(systemUserService.getUserById(userId));
+ notification.setCreatedDate(OffsetDateTime.now());
+ notification.setReadAt(null);
+ notificationDAO.save(notification);
+
+ } catch (Exception e) {
+ }
+ }
+ }
} catch (RuntimeException e) {
LogEvent.logError(e);
throw e;
diff --git a/src/main/java/org/openelisglobal/result/controller/LogbookResultsController.java b/src/main/java/org/openelisglobal/result/controller/LogbookResultsController.java
index 2b1d50e1b3..5d79d95e35 100644
--- a/src/main/java/org/openelisglobal/result/controller/LogbookResultsController.java
+++ b/src/main/java/org/openelisglobal/result/controller/LogbookResultsController.java
@@ -2,6 +2,7 @@
import java.lang.reflect.InvocationTargetException;
import java.sql.Timestamp;
+import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -25,6 +26,7 @@
import org.openelisglobal.common.formfields.FormFields;
import org.openelisglobal.common.formfields.FormFields.Field;
import org.openelisglobal.common.log.LogEvent;
+import org.openelisglobal.common.provider.validation.AlphanumAccessionValidator;
import org.openelisglobal.common.services.DisplayListService;
import org.openelisglobal.common.services.DisplayListService.ListType;
import org.openelisglobal.common.services.IStatusService;
@@ -50,6 +52,8 @@
import org.openelisglobal.note.service.NoteService;
import org.openelisglobal.note.service.NoteServiceImpl.NoteType;
import org.openelisglobal.note.valueholder.Note;
+import org.openelisglobal.notifications.dao.NotificationDAO;
+import org.openelisglobal.notifications.entity.Notification;
import org.openelisglobal.organization.service.OrganizationService;
import org.openelisglobal.patient.valueholder.Patient;
import org.openelisglobal.referral.action.beanitems.ReferralItem;
@@ -76,14 +80,17 @@
import org.openelisglobal.resultlimits.valueholder.ResultLimit;
import org.openelisglobal.role.service.RoleService;
import org.openelisglobal.sample.service.SampleService;
+import org.openelisglobal.sample.valueholder.OrderPriority;
import org.openelisglobal.sample.valueholder.Sample;
import org.openelisglobal.spring.util.SpringContext;
import org.openelisglobal.statusofsample.util.StatusRules;
+import org.openelisglobal.systemuser.service.SystemUserService;
import org.openelisglobal.systemuser.service.UserService;
import org.openelisglobal.test.beanItems.TestResultItem;
import org.openelisglobal.test.service.TestSectionService;
import org.openelisglobal.test.valueholder.TestSection;
import org.openelisglobal.typeoftestresult.service.TypeOfTestResultServiceImpl;
+import org.openelisglobal.userrole.service.UserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
@@ -145,6 +152,12 @@ public class LogbookResultsController extends LogbookResultsBaseController {
private RoleService roleService;
@Autowired
private MethodService methodService;
+ @Autowired
+ private NotificationDAO notificationDAO;
+ @Autowired
+ private SystemUserService systemUserService;
+ @Autowired
+ private UserRoleService userRoleService;
private final String RESULT_SUBJECT = "Result Note";
private final String REFERRAL_CONFORMATION_ID;
@@ -410,6 +423,36 @@ public ModelAndView showLogbookResultsUpdate(HttpServletRequest request,
} catch (FhirTransformationException | FhirPersistanceException e) {
LogEvent.logError(e);
}
+ List newResultAnalyses = actionDataSet.getNewResults().stream().map(a -> a.result.getAnalysis())
+ .collect(Collectors.toList());
+ List systemUserIds = userRoleService.getUserIdsForRole(Constants.ROLE_VALIDATION);
+ String message = MessageUtil.getMessage("notification.result.stat");
+ StringBuffer sb = new StringBuffer(message);
+ for (String userId : systemUserIds) {
+ List userAnalyses = userService
+ .filterAnalysesByLabUnitRoles(userId, newResultAnalyses, Constants.ROLE_VALIDATION).stream()
+ .filter(a -> a.getSampleItem().getSample().getPriority().equals(OrderPriority.STAT))
+ .collect(Collectors.toList());
+
+ if (userAnalyses != null && !userAnalyses.isEmpty()) {
+ List userTests = userAnalyses.stream()
+ .map(a -> AlphanumAccessionValidator
+ .convertAlphaNumLabNumForDisplay(a.getSampleItem().getSample().getAccessionNumber())
+ + " - " + a.getTest().getLocalizedName())
+ .collect(Collectors.toList());
+ String testString = String.join(", ", userTests);
+ sb.append(testString);
+ try {
+ Notification notification = new Notification();
+ notification.setMessage(sb.toString());
+ notification.setUser(systemUserService.getUserById(userId));
+ notification.setCreatedDate(OffsetDateTime.now());
+ notification.setReadAt(null);
+ notificationDAO.save(notification);
+ } catch (Exception e) {
+ }
+ }
+ }
} catch (LIMSRuntimeException e) {
String errorMsg;
if (e.getCause() instanceof StaleObjectStateException) {
diff --git a/src/main/java/org/openelisglobal/result/controller/rest/LogbookResultsRestController.java b/src/main/java/org/openelisglobal/result/controller/rest/LogbookResultsRestController.java
index 115fc39f43..70af67c6da 100644
--- a/src/main/java/org/openelisglobal/result/controller/rest/LogbookResultsRestController.java
+++ b/src/main/java/org/openelisglobal/result/controller/rest/LogbookResultsRestController.java
@@ -2,6 +2,7 @@
import java.lang.reflect.InvocationTargetException;
import java.sql.Timestamp;
+import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -26,6 +27,7 @@
import org.openelisglobal.common.formfields.FormFields;
import org.openelisglobal.common.formfields.FormFields.Field;
import org.openelisglobal.common.log.LogEvent;
+import org.openelisglobal.common.provider.validation.AlphanumAccessionValidator;
import org.openelisglobal.common.services.DisplayListService;
import org.openelisglobal.common.services.DisplayListService.ListType;
import org.openelisglobal.common.services.IStatusService;
@@ -51,6 +53,8 @@
import org.openelisglobal.note.service.NoteService;
import org.openelisglobal.note.service.NoteServiceImpl.NoteType;
import org.openelisglobal.note.valueholder.Note;
+import org.openelisglobal.notifications.dao.NotificationDAO;
+import org.openelisglobal.notifications.entity.Notification;
import org.openelisglobal.organization.service.OrganizationService;
import org.openelisglobal.patient.service.PatientService;
import org.openelisglobal.patient.valueholder.Patient;
@@ -80,12 +84,14 @@
import org.openelisglobal.resultlimits.valueholder.ResultLimit;
import org.openelisglobal.role.service.RoleService;
import org.openelisglobal.sample.service.SampleService;
+import org.openelisglobal.sample.valueholder.OrderPriority;
import org.openelisglobal.sample.valueholder.Sample;
import org.openelisglobal.samplehuman.service.SampleHumanService;
import org.openelisglobal.sampleitem.service.SampleItemService;
import org.openelisglobal.search.service.SearchResultsService;
import org.openelisglobal.spring.util.SpringContext;
import org.openelisglobal.statusofsample.util.StatusRules;
+import org.openelisglobal.systemuser.service.SystemUserService;
import org.openelisglobal.systemuser.service.UserService;
import org.openelisglobal.test.beanItems.TestResultItem;
import org.openelisglobal.test.service.TestSectionService;
@@ -171,6 +177,10 @@ public class LogbookResultsRestController extends LogbookResultsBaseController {
private SampleHumanService sampleHumanService;
@Autowired
private MethodService methodService;
+ @Autowired
+ private NotificationDAO notificationDAO;
+ @Autowired
+ private SystemUserService systemUserService;
private final String RESULT_SUBJECT = "Result Note";
private final String REFERRAL_CONFORMATION_ID;
@@ -475,6 +485,36 @@ public Map> showReactLogbookResultsUpdate(HttpServletReques
} catch (FhirTransformationException | FhirPersistanceException e) {
LogEvent.logError(e);
}
+ List newResultAnalyses = actionDataSet.getNewResults().stream().map(a -> a.result.getAnalysis())
+ .collect(Collectors.toList());
+ List systemUserIds = userRoleService.getUserIdsForRole(Constants.ROLE_VALIDATION);
+ String message = MessageUtil.getMessage("notification.result.stat");
+ StringBuffer sb = new StringBuffer(message);
+ for (String userId : systemUserIds) {
+ List userAnalyses = userService
+ .filterAnalysesByLabUnitRoles(userId, newResultAnalyses, Constants.ROLE_VALIDATION).stream()
+ .filter(a -> a.getSampleItem().getSample().getPriority().equals(OrderPriority.STAT))
+ .collect(Collectors.toList());
+
+ if (userAnalyses != null && !userAnalyses.isEmpty()) {
+ List userTests = userAnalyses.stream()
+ .map(a -> AlphanumAccessionValidator
+ .convertAlphaNumLabNumForDisplay(a.getSampleItem().getSample().getAccessionNumber())
+ + " - " + a.getTest().getLocalizedName())
+ .collect(Collectors.toList());
+ String testString = String.join(", ", userTests);
+ sb.append(testString);
+ try {
+ Notification notification = new Notification();
+ notification.setMessage(sb.toString());
+ notification.setUser(systemUserService.getUserById(userId));
+ notification.setCreatedDate(OffsetDateTime.now());
+ notification.setReadAt(null);
+ notificationDAO.save(notification);
+ } catch (Exception e) {
+ }
+ }
+ }
} catch (LIMSRuntimeException e) {
String errorMsg;
if (e.getCause() instanceof StaleObjectStateException) {
diff --git a/src/main/java/org/openelisglobal/sample/controller/SamplePatientEntryController.java b/src/main/java/org/openelisglobal/sample/controller/SamplePatientEntryController.java
index 08c68a37ad..440d260e1d 100644
--- a/src/main/java/org/openelisglobal/sample/controller/SamplePatientEntryController.java
+++ b/src/main/java/org/openelisglobal/sample/controller/SamplePatientEntryController.java
@@ -1,8 +1,11 @@
package org.openelisglobal.sample.controller;
import java.lang.reflect.InvocationTargetException;
+import java.time.OffsetDateTime;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Pattern;
import org.apache.commons.lang3.StringUtils;
@@ -11,10 +14,12 @@
import org.hl7.fhir.r4.model.Enumerations.ResourceType;
import org.hl7.fhir.r4.model.Reference;
import org.hl7.fhir.r4.model.Task;
+import org.openelisglobal.analysis.valueholder.Analysis;
import org.openelisglobal.common.constants.Constants;
import org.openelisglobal.common.exception.LIMSRuntimeException;
import org.openelisglobal.common.formfields.FormFields;
import org.openelisglobal.common.log.LogEvent;
+import org.openelisglobal.common.provider.validation.AlphanumAccessionValidator;
import org.openelisglobal.common.services.DisplayListService;
import org.openelisglobal.common.services.DisplayListService.ListType;
import org.openelisglobal.common.services.SampleOrderService;
@@ -28,6 +33,9 @@
import org.openelisglobal.dataexchange.fhir.service.FhirTransformService;
import org.openelisglobal.dataexchange.order.valueholder.ElectronicOrder;
import org.openelisglobal.dataexchange.service.order.ElectronicOrderService;
+import org.openelisglobal.internationalization.MessageUtil;
+import org.openelisglobal.notifications.dao.NotificationDAO;
+import org.openelisglobal.notifications.entity.Notification;
import org.openelisglobal.organization.service.OrganizationService;
import org.openelisglobal.organization.valueholder.Organization;
import org.openelisglobal.patient.action.IPatientUpdate;
@@ -41,11 +49,15 @@
import org.openelisglobal.sample.form.SamplePatientEntryForm;
import org.openelisglobal.sample.service.PatientManagementUpdate;
import org.openelisglobal.sample.service.SamplePatientEntryService;
+import org.openelisglobal.sample.service.SampleService;
import org.openelisglobal.sample.validator.SamplePatientEntryFormValidator;
+import org.openelisglobal.sample.valueholder.OrderPriority;
import org.openelisglobal.sample.valueholder.SampleAdditionalField;
import org.openelisglobal.sample.valueholder.SampleAdditionalField.AdditionalFieldName;
import org.openelisglobal.spring.util.SpringContext;
+import org.openelisglobal.systemuser.service.SystemUserService;
import org.openelisglobal.systemuser.service.UserService;
+import org.openelisglobal.userrole.service.UserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
@@ -144,6 +156,14 @@ public class SamplePatientEntryController extends BaseSampleEntryController {
private ElectronicOrderService electronicOrderService;
@Autowired
private OrganizationService organizationService;
+ @Autowired
+ private NotificationDAO notificationDAO;
+ @Autowired
+ private UserRoleService userRoleService;
+ @Autowired
+ private SystemUserService systemUserService;
+ @Autowired
+ private SampleService sampleService;
@Autowired
private FhirUtil fhirUtil;
@@ -260,6 +280,34 @@ private void setupReferralOption(SamplePatientEntryForm form) {
LogEvent.logError(e);
}
+ if (sampleOrder.getPriority().equals(OrderPriority.STAT)) {
+ List systemUserIds = userRoleService.getUserIdsForRole(Constants.ROLE_RESULTS);
+ List analyses = sampleService
+ .getAnalysis(sampleService.getSampleByAccessionNumber(sampleOrder.getLabNo()));
+ String message = MessageUtil.getMessage("notification.order.stat",
+ AlphanumAccessionValidator.convertAlphaNumLabNumForDisplay(sampleOrder.getLabNo()));
+ StringBuffer sb = new StringBuffer(message);
+ for (String userId : systemUserIds) {
+ List userAnalyses = userService.filterAnalysesByLabUnitRoles(userId, analyses,
+ Constants.ROLE_RESULTS);
+ if (userAnalyses != null && !userAnalyses.isEmpty()) {
+ List tests = userAnalyses.stream().map(a -> a.getTest().getLocalizedName())
+ .collect(Collectors.toList());
+ String testString = String.join(", ", tests);
+ sb.append(testString);
+ try {
+ Notification notification = new Notification();
+ notification.setMessage(sb.toString());
+ notification.setUser(systemUserService.getUserById(userId));
+ notification.setCreatedDate(OffsetDateTime.now());
+ notification.setReadAt(null);
+ notificationDAO.save(notification);
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+
// String fhir_json = fhirTransformService.CreateFhirFromOESample(updateData,
// patientUpdate, patientInfo, form, request);
} catch (LIMSRuntimeException e) {
diff --git a/src/main/java/org/openelisglobal/sample/controller/rest/SamplePatientEntryRestController.java b/src/main/java/org/openelisglobal/sample/controller/rest/SamplePatientEntryRestController.java
index 0f89fda2aa..99fabd49d6 100644
--- a/src/main/java/org/openelisglobal/sample/controller/rest/SamplePatientEntryRestController.java
+++ b/src/main/java/org/openelisglobal/sample/controller/rest/SamplePatientEntryRestController.java
@@ -1,8 +1,11 @@
package org.openelisglobal.sample.controller.rest;
import java.lang.reflect.InvocationTargetException;
+import java.time.OffsetDateTime;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Pattern;
import org.apache.commons.lang3.StringUtils;
@@ -11,10 +14,12 @@
import org.hl7.fhir.r4.model.Enumerations.ResourceType;
import org.hl7.fhir.r4.model.Reference;
import org.hl7.fhir.r4.model.Task;
+import org.openelisglobal.analysis.valueholder.Analysis;
import org.openelisglobal.common.constants.Constants;
import org.openelisglobal.common.exception.LIMSRuntimeException;
import org.openelisglobal.common.formfields.FormFields;
import org.openelisglobal.common.log.LogEvent;
+import org.openelisglobal.common.provider.validation.AlphanumAccessionValidator;
import org.openelisglobal.common.services.DisplayListService;
import org.openelisglobal.common.services.DisplayListService.ListType;
import org.openelisglobal.common.services.SampleOrderService;
@@ -28,6 +33,9 @@
import org.openelisglobal.dataexchange.fhir.service.FhirTransformService;
import org.openelisglobal.dataexchange.order.valueholder.ElectronicOrder;
import org.openelisglobal.dataexchange.service.order.ElectronicOrderService;
+import org.openelisglobal.internationalization.MessageUtil;
+import org.openelisglobal.notifications.dao.NotificationDAO;
+import org.openelisglobal.notifications.entity.Notification;
import org.openelisglobal.organization.service.OrganizationService;
import org.openelisglobal.organization.valueholder.Organization;
import org.openelisglobal.patient.action.IPatientUpdate;
@@ -42,11 +50,15 @@
import org.openelisglobal.sample.form.SamplePatientEntryForm;
import org.openelisglobal.sample.service.PatientManagementUpdate;
import org.openelisglobal.sample.service.SamplePatientEntryService;
+import org.openelisglobal.sample.service.SampleService;
import org.openelisglobal.sample.validator.SamplePatientEntryFormValidator;
+import org.openelisglobal.sample.valueholder.OrderPriority;
import org.openelisglobal.sample.valueholder.SampleAdditionalField;
import org.openelisglobal.sample.valueholder.SampleAdditionalField.AdditionalFieldName;
import org.openelisglobal.spring.util.SpringContext;
+import org.openelisglobal.systemuser.service.SystemUserService;
import org.openelisglobal.systemuser.service.UserService;
+import org.openelisglobal.userrole.service.UserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
@@ -151,6 +163,14 @@ public class SamplePatientEntryRestController extends BaseSampleEntryController
@Autowired
private FhirUtil fhirUtil;
+ @Autowired
+ private NotificationDAO notificationDAO;
+ @Autowired
+ private UserRoleService userRoleService;
+ @Autowired
+ private SystemUserService systemUserService;
+ @Autowired
+ private SampleService sampleService;
@InitBinder
public void initBinder(WebDataBinder binder) {
@@ -265,6 +285,34 @@ public SamplePatientEntryForm samplePatientEntrySave(HttpServletRequest request,
LogEvent.logError(e);
}
+ if (sampleOrder.getPriority().equals(OrderPriority.STAT)) {
+ List systemUserIds = userRoleService.getUserIdsForRole(Constants.ROLE_RESULTS);
+ List analyses = sampleService
+ .getAnalysis(sampleService.getSampleByAccessionNumber(sampleOrder.getLabNo()));
+ String message = MessageUtil.getMessage("notification.order.stat",
+ AlphanumAccessionValidator.convertAlphaNumLabNumForDisplay(sampleOrder.getLabNo()));
+ StringBuffer sb = new StringBuffer(message);
+ for (String userId : systemUserIds) {
+ List userAnalyses = userService.filterAnalysesByLabUnitRoles(userId, analyses,
+ Constants.ROLE_RESULTS);
+ if (userAnalyses != null && !userAnalyses.isEmpty()) {
+ List tests = userAnalyses.stream().map(a -> a.getTest().getLocalizedName())
+ .collect(Collectors.toList());
+ String testString = String.join(", ", tests);
+ sb.append(testString);
+ try {
+ Notification notification = new Notification();
+ notification.setMessage(sb.toString());
+ notification.setUser(systemUserService.getUserById(userId));
+ notification.setCreatedDate(OffsetDateTime.now());
+ notification.setReadAt(null);
+ notificationDAO.save(notification);
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+
// String fhir_json = fhirTransformService.CreateFhirFromOESample(updateData,
// patientUpdate, patientInfo, form, request);
} catch (LIMSRuntimeException e) {
diff --git a/src/main/java/org/openelisglobal/systemuser/service/UserService.java b/src/main/java/org/openelisglobal/systemuser/service/UserService.java
index 62b8ccc627..9e9f9f1b18 100644
--- a/src/main/java/org/openelisglobal/systemuser/service/UserService.java
+++ b/src/main/java/org/openelisglobal/systemuser/service/UserService.java
@@ -23,7 +23,7 @@ void saveUserLabUnitRoles(SystemUser systemUser, Map> select
List getAllUserLabUnitRoles();
- List getUserTestSections(String systemUserId, String userRole);
+ List getUserTestSections(String systemUserId, String roleId);
List getUserSampleTypes(String systemUserId, String userRole);
diff --git a/src/main/java/org/openelisglobal/userrole/dao/UserRoleDAO.java b/src/main/java/org/openelisglobal/userrole/dao/UserRoleDAO.java
index 88a22eaef2..ef83769e11 100644
--- a/src/main/java/org/openelisglobal/userrole/dao/UserRoleDAO.java
+++ b/src/main/java/org/openelisglobal/userrole/dao/UserRoleDAO.java
@@ -32,4 +32,6 @@ public interface UserRoleDAO extends BaseDAO {
List getRoleIdsForUser(String userId) throws LIMSRuntimeException;
void deleteLabUnitRoleMap(LabUnitRoleMap roleMap);
+
+ List getUserIdsForRole(String roleName);
}
diff --git a/src/main/java/org/openelisglobal/userrole/daoimpl/UserRoleDAOImpl.java b/src/main/java/org/openelisglobal/userrole/daoimpl/UserRoleDAOImpl.java
index 10c1252659..9eca84faba 100644
--- a/src/main/java/org/openelisglobal/userrole/daoimpl/UserRoleDAOImpl.java
+++ b/src/main/java/org/openelisglobal/userrole/daoimpl/UserRoleDAOImpl.java
@@ -16,6 +16,7 @@
package org.openelisglobal.userrole.daoimpl;
import java.math.BigInteger;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.hibernate.HibernateException;
@@ -108,4 +109,20 @@ public void deleteLabUnitRoleMap(LabUnitRoleMap roleMap) {
throw new LIMSRuntimeException("Error in UserRoleDAOImpl userInRole()", e);
}
}
+
+ @Override
+ public List getUserIdsForRole(String roleName) {
+ List userIds = new ArrayList<>();
+ try {
+ String sql = "select cast(system_user_id AS varchar) from system_user_role sur join system_role as sr on sr.id = sur.role_id where sr.name = :roleName";
+ NativeQuery query = entityManager.unwrap(Session.class).createNativeQuery(sql);
+ query.setParameter("roleName", roleName);
+
+ userIds = query.list();
+ } catch (HibernateException e) {
+ LogEvent.logError(e);
+ throw new LIMSRuntimeException("Error in UserRoleDAOImpl userInRole()", e);
+ }
+ return userIds;
+ }
}
diff --git a/src/main/java/org/openelisglobal/userrole/service/UserRoleService.java b/src/main/java/org/openelisglobal/userrole/service/UserRoleService.java
index d4beaa5006..9c41021279 100644
--- a/src/main/java/org/openelisglobal/userrole/service/UserRoleService.java
+++ b/src/main/java/org/openelisglobal/userrole/service/UserRoleService.java
@@ -23,4 +23,6 @@ public interface UserRoleService extends BaseObjectService
void deleteLabUnitRoleMap(LabUnitRoleMap roleMap);
List getAllUserLabUnitRoles();
+
+ List getUserIdsForRole(String roleName);
}
diff --git a/src/main/java/org/openelisglobal/userrole/service/UserRoleServiceImpl.java b/src/main/java/org/openelisglobal/userrole/service/UserRoleServiceImpl.java
index b08d2f38ea..e43ab4214c 100644
--- a/src/main/java/org/openelisglobal/userrole/service/UserRoleServiceImpl.java
+++ b/src/main/java/org/openelisglobal/userrole/service/UserRoleServiceImpl.java
@@ -72,4 +72,9 @@ public void deleteLabUnitRoleMap(LabUnitRoleMap roleMap) {
public List getAllUserLabUnitRoles() {
return userLabUnitRolesDAO.getAll();
}
+
+ @Override
+ public List getUserIdsForRole(String roleName) {
+ return baseObjectDAO.getUserIdsForRole(roleName);
+ }
}
diff --git a/src/main/resources/languages/message_en.properties b/src/main/resources/languages/message_en.properties
index 88b329f39e..b117b86101 100644
--- a/src/main/resources/languages/message_en.properties
+++ b/src/main/resources/languages/message_en.properties
@@ -3689,6 +3689,10 @@ note.type.internal = Internal
note.type.nonConformity = Non Conformity
note.type.rejectReason = Reject reason
+notification.order.stat = STAT priority Order with Lab Number {0} has been Created for Tests :
+notification.result.stat = STAT priority Test Results have been created for Tests :
+notification.eorder.stat = Incoming Order with ExternalId {0} has STAT priority
+
occupation.add.title = Add Occupation
#--Occupation
occupation.browse.title = Occupation
diff --git a/src/main/resources/languages/message_fr.properties b/src/main/resources/languages/message_fr.properties
index b7783e76b1..88d5ab81d2 100644
--- a/src/main/resources/languages/message_fr.properties
+++ b/src/main/resources/languages/message_fr.properties
@@ -4273,6 +4273,10 @@ note.type.internal = Interne
note.type.nonConformity = Non Conformity
note.type.rejectReason = Raison de rejet
+notification.order.stat = Une commande STAT prioritaire avec le numéro de laboratoire {0} a été créée pour les tests :
+notification.result.stat = Les résultats des tests prioritaires STAT ont été créés pour les tests :
+notification.result.stat = Une commande entrante avec l'ID externe {0} a une priorité STAT
+
occupation.add.title = Ajouter Profession
occupation.edit.title = \u00C9diter Profession