From 17b60559e450eaef56cc3d6d0b64ea77c38784c5 Mon Sep 17 00:00:00 2001 From: Josh Eckels Date: Sun, 31 Oct 2021 22:05:40 -0700 Subject: [PATCH 1/4] Remove center-specific setup code (#258) * Fix ONPRC test query validation errors by adding missing column and enabling module. Add dependency on SampleManagement Remove some center-specific code from AbstractEHRTest Misc code cleanup --- .../test/tests/ehr/AbstractEHRTest.java | 78 +++---------------- .../labkey/test/tests/ehr/EHRSetupHelper.java | 60 -------------- .../AbstractGenericONPRC_EHRTest.java | 76 +++++++++++++++++- 3 files changed, 84 insertions(+), 130 deletions(-) delete mode 100644 ehr/test/src/org/labkey/test/tests/ehr/EHRSetupHelper.java diff --git a/ehr/test/src/org/labkey/test/tests/ehr/AbstractEHRTest.java b/ehr/test/src/org/labkey/test/tests/ehr/AbstractEHRTest.java index 60643e30a..61f4ce3e4 100644 --- a/ehr/test/src/org/labkey/test/tests/ehr/AbstractEHRTest.java +++ b/ehr/test/src/org/labkey/test/tests/ehr/AbstractEHRTest.java @@ -142,7 +142,6 @@ abstract public class AbstractEHRTest extends BaseWebDriverTest implements Advan protected List _saveRowsTimes; protected abstract String getModuleDirectory(); - private EHRSetupHelper _setupHelper = new EHRSetupHelper(this, getProjectName(), FOLDER_NAME, getModulePath(), getContainerPath()); protected EHRBillingHelper _billingHelper = new EHRBillingHelper(this, getProjectName(), FOLDER_NAME, getModulePath(), getContainerPath(),BILLING_FOLDER); //xpath fragment @@ -221,7 +220,7 @@ protected void createTestSubjects() throws Exception { String[] fields; Object[][] data; - PostCommand insertCommand; + PostCommand insertCommand; //insert into demographics log("Creating test subjects"); @@ -376,22 +375,26 @@ protected void createProjectAndFolders(String type) _containerHelper.createSubfolder(getProjectName(), getProjectName(), FOLDER_NAME, type, null); } + /** Hook for center-specific setup that needs to happen after the containers are created but before the study is imported */ + protected void doExtraPreStudyImportSetup() + { + + } + + @LogMethod protected void initProject() throws Exception { initProject("EHR"); } - @LogMethod protected void initProject(String type) throws Exception { createProjectAndFolders(type); setFormatStrings(); setEHRModuleProperties(); createUsersandPermissions();//note: we create the users prior to study import, b/c that user is used by TableCustomizers - if(type.equals("TNPRC EHR")) - _setupHelper.loadEHRTableDefinitions(); - if(type.equals("ONPRC EHR")) - onprcSetupBeforeStudyUpload(); //this needs to happen before import study() below so that 'Validation Queries' step doesn't fail since the queries depend on setup in this method. + + doExtraPreStudyImportSetup(); populateInitialData(); defineQCStates(); @@ -406,67 +409,6 @@ protected void initProject(String type) throws Exception primeCaches(); } - private void onprcSetupBeforeStudyUpload() - { - //create onprc_billing_public linked schema - beginAt(getProjectName()); - SchemaHelper schemaHelper = new SchemaHelper(this); - schemaHelper.createLinkedSchema(this.getProjectName(), null, "onprc_billing_public", "/" + this.getContainerPath(), "onprc_billing_public", null, null, null); - - //create Labfee_NoChargeProjects - beginAt(getProjectName()); - - ListHelper.ListColumn projectCol= new ListHelper.ListColumn("project", ListHelper.ListColumnType.Integer); - ListHelper.ListColumn startDateCol= new ListHelper.ListColumn("startDate", ListHelper.ListColumnType.DateAndTime); - ListHelper.ListColumn dateDisabledCol= new ListHelper.ListColumn("dateDisabled", ListHelper.ListColumnType.DateAndTime); - ListHelper.ListColumn createdDbCol= new ListHelper.ListColumn("Createdb", ListHelper.ListColumnType.Integer); - ListHelper.ListColumn notesCol= new ListHelper.ListColumn("Notes", ListHelper.ListColumnType.String); - _listHelper.createList(getProjectName(), "Labfee_NoChargeProjects", ListHelper.ListColumnType.Integer, "key", projectCol, startDateCol, dateDisabledCol, createdDbCol, notesCol); - - _listHelper.createList(getProjectName(), "GeneticValue", ListHelper.ListColumnType.String, "Id", - new ListHelper.ListColumn("meanKinship", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("zscore", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("genomeUniqueness", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("totalOffspring", ListHelper.ListColumnType.Integer), - new ListHelper.ListColumn("livingOffspring", ListHelper.ListColumnType.Integer), - new ListHelper.ListColumn("assignments", ListHelper.ListColumnType.Integer), - new ListHelper.ListColumn("condition", ListHelper.ListColumnType.String), - new ListHelper.ListColumn("import", ListHelper.ListColumnType.String), - new ListHelper.ListColumn("value", ListHelper.ListColumnType.String), - new ListHelper.ListColumn("rank", ListHelper.ListColumnType.Integer) - ); - - _listHelper.createList(getProjectName(), "Special_Aliases", ListHelper.ListColumnType.AutoInteger, "Key", - new ListHelper.ListColumn("Category", ListHelper.ListColumnType.String), - new ListHelper.ListColumn("Alias", ListHelper.ListColumnType.String)); - - // Fake up an external schema connection for "dbo" via a list and a linked schema - _listHelper.createList(getProjectName(), "Rpt_ChargesProjection", ListHelper.ListColumnType.AutoInteger, "RowId", - new ListHelper.ListColumn("ChargeId", ListHelper.ListColumnType.Integer), - new ListHelper.ListColumn("UnitCost", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year1", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year2", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year3", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year4", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year5", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year6", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year7", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("year8", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate1", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate2", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate3", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate4", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate5", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate6", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate7", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate8", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("Aprate9", ListHelper.ListColumnType.Decimal), - new ListHelper.ListColumn("PostedDate", ListHelper.ListColumnType.DateAndTime) - ); - schemaHelper.createLinkedSchema(this.getProjectName(), null, "dbo", "/" + this.getContainerPath(), null, "lists", null, null); - - } - @LogMethod(quiet = true) protected void populate(@LoggedParam String tableLabel) { diff --git a/ehr/test/src/org/labkey/test/tests/ehr/EHRSetupHelper.java b/ehr/test/src/org/labkey/test/tests/ehr/EHRSetupHelper.java deleted file mode 100644 index 4becf11dc..000000000 --- a/ehr/test/src/org/labkey/test/tests/ehr/EHRSetupHelper.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2018-2019 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.labkey.test.tests.ehr; - -import org.labkey.test.BaseWebDriverTest; -import org.labkey.test.Locator; - -public class EHRSetupHelper -{ - private BaseWebDriverTest _test; - private String _projectName; - private String _folderName; - private String _modulePath; - private String _containerPath; - - public EHRSetupHelper(BaseWebDriverTest test, String projectName, String folderName, String modulePath, String containerPath) - { - this(test, projectName); - _folderName = folderName; - _modulePath = modulePath; - _containerPath = containerPath; - } - - public EHRSetupHelper(BaseWebDriverTest test, String projectName) - { - _test = test; - _projectName = projectName; - } - - public void loadEHRTableDefinitions() - { - _test.goToProjectHome(); - if (_folderName != null && _projectName == "TNPRC") - _test.clickFolder(_folderName); - else - _test.clickFolder(_projectName); - - _test.beginAt(_test.getCurrentContainerPath() + "/tnprc_ehr-ehrSettings.view?"); - _test.clickButton("Load EHR table definitions", 0); - _test.waitForElement(Locator.tagWithClass("span", "x4-window-header-text").withText("Success")); - _test.assertExt4MsgBox("EHR tables updated successfully.", "OK"); - - _test.clickButton("Load EHR_Lookup table definitions", 0); - _test.waitForElement(Locator.tagWithClass("span", "x4-window-header-text").withText("Success")); - _test.assertExt4MsgBox("EHR_Lookups tables updated successfully.", "OK"); - } -} diff --git a/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java b/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java index fc5d7fb98..108568b99 100644 --- a/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java +++ b/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java @@ -25,19 +25,19 @@ import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; -import org.labkey.test.Locator; import org.labkey.test.ModulePropertyValue; import org.labkey.test.TestFileUtils; import org.labkey.test.WebTestHelper; import org.labkey.test.tests.ehr.AbstractGenericEHRTest; import org.labkey.test.util.Ext4Helper; +import org.labkey.test.util.ListHelper; import org.labkey.test.util.LogMethod; import org.labkey.test.util.PasswordUtil; +import org.labkey.test.util.SchemaHelper; import org.labkey.test.util.SqlserverOnlyTest; import org.labkey.test.util.ehr.EHRClientAPIHelper; import org.labkey.test.util.ext4cmp.Ext4CmpRef; import org.labkey.test.util.ext4cmp.Ext4FieldRef; -import org.openqa.selenium.WebElement; import java.io.File; import java.text.SimpleDateFormat; @@ -114,6 +114,78 @@ protected void importStudy() importStudyFromPath(1); } + @Override + protected void doExtraPreStudyImportSetup() + { + //create onprc_billing_public linked schema + beginAt(getProjectName()); + SchemaHelper schemaHelper = new SchemaHelper(this); + schemaHelper.createLinkedSchema(this.getProjectName(), null, "onprc_billing_public", "/" + this.getContainerPath(), "onprc_billing_public", null, null, null); + + //create Labfee_NoChargeProjects + beginAt(getProjectName()); + + ListHelper.ListColumn projectCol= new ListHelper.ListColumn("project", ListHelper.ListColumnType.Integer); + ListHelper.ListColumn startDateCol= new ListHelper.ListColumn("startDate", ListHelper.ListColumnType.DateAndTime); + ListHelper.ListColumn dateDisabledCol= new ListHelper.ListColumn("dateDisabled", ListHelper.ListColumnType.DateAndTime); + ListHelper.ListColumn createdDbCol= new ListHelper.ListColumn("Createdb", ListHelper.ListColumnType.Integer); + ListHelper.ListColumn notesCol= new ListHelper.ListColumn("Notes", ListHelper.ListColumnType.String); + _listHelper.createList(getProjectName(), "Labfee_NoChargeProjects", ListHelper.ListColumnType.Integer, "key", projectCol, startDateCol, dateDisabledCol, createdDbCol, notesCol); + + _listHelper.createList(getProjectName(), "GeneticValue", ListHelper.ListColumnType.String, "Id", + new ListHelper.ListColumn("meanKinship", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("zscore", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("genomeUniqueness", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("totalOffspring", ListHelper.ListColumnType.Integer), + new ListHelper.ListColumn("livingOffspring", ListHelper.ListColumnType.Integer), + new ListHelper.ListColumn("assignments", ListHelper.ListColumnType.Integer), + new ListHelper.ListColumn("condition", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("import", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("value", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("rank", ListHelper.ListColumnType.Integer) + ); + + _listHelper.createList(getProjectName(), "Special_Aliases", ListHelper.ListColumnType.AutoInteger, "Key", + new ListHelper.ListColumn("Category", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("Alias", ListHelper.ListColumnType.String)); + + // Fake up an external schema connection for "dbo" via a list and a linked schema + _listHelper.createList(getProjectName(), "Rpt_ChargesProjection", ListHelper.ListColumnType.AutoInteger, "RowId", + new ListHelper.ListColumn("ChargeId", ListHelper.ListColumnType.Integer), + new ListHelper.ListColumn("UnitCost", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year1", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year2", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year3", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year4", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year5", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year6", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year7", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("year8", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate1", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate2", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate3", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate4", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate5", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate6", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate7", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate8", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("Aprate9", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("PostedDate", ListHelper.ListColumnType.DateAndTime) + ); + + // Mock up a table in the geneticscore schema instead of needing to mock up all of the geneticscore dependencies too + _listHelper.createList(getProjectName(), "mhc_data", ListHelper.ListColumnType.AutoInteger, "RowId", + new ListHelper.ListColumn("subjectId", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("datatype", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("marker", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("result", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("score", ListHelper.ListColumnType.Decimal), + new ListHelper.ListColumn("assaytype", ListHelper.ListColumnType.String), + new ListHelper.ListColumn("totalTests", ListHelper.ListColumnType.Integer)); + + schemaHelper.createLinkedSchema(this.getProjectName(), "dbo", "/" + this.getContainerPath(), null, "lists", null, null); + } + @Override @LogMethod protected void initProject() throws Exception From cf55aa43650157a94df0fa285eb23ee73ad24412 Mon Sep 17 00:00:00 2001 From: Ankur Juneja Date: Fri, 5 Nov 2021 08:06:46 -0700 Subject: [PATCH 2/4] log non-date and non-string type date values (#256) --- ehr/resources/queries/ehr_lookups/cage.js | 3 +++ ehr/resources/scripts/ehr/utils.js | 21 ++++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ehr/resources/queries/ehr_lookups/cage.js b/ehr/resources/queries/ehr_lookups/cage.js index c86eff59a..1462e5135 100644 --- a/ehr/resources/queries/ehr_lookups/cage.js +++ b/ehr/resources/queries/ehr_lookups/cage.js @@ -14,6 +14,9 @@ function onUpsert(helper, scriptErrors, row, oldRow) { row.location = row.room; if (row.cage) row.location += '-' + row.cage; + if (row.location.length > 24) { + console.log("Location is longer than allowed length: ", row.location); + } //remove whitespace, normalize punctuation and pad digits if (row.joinToCage){ diff --git a/ehr/resources/scripts/ehr/utils.js b/ehr/resources/scripts/ehr/utils.js index a8b84e4ce..2873f707e 100644 --- a/ehr/resources/scripts/ehr/utils.js +++ b/ehr/resources/scripts/ehr/utils.js @@ -180,18 +180,21 @@ EHR.Server.Utils = new function(){ console.error('Unable to parse date string: ' + val); } } - else if (!isNaN(val)){ - // NOTE: i'm not sure if we should really attempt this. this should really never happen, - // and it's probably an error if it does - normalizedVal = new Date(val); - } else { - if (val['getTime']){ - normalizedVal = new Date(val.getTime()); + console.log('EHR trigger script is being passed a date with value: ' + val); + if (!isNaN(val)) { + // NOTE: i'm not sure if we should really attempt this. this should really never happen, + // and it's probably an error if it does + normalizedVal = new Date(val); } else { - if (!supppressErrors) - console.error('Unknown datatype for date value. Type was: ' + (typeof val) + ' and value was: ' + val); + if (val['getTime']) { + normalizedVal = new Date(val.getTime()); + } + else { + if (!supppressErrors) + console.error('Unknown datatype for date value. Type was: ' + (typeof val) + ' and value was: ' + val); + } } } From 7a2dc40058f2f99851f6bb5dabb666746181dad4 Mon Sep 17 00:00:00 2001 From: Josh Eckels Date: Mon, 8 Nov 2021 08:53:58 -0800 Subject: [PATCH 3/4] TNPRC Issue 290: Method to edit legacy data via query module update row (#260) * Don't assume table use LSID as the PK * Be tolerant of additional menu items in test validation * Show error to user instead of sending back blank page when no form type value is included --- ehr/src/org/labkey/ehr/EHRController.java | 34 +++++++++++++++++-- .../tests/ehr/AbstractGenericEHRTest.java | 2 +- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ehr/src/org/labkey/ehr/EHRController.java b/ehr/src/org/labkey/ehr/EHRController.java index e0d749d67..291471311 100644 --- a/ehr/src/org/labkey/ehr/EHRController.java +++ b/ehr/src/org/labkey/ehr/EHRController.java @@ -312,6 +312,7 @@ public ApiResponse execute(DiscardFormForm form, BindException errors) public static class EHRQueryForm extends QueryForm { private boolean _showImport = false; + private boolean _queryUpdateURL = false; public boolean isShowImport() { @@ -322,6 +323,16 @@ public void setShowImport(boolean showImport) { _showImport = showImport; } + + public boolean isQueryUpdateURL() + { + return _queryUpdateURL; + } + + public void setQueryUpdateURL(boolean queryUpdateURL) + { + _queryUpdateURL = queryUpdateURL; + } } @RequiresPermission(UpdatePermission.class) @@ -417,7 +428,24 @@ else if (isReactForm(form.getSchemaName(), form.getQueryName())) } DetailsURL updateUrl; - if (EHRServiceImpl.get().isUseFormEditUI(getContainer()) && null != ti.getColumn("taskid")) + if (form.isQueryUpdateURL()) + { + // Send to the query controller's basic row-level update form + StringBuilder sb = new StringBuilder("query-updateQueryRow.view?schemaName="); + sb.append(ti.getUserSchema().getName()); + sb.append("&queryName="); + sb.append(ti.getName()); + for (String pk : pks) + { + sb.append("&"); + sb.append(pk); + sb.append("=${"); + sb.append(pk); + sb.append("}"); + } + updateUrl = DetailsURL.fromString(sb.toString()); + } + else if (EHRServiceImpl.get().isUseFormEditUI(getContainer()) && null != ti.getColumn("taskid")) { updateUrl = DetailsURL.fromString("/ehr/dataEntryForm.view?taskid=${taskid}&formType=${taskid/formType}"); } @@ -1445,8 +1473,8 @@ public ModelAndView getView(EnterDataForm form, BindException errors) { if (form.getFormType() == null) { - errors.reject(ERROR_MSG, "Must provide either the form type"); - return null; + errors.reject(ERROR_MSG, "Must provide a form type"); + return new SimpleErrorView(errors); } _def = DataEntryManager.get().getFormByName(form.getFormType(), getContainer(), getUser()); diff --git a/ehr/test/src/org/labkey/test/tests/ehr/AbstractGenericEHRTest.java b/ehr/test/src/org/labkey/test/tests/ehr/AbstractGenericEHRTest.java index 0fe4caa81..e9dfaf8de 100644 --- a/ehr/test/src/org/labkey/test/tests/ehr/AbstractGenericEHRTest.java +++ b/ehr/test/src/org/labkey/test/tests/ehr/AbstractGenericEHRTest.java @@ -221,7 +221,7 @@ public void testCustomButtons() recallLocation(); List submenuItems = dr.getHeaderMenuOptions("More Actions"); List expectedSubmenu = Arrays.asList("Jump To History", "Return Distinct Values","Show Record History","Compare Weights","Edit Records"); - Assert.assertEquals("More actions menu did not contain expected options",expectedSubmenu, submenuItems); + Assert.assertTrue("More actions menu did not contain expected options. Expected: " + expectedSubmenu + ", but found: " + submenuItems, submenuItems.containsAll(expectedSubmenu)); } private void testUserAgainstAllStates(@LoggedParam EHRUser user) From 4323f7b2f52863b8beae71e3a950e007e5759a12 Mon Sep 17 00:00:00 2001 From: Josh Eckels Date: Mon, 8 Nov 2021 09:01:06 -0800 Subject: [PATCH 4/4] Support using linked schema in place of DB schema for testing purposes (#259) Co-authored-by: labkey-jeckels --- .../test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java b/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java index 108568b99..647a0ae83 100644 --- a/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java +++ b/ehr/test/src/org/labkey/test/tests/onprc_ehr/AbstractGenericONPRC_EHRTest.java @@ -104,7 +104,8 @@ protected void setEHRModuleProperties(ModulePropertyValue... extraProps) new ModulePropertyValue("ONPRC_Billing", "/" + getProjectName(), "BillingContainer", "/" + getContainerPath()), new ModulePropertyValue("ONPRC_Billing", "/" + getProjectName(), "BillingContainer_Public", "/" + getContainerPath()), new ModulePropertyValue("SLA", "/" + getProjectName(), "SLAContainer", "/" + getContainerPath()), - new ModulePropertyValue("ONPRC_EHR", "/" + getProjectName(), "DCM_NHP_Resources_Container", "/" + getContainerPath()) + new ModulePropertyValue("ONPRC_EHR", "/" + getProjectName(), "DCM_NHP_Resources_Container", "/" + getContainerPath()), + new ModulePropertyValue("ONPRC_EHR", "/" + getProjectName(), "MHC_Container", "/" + getContainerPath()) ); } @@ -184,6 +185,7 @@ protected void doExtraPreStudyImportSetup() new ListHelper.ListColumn("totalTests", ListHelper.ListColumnType.Integer)); schemaHelper.createLinkedSchema(this.getProjectName(), "dbo", "/" + this.getContainerPath(), null, "lists", null, null); + schemaHelper.createLinkedSchema(this.getProjectName(), "geneticscore", "/" + this.getContainerPath(), null, "lists", null, null); } @Override