diff --git a/onprc_ehr/resources/schemas/dbscripts/sqlserver/onprc_ehr-23.015-23.016.sql b/onprc_ehr/resources/schemas/dbscripts/sqlserver/onprc_ehr-23.015-23.016.sql new file mode 100644 index 000000000..dfefdcc84 --- /dev/null +++ b/onprc_ehr/resources/schemas/dbscripts/sqlserver/onprc_ehr-23.015-23.016.sql @@ -0,0 +1,266 @@ + + + + + +/* +** +** Created by +** R. Blasa 6-5-2024 A Program Process that reviews all TB Test entries on a given date, and creates a +** new TB Test Clinical Observation record based on +** having the same monkey id, date, and to be assigned to a Data Admin for reviews. +** +** R. Blasa Modified program so that each Clinical Observation entries generated by the program is assigned +** only a single task id when the program executes daily. +** +** +*/ + + ALTER Procedure onprc_ehr.p_Create_TB_Observationrecords + + + + AS + + + +DECLARE + @SearchKey Int, + @TempsearchKey Int, + @TaskId varchar(4000), + @ObjectId varchar(4000), + @AnimalID varchar(100), + @date datetime, + @createdby smallint, + @created smalldatetime, + @performedby varchar(200), + @RunID varchar(4000) + + + + +BEGIN + + + + ---- Reset temp table + +Truncate table onprc_ehr.TB_TestTemp + + + If @@Error <> 0 + GoTo Err_Proc + + + --- Generate a list TB test monkeys ) + + Insert into onprc_ehr.TB_TestTemp + +select + a.participantid, + a.date, + a.objectid, + a.created, + a.createdBy, + a.performedby + + + + +from studydataset.c6d214_encounters a +Where a.participantid not in (select b.participantid from studydataset.c6d171_clinical_observations b + where a.participantid = b.participantid + And cast(b.date as date) = dateadd(day,3,cast(a.date as date)) + And b.category = 'TB TST Score (72 hr)' + And a.created >= cast(getdate() as date) + And a.type = 'Procedure' And a.qcstate = 18 And a.procedureid = 802 ) + + And a.type = 'Procedure' And a.qcstate = 18 And a.procedureid = 802 -----'TB Test Intradermal' + And a.created >= cast(getdate() as date) +And a.participantid in ( select k.participantid from studydataset.c6d203_demographics k + where k.calculated_status = 'alive') + +order by a.participantid, a.date desc + + + If @@Error <> 0 + GoTo Err_Proc + + ---- When there are no records to process, exit immediately from the program. + + If (Select count(*) from onprc_ehr.TB_TestTemp) = 0 + BEGIN + GOTO No_Records + END + + + ---- Reset temp variables + + Set @SearchKey = 0 + Set @TempSearchKey = 0 + Set @Date = NULL + Set @created = NULL + Set @createdby =NULL + Set @performedby = NULL + Set @TaskID = NULL + Set @Animalid = Null + Set @RunID = Null + + + + ----- extract initial row id + + Select Top 1 @Searchkey = rowid from onprc_ehr.TB_TestTemp + Order by rowid + + + Set @TaskID = NEWID() ----- Task Record Object ID + + ----Create a single task for each daily process + + + Insert into EHR.Tasks + ( + taskid, + description, + title, + qcstate, + formType, + category, + container, + assignedto, + created, + createdby, + modified, + modifiedby + + ) + + Values ( + + @TaskID, + 'TB TST Scores ' + cast(@Date as varchar(50)) , ------ Title consist of animal id and Clinical procedure date + 'TB TST Scores', + 20, --- Qc State (In Progress) + 'TB TST Scores', ------ FormType + 'task', ----- category, + 'CD17027B-C55F-102F-9907-5107380A54BE', ---- EHR Container + 1822, -------- Assigned To Data Admins + getdate(), ------- Create Date + 1042, -------- Created By IS + getdate(), ------- Modified Date + 1042 ----- Modified by IS + + ) + + If @@Error <> 0 + GoTo Err_Proc + + + + While @TempSearchKey < @SearchKey + BEGIN + + -----Begin entry Tb observation process + + Select @Animalid =animalid, @date = date, @created =created, @createdby =createdby,@performedby= performedby from onprc_ehr.TB_TestTemp Where rowid = @Searchkey + + If not exists (select * from studydataset.c6d171_clinical_observations j Where j.participantid = @AnimalID + And cast(j.date as date) = dateadd(day,3,cast(@date as date)) And j.category = 'TB TST Score (72 hr)' ) + BEGIN + + + + ----- Initialize data entries + Set @RunID = NEWID() ---- ObjectID + Set @date = dateadd(day, 3,@date) ----- Add three days from TB Test date + + + + --- Create a Clinical Observation Record + + Insert into studydataset.c6d171_clinical_observations + ( + participantid, + date, + category, + area, + observation, + created, + createdby, + performedby, + objectid, + taskid, + qcstate, + modified, + modifiedby, + lsid + + ) + values ( + @animalid, + @date, + 'TB TST Score (72 hr)', + 'Right Eyelid', + 'Grade: Negative', + getdate(), ----- created + @createdby, + @performedby, + @RunID , ----- Objectid + @TaskID, + 20 , ---- In Progress QCState + getdate(), -----modified + @createdBy, + 'urn:lsid:ohsu.edu:Study.Data-6:5006.10003.19810204.0000.' + '' + @RunID + '' + + ) + + If @@Error <> 0 + GoTo Err_Proc + + + +END + + + ----- Proceed and fetch the next record + + Set @TempSearchKey = @SearchKey + +Select Top 1 @SearchKey = rowid from onprc_ehr.TB_TestTemp +Where rowid > @TempSearchKey +Order by rowid + + +END ---- While @TempSearchKey + + + ----- Create a master copy of the completed transaction + + Insert into onprc_ehr.TB_TestTempMaster + Select * from onprc_ehr.TB_TestTemp + + If @@Error <> 0 + GoTo Err_Proc + + + +No_Records: + + RETURN 0 + + +Err_Proc: + -------Error Generated, program processed stopped + RETURN 1 + + +END + +GO + + + + + + diff --git a/onprc_ehr/resources/scripts/onprc_ehr/onprc_triggers.js b/onprc_ehr/resources/scripts/onprc_ehr/onprc_triggers.js index 26a68123b..43cefaf5c 100644 --- a/onprc_ehr/resources/scripts/onprc_ehr/onprc_triggers.js +++ b/onprc_ehr/resources/scripts/onprc_ehr/onprc_triggers.js @@ -471,7 +471,7 @@ exports.init = function(EHR){ var msg = triggerHelper.validateMenseFlagprocess(row.Id); if (msg) { - EHR.Server.Utils.addError(scriptErrors, 'category', msg, 'ERROR'); + EHR.Server.Utils.addError(scriptErrors, 'category', msg, 'WARN'); } } diff --git a/onprc_ehr/resources/views/dcmPage.webpart.xml b/onprc_ehr/resources/views/dcmPage.webpart.xml index aa87181b7..6f940642e 100644 --- a/onprc_ehr/resources/views/dcmPage.webpart.xml +++ b/onprc_ehr/resources/views/dcmPage.webpart.xml @@ -1,4 +1,4 @@ - + diff --git a/onprc_ehr/resources/views/onprcMenu.html b/onprc_ehr/resources/views/onprcMenu.html index 83cfc24f8..336f60b31 100644 --- a/onprc_ehr/resources/views/onprcMenu.html +++ b/onprc_ehr/resources/views/onprcMenu.html @@ -90,7 +90,7 @@ title: 'Admin' },{ itemId: 'dcm', - title: 'ARRS' //Changed the tilte by kollil on 9/26/23. Refer to ticket # 9967 + title: 'DCM' //By Kollil: Changed the title back to DCM as per tkt #10920. },{ title: 'Labs', itemId: 'labs' diff --git a/onprc_ehr/resources/web/onprc_ehr/model/sources/Menses.js b/onprc_ehr/resources/web/onprc_ehr/model/sources/Menses.js new file mode 100644 index 000000000..a359167b9 --- /dev/null +++ b/onprc_ehr/resources/web/onprc_ehr/model/sources/Menses.js @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2014-2019 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 + */ +EHR.model.DataModelManager.registerMetadata('MensesAddendum', { + byQuery: { + 'study.clinical_observations': { + category: { + defaultValue: 'Menses' + }, + observation: { + defaultValue: 'M' + } + } + } +}); + + +EHR.DataEntryUtils.registerDataEntryFormButton('MENSEFINAL', { + text: 'Submit Final', + name: 'submit', + requiredQC: 'Completed', + targetQC: 'Completed', + errorThreshold: 'INFO', + successURL: LABKEY.ActionURL.getParameter('srcURL') || LABKEY.ActionURL.getParameter('returnUrl') || LABKEY.ActionURL.getParameter('returnURL') || LABKEY.ActionURL.buildURL('ehr', 'enterData.view'), + disabled: true, + itemId: 'finalBtn', + handler: function(btn){ + var panel = btn.up('ehr-dataentrypanel'); + Ext4.Msg.confirm('Finalize Form', 'You are about to finalize this form. Do you want to do this?', function(v){ + if(v == 'yes') + this.onSubmit(btn); + }, this); + }, + disableOn: 'ERROR' + +}); \ No newline at end of file diff --git a/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java b/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java index 873b1de6e..ff06b7cd2 100644 --- a/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java +++ b/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java @@ -126,7 +126,7 @@ public String getName() @Override public @Nullable Double getSchemaVersion() { - return 23.015; + return 23.016; } @Override diff --git a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ARTCoreRequestFormType.java b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ARTCoreRequestFormType.java index fce554958..5741e32ee 100644 --- a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ARTCoreRequestFormType.java +++ b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ARTCoreRequestFormType.java @@ -27,7 +27,7 @@ //Created: 1/13/2021 Kollil public class ARTCoreRequestFormType extends RequestForm { - public static final String NAME = "ART CORE SERVICES REQUEST"; + public static final String NAME = "ART Core Services Request"; public static final String DEFAULT_GROUP = "ART Core Services"; public ARTCoreRequestFormType(DataEntryFormContext ctx, Module owner) diff --git a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ASBRequestFormType.java b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ASBRequestFormType.java index e933e8832..99c1dc262 100644 --- a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ASBRequestFormType.java +++ b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/ASBRequestFormType.java @@ -29,7 +29,7 @@ //Modified: 12-21-2016 R.blasa public class ASBRequestFormType extends RequestForm { - public static final String NAME = "ASB SERVICES REQUEST"; + public static final String NAME = "ASB Services Request"; public static final String DEFAULT_GROUP = "ASB Services"; public ASBRequestFormType(DataEntryFormContext ctx, Module owner) diff --git a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/MensFormType.java b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/MensFormType.java index c1c78a93d..8a168cd66 100644 --- a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/MensFormType.java +++ b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/MensFormType.java @@ -25,6 +25,8 @@ import org.labkey.api.view.template.ClientDependency; import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; /** * User: bimber @@ -43,16 +45,30 @@ public MensFormType(DataEntryFormContext ctx, Module owner) new MensFormSection() )); - addClientDependency(ClientDependency.supplierFromPath("ehr/model/sources/Menses.js")); + addClientDependency(ClientDependency.supplierFromPath("onprc_ehr/model/sources/Menses.js")); - setDisplayReviewRequired(true); for (FormSection s : getFormSections()) { s.addConfigSource("Task"); - s.addConfigSource("Menses"); + s.addConfigSource("MensesAddendum"); } } + // Added 10-9-2024 r. Blasa + @Override + protected List getButtonConfigs() + { + List defaultButtons = new ArrayList<>(); + + defaultButtons.remove("SUBMIT"); + defaultButtons.add("SAVEDRAFT"); + defaultButtons.add("CLOSE"); + defaultButtons.add("REVIEW"); + defaultButtons.add("MENSEFINAL"); + + + return defaultButtons; + } @Override protected boolean canInsert() diff --git a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/PMICRequestFormType.java b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/PMICRequestFormType.java index 18ee21d60..68f91560f 100644 --- a/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/PMICRequestFormType.java +++ b/onprc_ehr/src/org/labkey/onprc_ehr/dataentry/PMICRequestFormType.java @@ -35,7 +35,7 @@ //Created: 5/23/2019 Kollil public class PMICRequestFormType extends RequestForm { - public static final String NAME = "PMIC SERVICES REQUEST"; + public static final String NAME = "PMIC Services Request"; public static final String DEFAULT_GROUP = "PMIC Services"; public PMICRequestFormType(DataEntryFormContext ctx, Module owner) diff --git a/onprc_ehr/test/src/org/labkey/test/tests/onprc_ehr/ONPRC_EHRTest2.java b/onprc_ehr/test/src/org/labkey/test/tests/onprc_ehr/ONPRC_EHRTest2.java index 85ac1d208..46c50a9ad 100644 --- a/onprc_ehr/test/src/org/labkey/test/tests/onprc_ehr/ONPRC_EHRTest2.java +++ b/onprc_ehr/test/src/org/labkey/test/tests/onprc_ehr/ONPRC_EHRTest2.java @@ -1321,7 +1321,7 @@ public void bloodRequestTest() throws IOException, CommandException log("Creating the blood draw request"); goToProjectHome(); clickAndWait(Locator.linkWithText("Manage Requests")); - waitAndClickAndWait(Locator.linkWithText("ASB SERVICES REQUEST")); + waitAndClickAndWait(Locator.linkWithText("ASB Services Request")); addBloodDrawRequest(animalId, now, "795644", "Heparin", 12); checker().withScreenshot("Blood request").verifyTrue("Expected error is not present", isAnyTextPresent(