diff --git a/ehr/api-src/org/labkey/api/ehr/EHRService.java b/ehr/api-src/org/labkey/api/ehr/EHRService.java index 183d7fe43..4f4f90027 100644 --- a/ehr/api-src/org/labkey/api/ehr/EHRService.java +++ b/ehr/api-src/org/labkey/api/ehr/EHRService.java @@ -305,4 +305,7 @@ public EHRQCState getQCState(@NotNull Container c) /** Extracts the study definition from a module resource to the pipeline root and queues a study import job */ abstract public void importStudyDefinition(Container container, User user, Module m, Path studyFolderPath) throws IOException; + + /** Used to register EHR modules that require the edit url on the grid (with rows having task id values) to navigate to the data entry form **/ + abstract public void addModulePreferringTaskFormEditUI(Module m); } diff --git a/ehr/resources/queries/study/deaths.js b/ehr/resources/queries/study/deaths.js index 939d00cf4..cc2ded893 100644 --- a/ehr/resources/queries/study/deaths.js +++ b/ehr/resources/queries/study/deaths.js @@ -10,7 +10,7 @@ EHR.Server.Utils = require("ehr/utils").EHR.Server.Utils; var demographicsUpdates = []; var validIds = []; var totalDemographicsAnimalsUpdated = 0; -var batchSize = 250; +var batchSize = 125; function onInit(event, helper){ helper.setScriptOptions({ diff --git a/ehr/src/org/labkey/ehr/EHRController.java b/ehr/src/org/labkey/ehr/EHRController.java index 24a60f520..e0d749d67 100644 --- a/ehr/src/org/labkey/ehr/EHRController.java +++ b/ehr/src/org/labkey/ehr/EHRController.java @@ -354,7 +354,7 @@ public ModelAndView getView(EHRQueryForm form, BindException errors) { String detailsStr; String importStr; - if (EHRServiceImpl.get().isUseLegagyExt3EditUI(getContainer()) && !isExt4Form(form.getSchemaName(), form.getQueryName()) && !isReactForm(form.getSchemaName(), form.getQueryName())) + if (EHRServiceImpl.get().isUseLegacyExt3EditUI(getContainer()) && !isExt4Form(form.getSchemaName(), form.getQueryName()) && !isReactForm(form.getSchemaName(), form.getQueryName())) { // Because the Ext3-based UI can rely on loading JS-based metadata that is keyed // off table name, and because when this was originally written LK preferentially used label over title for @@ -397,7 +397,8 @@ else if (isReactForm(form.getSchemaName(), form.getQueryName())) url.addParameter("importURL", importUrl.toString()); } } - else { + else + { detailsStr = "/ehr/dataEntryFormForQuery.view?schemaName=" + schemaName + "&queryName=" + queryName; importStr = ""; for (String pkCol : ti.getPkColumnNames()) @@ -415,7 +416,15 @@ else if (isReactForm(form.getSchemaName(), form.getQueryName())) } } - DetailsURL updateUrl = DetailsURL.fromString(detailsStr); + DetailsURL updateUrl; + if (EHRServiceImpl.get().isUseFormEditUI(getContainer()) && null != ti.getColumn("taskid")) + { + updateUrl = DetailsURL.fromString("/ehr/dataEntryForm.view?taskid=${taskid}&formType=${taskid/formType}"); + } + else + { + updateUrl = DetailsURL.fromString(detailsStr); + } updateUrl.setContainerContext(getContainer()); String deleteQueryName = ti.getName(); diff --git a/ehr/src/org/labkey/ehr/EHRServiceImpl.java b/ehr/src/org/labkey/ehr/EHRServiceImpl.java index f2a6fd6be..ff50ecb58 100644 --- a/ehr/src/org/labkey/ehr/EHRServiceImpl.java +++ b/ehr/src/org/labkey/ehr/EHRServiceImpl.java @@ -117,6 +117,7 @@ public class EHRServiceImpl extends EHRService private Map>> _moreActionsButtons = new CaseInsensitiveHashMap<>(); private Map>> _tbarButtons = new CaseInsensitiveHashMap<>(); private Set _modulesRequiringLegacyExt3UI = new HashSet<>(); + private Set _modulesRequiringFormEditUI = new HashSet<>(); private ProjectValidator _projectValidator = null; private static final Logger _log = LogManager.getLogger(EHRServiceImpl.class); @@ -851,6 +852,12 @@ public void addModuleRequiringLegacyExt3EditUI(Module m) _modulesRequiringLegacyExt3UI.add(m); } + @Override + public void addModulePreferringTaskFormEditUI(Module m) + { + _modulesRequiringFormEditUI.add(m); + } + @Override public void importStudyDefinition(Container container, User user, Module m, Path sourceStudyDirPath) throws IOException { @@ -896,10 +903,20 @@ private void copyResourceToPath(Resource resource, java.nio.file.Path target) th } } - public boolean isUseLegagyExt3EditUI(Container c) + public boolean isUseLegacyExt3EditUI(Container c) + { + return isRegisteredUI(_modulesRequiringLegacyExt3UI, c); + } + + public boolean isUseFormEditUI(Container c) + { + return isRegisteredUI(_modulesRequiringFormEditUI, c); + } + + private boolean isRegisteredUI(Set modules, Container c) { Set am = c.getActiveModules(); - for (Module m : _modulesRequiringLegacyExt3UI) + for (Module m : modules) { if (am.contains(m)) {