diff --git a/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java b/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java index 937d62dfb4..c7dae5e4ef 100644 --- a/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java +++ b/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java @@ -170,7 +170,7 @@ public List getDefaultVisibleColumns() FieldKey runPropFieldKey = FieldKey.fromParts("Run"); fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("ProtocolName"))); fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("PlateReader"))); - fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("Batch"), FieldKey.fromString("TargetStudy"))); + fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("Batch"), FieldKey.fromString(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME))); return fieldKeys; } diff --git a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp index 49b8c693ab..cbfff7cb17 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp @@ -30,6 +30,7 @@ <%@ page import="java.util.LinkedHashMap" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.Set" %> +<%@ page import="org.labkey.api.assay.AbstractAssayProvider" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <% JspView me = HttpView.currentView(); @@ -86,8 +87,8 @@ to look up specimen information from the target study's specimen repository.

-
-

diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp index 8f274b591d..8c6d27aefd 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp @@ -36,6 +36,7 @@ <%@ page import="java.util.List" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.Set" %> +<%@ page import="org.labkey.api.assay.AbstractAssayProvider" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <%@ taglib prefix="labkey" uri="http://www.labkey.org/taglib" %> <% @@ -233,11 +234,8 @@ if (form.getKeywordDir() != null && form.getKeywordDir().length > 0 && StudyPubl

Choose a target study folder:
- <%=select().name("targetStudy").className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") + <%=select().name(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME).className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") %> -<%-- --%>

<% diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp index 3e13288659..30f9dc1104 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp @@ -42,6 +42,7 @@ <%@ page import="java.util.Map" %> <%@ page import="java.util.Set" %> <%@ page import="static org.labkey.flow.controllers.executescript.AnalysisScriptController.BACK_BUTTON_ACTION" %> +<%@ page import="org.labkey.api.assay.AbstractAssayProvider" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <% ImportAnalysisForm form = (ImportAnalysisForm)getModelBean(); @@ -93,7 +94,7 @@ <% } %> - +

You are about to import the analysis from the workspace with the following settings:

<% diff --git a/flow/src/org/labkey/flow/data/FlowProperty.java b/flow/src/org/labkey/flow/data/FlowProperty.java index 6581f94b3f..c6721cb6b4 100644 --- a/flow/src/org/labkey/flow/data/FlowProperty.java +++ b/flow/src/org/labkey/flow/data/FlowProperty.java @@ -16,6 +16,7 @@ package org.labkey.flow.data; +import org.labkey.api.assay.AbstractAssayProvider; import org.labkey.api.exp.PropertyType; import org.labkey.api.exp.property.SystemProperty; @@ -35,7 +36,7 @@ abstract public class FlowProperty static public final SystemProperty AnalysisEngine = new SystemProperty(PROPERTY_BASE + "AnalysisEngine", PropertyType.STRING); // Property on FlowRun ExpRun object: container id of target study - static public final SystemProperty TargetStudy = new SystemProperty(PROPERTY_BASE + "TargetStudy", PropertyType.STRING); + static public final SystemProperty TargetStudy = new SystemProperty(PROPERTY_BASE + AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, PropertyType.STRING); // Property on FlowFCSFile ExpData object: true when the FlowFCSFile was created from an external analysis (extracted from FlowJo workspace or analysis archive) //static public final SystemProperty ExtraKeywordsFCSFile = new SystemProperty(PROPERTY_BASE + "ExtraKeywordsFCSFile", PropertyType.BOOLEAN); diff --git a/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java b/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java index 246a469e17..2a81685ffb 100644 --- a/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java +++ b/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java @@ -16,6 +16,7 @@ package org.labkey.flow.query; import org.jetbrains.annotations.Nullable; +import org.labkey.api.assay.AbstractAssayProvider; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.JdbcType; import org.labkey.api.data.SQLFragment; @@ -74,7 +75,7 @@ public FCSFileCoalescingColumn(TableInfo parent, FieldKey key, JdbcType type, @N _dateFieldKeys = Pair.of(dateFieldKey, FlowSchema.rewriteAsOriginalFCSFile(dateFieldKey)); } - FieldKey targetStudyFieldKey = relativeFromFCSFile ? FieldKey.fromParts("Run", "TargetStudy") : FieldKey.fromParts("FCSFile", "Run", "TargetStudy"); + FieldKey targetStudyFieldKey = relativeFromFCSFile ? FieldKey.fromParts("Run", AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME) : FieldKey.fromParts("FCSFile", "Run", "TargetStudy"); _targetStudyFieldKeys = Pair.of(targetStudyFieldKey, FlowSchema.rewriteAsOriginalFCSFile(targetStudyFieldKey)); } diff --git a/flow/src/org/labkey/flow/reports/FilterFlowReport.java b/flow/src/org/labkey/flow/reports/FilterFlowReport.java index b3f3750d8c..7f7cff4fb0 100644 --- a/flow/src/org/labkey/flow/reports/FilterFlowReport.java +++ b/flow/src/org/labkey/flow/reports/FilterFlowReport.java @@ -197,7 +197,7 @@ void addScriptProlog(ViewContext context, StringBuffer sb) private String oldLegalName(FieldKey fkey) { String r = AliasManager.makeLegalName(StringUtils.join(fkey.getParts(), "_"), FlowManager.get().getSchema().getSqlDialect(), false); - return ColumnInfo.propNameFromName(r).toLowerCase(); + return ColumnInfo.legalNameFromName(r).toLowerCase(); } protected void convertDateColumn(CachedResultSet rs, String fromCol, String toCol) throws SQLException diff --git a/luminex/src/org/labkey/luminex/LuminexDataHandler.java b/luminex/src/org/labkey/luminex/LuminexDataHandler.java index e4390b5a3b..e1d77fa14b 100644 --- a/luminex/src/org/labkey/luminex/LuminexDataHandler.java +++ b/luminex/src/org/labkey/luminex/LuminexDataHandler.java @@ -141,7 +141,7 @@ public class LuminexDataHandler extends AbstractExperimentDataHandler implements public static final String QC_FLAG_SINGLE_POINT_CONTROL_ID = "SinglePointControlId"; // Column name to use in createQCFlagEnabledSQLFragment public static final String POSITIVITY_THRESHOLD_COLUMN_NAME = "PositivityThreshold"; public static final String POSITIVITY_THRESHOLD_DISPLAY_NAME = "Positivity Threshold"; - public static final String CALCULATE_POSITIVITY_COLUMN_NAME = "calculatePositivity"; + public static final String CALCULATE_POSITIVITY_COLUMN_NAME = "CalculatePositivity"; public static final String NEGATIVE_CONTROL_COLUMN_NAME = "NegativeControl"; public static final String NEGATIVE_BEAD_COLUMN_NAME = "NegativeBead"; public static final String NEGATIVE_BEAD_DISPLAY_NAME = "Subtract Negative Bead"; diff --git a/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java b/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java index f77493c6ff..e6d719c23b 100644 --- a/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java +++ b/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java @@ -268,7 +268,7 @@ public List getTitrations() throws ExperimentException titration.setName(titrationName); for (Titration.Type type : Titration.Type.values()) { - String propertyName = LuminexUploadWizardAction.getTitrationTypeCheckboxName(type, titration); + String propertyName = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(type, titration); if (getViewContext().getRequest().getParameter(propertyName) != null) { String hiddenValue = getViewContext().getRequest().getParameter(propertyName); @@ -293,7 +293,7 @@ public List getSinglePointControls() throws ExperimentExcept { SinglePointControl singlePointControl = new SinglePointControl(); singlePointControl.setName(singlePointControlName); - String propertyName = LuminexUploadWizardAction.getSinglePointControlCheckboxName(singlePointControlName); + String propertyName = LuminexUploadWizardAction.getSinglePointControlCheckboxNameAndId(singlePointControlName); if (StringUtils.isNotBlank(getViewContext().getRequest().getParameter(propertyName))) { result.add(singlePointControl); diff --git a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java index c3b2a481e6..a95fe9f5a5 100644 --- a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java +++ b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java @@ -60,6 +60,7 @@ import org.labkey.api.view.JspView; import org.labkey.api.view.VBox; import org.labkey.api.view.ViewServlet; +import org.labkey.api.view.template.PageConfig; import org.labkey.api.writer.HtmlWriter; import org.labkey.luminex.model.Analyte; import org.labkey.luminex.model.SinglePointControl; @@ -324,7 +325,7 @@ else if (analyteDefaultValue != null) } Titration existingTitration = existingTitrations.get(titrationEntry.getKey()); - String propertyName = getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + String propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value String defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isStandard()); @@ -359,7 +360,7 @@ else if (titrationEntry.getValue().isStandard()) if (!titrationEntry.getValue().isUnknown()) { - propertyName = getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isStandard()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isStandard()) ? "true" : ""; @@ -369,13 +370,13 @@ else if (titrationEntry.getValue().isStandard()) value = toShowStandardCheckboxColumn(errorReshow, standardTitrations, titrationEntry.getValue()) ? "true" : ""; view.getDataRegion().addHiddenFormField(getShowStandardCheckboxColumnName(titrationEntry.getValue()), value); - propertyName = getTitrationTypeCheckboxName(Titration.Type.qccontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.qccontrol, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isQcControl()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isQcControl()) ? "true" : ""; view.getDataRegion().addHiddenFormField(propertyName, value); - propertyName = getTitrationTypeCheckboxName(Titration.Type.othercontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.othercontrol, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isOtherControl()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isOtherControl()) ? "true" : ""; @@ -383,7 +384,7 @@ else if (titrationEntry.getValue().isStandard()) } else { - propertyName = getTitrationTypeCheckboxName(Titration.Type.unknown, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.unknown, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isUnknown()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isUnknown()) ? "true" : ""; @@ -400,7 +401,7 @@ else if (titrationEntry.getValue().isStandard()) boolean existingSinglePointControl = existingSinglePointControls.contains(singlePointControl); - propertyName = getSinglePointControlCheckboxName(singlePointControl); + propertyName = getSinglePointControlCheckboxNameAndId(singlePointControl); // If we have an existing singlePointControl as a baseline from the run we're replacing, use its value defVal = existingSinglePointControl ? "true" : defaultWellRoleValues.get(propertyName); value = setInitialSinglePointControlInput(errorReshow, propertyName, defVal) ? "true" : ""; @@ -431,8 +432,9 @@ else if (titrationEntry.getValue().isStandard()) @Override public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { - String titrationCellName = PageFlowUtil.filter(getTitrationColumnCellName(titrationEntry.getValue().getName())); - String groupName = ColumnInfo.propNameFromName(getColumns().get(0).getFormFieldName(ctx)); + String titrationCellName = PageFlowUtil.filter(getTitrationColumnCellNameAndId(titrationEntry.getValue().getName())); + // DOM ids and JS function names can't have spaces + String groupName = PageConfig.makeIdFromName(getColumns().get(0).getFormFieldName(ctx)); String id = groupName + "CheckBox"; TD( @@ -453,7 +455,8 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) @Override public void writeCopyableJavaScript(RenderContext ctx, Writer out) throws IOException { - String groupName = ColumnInfo.propNameFromName(getColumns().get(0).getFormFieldName(ctx)); + // DOM ids and JS function names can't have spaces + String groupName = PageConfig.makeIdFromName(getColumns().get(0).getFormFieldName(ctx)); out.write("function " + groupName + "Updated() {\n"); out.write(" if (document.getElementById('" + groupName + "CheckBox') != null && document.getElementById('" + groupName + "CheckBox').checked) {\n"); out.write(" var v = document.getElementsByName('" + getColumns().get(0).getFormFieldName(ctx) + "')[0].checked;\n"); @@ -550,7 +553,7 @@ private JspView addExclusionWarning(LuminexRunUploadForm f private String getShowStandardCheckboxColumnName(Titration standard) { - String titrationCheckboxName = getTitrationTypeCheckboxName(Titration.Type.standard, standard); + String titrationCheckboxName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, standard); return titrationCheckboxName + "_showcol"; } @@ -691,19 +694,22 @@ protected RunStepHandler getRunStepHandler() return new LuminexRunStepHandler(); } - public static String getTitrationTypeCheckboxName(Titration.Type type, Titration titration) + public static String getTitrationTypeCheckboxNameAndId(Titration.Type type, Titration titration) { - return ColumnInfo.propNameFromName("_titrationRole_" + type + "_" + titration.getName()); + // DOM ids and JS function names can't have spaces + return PageConfig.makeIdFromName("_titrationRole_" + type + "_" + titration.getName()); } - public static String getSinglePointControlCheckboxName(String singlePointControl) + public static String getSinglePointControlCheckboxNameAndId(String singlePointControl) { - return ColumnInfo.propNameFromName("_singlePointControl_" + singlePointControl); + // DOM ids and JS function names can't have spaces + return PageConfig.makeIdFromName("_singlePointControl_" + singlePointControl); } - public static String getTitrationColumnCellName(String titrationName) + public static String getTitrationColumnCellNameAndId(String titrationName) { - return ColumnInfo.propNameFromName("_titrationcell_" + titrationName); + // DOM ids and JS function names can't have spaces + return PageConfig.makeIdFromName("_titrationcell_" + titrationName); } protected class LuminexRunStepHandler extends RunStepHandler @@ -806,21 +812,21 @@ public boolean executeStep(LuminexRunUploadForm form, BindException errors) thro // add the name/value pairs for the titration well role definition section if (!titrationEntry.getValue().isUnknown()) { - propertyName = getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); - propertyName = getTitrationTypeCheckboxName(Titration.Type.qccontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.qccontrol, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); - propertyName = getTitrationTypeCheckboxName(Titration.Type.othercontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.othercontrol, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); } else { - propertyName = getTitrationTypeCheckboxName(Titration.Type.unknown, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.unknown, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); } @@ -845,7 +851,7 @@ public boolean executeStep(LuminexRunUploadForm form, BindException errors) thro for (String singlePointControl : form.getParser().getSinglePointControls()) { // add the name/value pairs for the singlePointControl well role definition section - String propertyName = getSinglePointControlCheckboxName(singlePointControl); + String propertyName = getSinglePointControlCheckboxNameAndId(singlePointControl); boolean value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); } diff --git a/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java b/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java index a83240a874..6164fcdc95 100644 --- a/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java +++ b/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java @@ -121,7 +121,7 @@ else if (defVal == null || defVal.equalsIgnoreCase("true")) @Override public DOM._Attributes getInputAttributes() { - String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellName(_titration.getName()); + String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellNameAndId(_titration.getName()); return at(style, "display:" + (_hideCell ? "none" : "table-cell"), name, titrationCellName); } @@ -129,7 +129,7 @@ public DOM._Attributes getInputAttributes() @Override public void renderDetailsCaptionCell(RenderContext ctx, HtmlWriter out, @Nullable String cls) { - String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellName(_titration.getName()); + String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellNameAndId(_titration.getName()); TD( cl(cls).at(style, "display:" + (_hideCell ? "none" : "table-cell") + ";").name(titrationCellName), diff --git a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java index bb25cdd40f..d6665d695d 100644 --- a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java +++ b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java @@ -22,6 +22,7 @@ import org.labkey.api.util.DOM; import org.labkey.api.util.InputBuilder; import org.labkey.api.view.HttpView; +import org.labkey.api.view.template.PageConfig; import org.labkey.api.writer.HtmlWriter; import org.labkey.luminex.LuminexDataHandler; @@ -44,7 +45,8 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { TD( isCopyable() ? (DOM.Renderable) ret -> { - String inputName = ColumnInfo.propNameFromName(_inputName); + // DOM ids and JS function names can't have spaces + String inputName = PageConfig.makeIdFromName(_inputName); String id = inputName + "CheckBox"; InputBuilder.checkbox().name(id).id(id).appendTo(out); StringBuilder onChange = new StringBuilder("b = this.checked;\n"); diff --git a/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp b/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp index b86252bfe1..5fd1cac48d 100644 --- a/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp +++ b/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp @@ -84,11 +84,11 @@ <% for (Map.Entry titrationEntry : nonUnknownTitrations.entrySet()) { - String standardId = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + String standardId = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); addHandler(standardId, "click", "titrationRoleChecked(this);showHideAnalytePropertyColumn();"); - String qcId = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.qccontrol, titrationEntry.getValue()); + String qcId = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.qccontrol, titrationEntry.getValue()); addHandler(qcId, "click", "titrationRoleChecked(this);"); - String otherId = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.othercontrol, titrationEntry.getValue()); + String otherId = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.othercontrol, titrationEntry.getValue()); addHandler(otherId, "click", "titrationRoleChecked(this);"); %> @@ -122,7 +122,7 @@ <% for (Map.Entry titrationEntry : unknownTitrations.entrySet()) { - String id = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.unknown, titrationEntry.getValue()); + String id = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.unknown, titrationEntry.getValue()); addHandler(id, "click", "titrationRoleChecked(this);"); %> @@ -150,7 +150,7 @@ <% for (String trackedSinglePointControl : trackedSinglePointControls) { - String id = LuminexUploadWizardAction.getSinglePointControlCheckboxName(trackedSinglePointControl); + String id = LuminexUploadWizardAction.getSinglePointControlCheckboxNameAndId(trackedSinglePointControl); addHandler(id, "click", "titrationRoleChecked(this);"); %> @@ -187,8 +187,8 @@ for (Map.Entry titrationEntry : nonUnknownTitrations.entrySet()) { %> - var titrationRoleName = '<%= h(LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue())) %>'; - var titrationCellName = '<%= h(LuminexUploadWizardAction.getTitrationColumnCellName(titrationEntry.getValue().getName())) %>'; + var titrationRoleName = '<%= h(LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue())) %>'; + var titrationCellName = '<%= h(LuminexUploadWizardAction.getTitrationColumnCellNameAndId(titrationEntry.getValue().getName())) %>'; var isChecked = document.getElementsByName(titrationRoleName)[0].checked; // set the hidden helper showcol field value @@ -257,7 +257,7 @@ for (Titration.Type t : Titration.Type.values()) { %> - var propertyName = <%=q(LuminexUploadWizardAction.getTitrationTypeCheckboxName(t, titrationEntry.getValue())) %>; + var propertyName = <%=q(LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(t, titrationEntry.getValue())) %>; var hiddenEl = getHiddenFormElement(propertyName); var inputEl = getInputFormElement(propertyName); if (hiddenEl && inputEl) @@ -270,7 +270,7 @@ for (String singlePointControl : trackedSinglePointControls) { %> - var propertyName = <%=q(LuminexUploadWizardAction.getSinglePointControlCheckboxName(singlePointControl)) %>; + var propertyName = <%=q(LuminexUploadWizardAction.getSinglePointControlCheckboxNameAndId(singlePointControl)) %>; var hiddenEl = getHiddenFormElement(propertyName); var inputEl = getInputFormElement(propertyName); if (hiddenEl && inputEl) diff --git a/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java b/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java index 2007eff199..6814efe105 100644 --- a/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java +++ b/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java @@ -17,6 +17,7 @@ import org.labkey.test.Locator; import org.labkey.test.components.WebPartPanel; +import org.labkey.test.components.assay.AssayConstants; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -67,6 +68,6 @@ public class Elements extends WebPartPanel.ElementCache public static class Locators { - protected static final Locator sampleInfoRadio = Locator.radioButtonByNameAndValue("participantVisitResolver", "SampleInfo"); + protected static final Locator sampleInfoRadio = Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "SampleInfo"); } } \ No newline at end of file diff --git a/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java b/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java index 2ad10d2f88..4d1bbf3e89 100644 --- a/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java +++ b/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java @@ -17,6 +17,7 @@ import org.labkey.test.Locator; import org.labkey.test.components.WebPartPanel; +import org.labkey.test.components.assay.AssayConstants; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -25,7 +26,6 @@ public class RunPropertiesWebPart extends WebPartPanel { private static final String TITLE = "Run Properties"; - public static final String ASSAY_ID_FIELD = "name"; public static final String ASSAY_DATA_FILE_LOCATION_MULTIPLE_FIELD = "__primaryFile__"; protected RunPropertiesWebPart(WebElement componentElement, WebDriver driver) @@ -67,7 +67,7 @@ public void replaceFileInAssayRun(File original, File newFile) public void setRunId(String runId) { - getWrapper().setFormElement(Locator.inputById(ASSAY_ID_FIELD), runId); + getWrapper().setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); } public static class RunPropertiesWebPartFinder extends WebPartFinder diff --git a/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java b/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java index a5df8ac3ee..5d97a4ab31 100644 --- a/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java +++ b/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java @@ -15,8 +15,8 @@ */ package org.labkey.test.pages.luminex; -import org.labkey.test.Locator; import org.labkey.test.WebDriverWrapper; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.luminex.importwizard.AnalytePropertiesWebPart; import org.labkey.test.components.luminex.importwizard.BatchPropertiesWebPart; import org.labkey.test.components.luminex.importwizard.DefineWellRoleWebPart; @@ -36,9 +36,6 @@ */ public class LuminexImportWizard extends LabKeyPage { - public static final String ASSAY_ID_FIELD = "name"; - - Elements _elements; public LuminexImportWizard(WebDriverWrapper driver) { @@ -129,7 +126,7 @@ public void createNewAssayRun( String runId, Consumer step1 step1.accept(this); clickNext(); - setFormElement(Locator.name(ASSAY_ID_FIELD), runId); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); if (step2 != null) step2.accept(this); clickNext(); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 0b2528b62c..c1fe1fe96b 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -23,6 +23,7 @@ import org.labkey.test.Locator; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; @@ -30,6 +31,8 @@ import java.io.File; import java.util.Calendar; +import static org.junit.Assert.assertEquals; + @Category({Daily.class, Assays.class}) @BaseWebDriverTest.ClassTimeout(minutes = 7) public final class LuminexAsyncImportTest extends LuminexTest @@ -102,7 +105,7 @@ private void importSecondRun(int index, Calendar testDate, File file) { int i = index; goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NEWNET" + (i + 1)); + setFormElement(Locator.name("Network"), "NEWNET" + (i + 1)); clickButton("Next"); testDate.add(Calendar.DATE, 1); importLuminexRunPageTwo("Guide Set plate " + (i+1), "new"+isotype, "new"+conjugate, "", "", "NewNote" + (i+1), @@ -120,7 +123,7 @@ private void reimportFirstRun(int index, Calendar testDate, File file) goToTestAssayHome(); new DataRegionTable("Runs", getDriver()).checkCheckbox(1); clickButton("Re-import run"); - Assert.assertEquals("Form did not remember values from first import", "NETWORK1", getFormElement(Locator.name("network"))); + Assert.assertEquals("Form did not remember values from first import", "NETWORK1", getFormElement(Locator.name("Network"))); clickButton("Next"); testDate.add(Calendar.DATE, 1); reimportLuminexRunPageTwo("Guide Set plate " + (i+1), isotype, conjugate, "", "", "Notebook" + (i+1), @@ -136,15 +139,15 @@ private void reimportLuminexRunPageTwo(String runId, String isotype, String conj String testDate, File file, int i) { // verify that all old values from the first imported run are present - assertFormElementEquals(Locator.name("name"), runId); - assertFormElementEquals(Locator.name("isotype"), isotype); - assertFormElementEquals(Locator.name("conjugate"), conjugate); - assertFormElementEquals(Locator.name("stndCurveFitInput"), stndCurveFitInput); - assertFormElementEquals(Locator.name("unkCurveFitInput"), unkCurveFitInput); - assertFormElementEquals(Locator.name("notebookNo"), notebookNo); - assertFormElementEquals(Locator.name("assayType"), assayType); - assertFormElementEquals(Locator.name("expPerformer"), expPerformer); - assertFormElementEquals(Locator.name("testDate"), testDate); + assertEquals(runId, getFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR)); + assertEquals(isotype, getFormElement(Locator.name("Isotype"))); + assertEquals(conjugate, getFormElement(Locator.name("Conjugate"))); + assertEquals(stndCurveFitInput, getFormElement(Locator.name("StndCurveFitInput"))); + assertEquals(unkCurveFitInput, getFormElement(Locator.name("UnkCurveFitInput"))); + assertEquals(notebookNo, getFormElement(Locator.name("NotebookNo"))); + assertEquals(assayType, getFormElement(Locator.name("AssayType"))); + assertEquals(expPerformer, getFormElement(Locator.name("ExpPerformer"))); + assertEquals(testDate, getFormElement(Locator.name("TestDate"))); click(Locator.xpath("//a[contains(@class, 'labkey-file-add-icon-enabled')]")); setFormElement(Locator.name("__primaryFile__"), file); waitForText("A file with name '" + file.getName() + "' already exists"); @@ -181,7 +184,7 @@ private void importRunForTestLuminexConfig(File file, Calendar testDate, int i) { goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NETWORK" + (i + 1)); + setFormElement(Locator.name("Network"), "NETWORK" + (i + 1)); clickButton("Next"); testDate.add(Calendar.DATE, 1); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java index 613ad3d749..8b2eeef0a4 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java @@ -22,6 +22,7 @@ import org.labkey.test.Locators; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import java.io.File; @@ -88,7 +89,7 @@ public void testCrossPlateTitration() String runName = "Cross Plate titration"; waitForElement(Locators.panelWebpartTitle.withText("Run Properties")); - setFormElement(Locator.name("name"), runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFiles(files); clickButton("Next"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index 34355eaf32..aff589817a 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -23,6 +23,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.util.DataRegionTable; @@ -561,7 +562,7 @@ private void importPlateFiveAgain() goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NETWORK" + (10)); + setFormElement(Locator.name("Network"), "NETWORK" + (10)); clickButton("Next"); importLuminexRunPageTwo("Reload guide set 5", isotype, conjugate, "", "", "Notebook" + 11, diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java index 32a957a41d..cb5a819a52 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java @@ -23,6 +23,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.util.DataRegionTable; @@ -56,9 +57,9 @@ public void testJavaTransform() goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("species"), TEST_ASSAY_LUM_SET_PROP_SPECIES); + setFormElement(Locator.name("Species"), TEST_ASSAY_LUM_SET_PROP_SPECIES); clickButton("Next"); - setFormElement(Locator.name("name"), "transformed assayId"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE1); clickButton("Next", 60000); clickButton("Save and Finish"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java index 6ae05cb708..084a14a499 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java @@ -23,6 +23,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.LogMethod; import org.labkey.test.util.LoggedParam; import org.openqa.selenium.WebElement; @@ -144,9 +145,9 @@ private void reImportData(Map wellRoleMap) goToTestAssayHome(); click(Locator.linkContainingText(MULTIPLE_CURVE_ASSAY_RUN_NAME)); clickButtonContainingText("Re-import run"); - checkCheckbox(Locator.radioButtonByNameAndValue("participantVisitResolver", "SampleInfo")); + checkCheckbox(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "SampleInfo")); clickButtonContainingText("Next"); - setFormElement(Locator.name(ASSAY_ID_FIELD), MULTIPLE_CURVE_ASSAY_RUN_NAME); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, MULTIPLE_CURVE_ASSAY_RUN_NAME); clickButtonContainingText("Next"); for(String desc : wellRoleMap.keySet()) { diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java index b4f2b4e8c2..df8576f455 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java @@ -125,7 +125,7 @@ public void testImportAnalyteDefaults() } createNewAssayRun(assayName, RUN_ID_BASE + " Check Imported Defaults"); - checkCheckbox(Locator.name("calculatePositivity")); + checkCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE13, false); List analytePropertyRows = PortalHelper.Locators.webPart("Analyte Properties").findElement(getDriver()) @@ -149,7 +149,7 @@ private void testDefaultAnalyteProperties() // for issue 20549 :upload a run that unchecks the "Calucate Positivity" and then verify the default value for re-runs and new imports createNewAssayRun(TEST_ASSAY_LUM, RUN_ID_BASE + " No Pos Calc"); - uncheckCheckbox(Locator.name("calculatePositivity")); + uncheckCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE12, true); clickButton("Save and Finish"); @@ -158,7 +158,7 @@ private void testDefaultAnalyteProperties() verifyThresholdForReImportRun(1, 98); createNewAssayRun(TEST_ASSAY_LUM, RUN_ID_BASE + " Threshold Default Test"); - checkCheckbox(Locator.name("calculatePositivity")); + checkCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE12, true); verifyAnalytePosThresholdValue(_analyteNames.get(0), 98); clickButton("Cancel"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java index 9b1aff83f3..c2489e0f2c 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -23,6 +23,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LabKeyExpectedConditions; @@ -121,10 +122,10 @@ public void uploadRun() clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), "r script transformed assayId"); - checkCheckbox(Locator.name("subtNegativeFromAll")); - setFormElement(Locator.name("stndCurveFitInput"), "FI"); - setFormElement(Locator.name("unkCurveFitInput"), "FI-Bkgd-Neg"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "r script transformed assayId"); + checkCheckbox(Locator.name("SubtNegativeFromAll")); + setFormElement(Locator.name("StndCurveFitInput"), "FI"); + setFormElement(Locator.name("UnkCurveFitInput"), "FI-Bkgd-Neg"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); clickButton("Next", defaultWaitForPage * 2); @@ -158,13 +159,13 @@ public void testNegativeBead() clickButton("Import Data"); clickButton("Next"); String assayRunId = "negative bead assayId"; - setFormElement(Locator.name("name"), assayRunId); - uncheckCheckbox(Locator.name("subtNegativeFromAll")); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, assayRunId); + uncheckCheckbox(Locator.name("SubtNegativeFromAll")); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); waitForElement(Locator.id("file-upload-tbl").containing(TEST_ASSAY_LUM_FILE4.getName())); clickButton("Next", defaultWaitForPage * 2); - // uncheck all of the titration well role types + // uncheck all the titration well role types uncheckCheckbox(Locator.name("_titrationRole_standard_Standard1")); uncheckCheckbox(Locator.name("_titrationRole_qccontrol_Standard1")); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java index 6cf599dd3b..6f185ffb0a 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java @@ -190,7 +190,7 @@ private void importRun(String filename, int runNumber) { goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NETWORK" + runNumber); + setFormElement(Locator.name("Network"), "NETWORK" + runNumber); clickButton("Next"); Calendar testDate = Calendar.getInstance(); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java index 5756d46467..b61ac90e96 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -35,6 +35,7 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.html.BootstrapMenu; import org.labkey.test.components.html.Checkbox; import org.labkey.test.pages.ReactAssayDesignerPage; @@ -69,6 +70,7 @@ public abstract class LuminexTest extends BaseWebDriverTest protected final static String TEST_ASSAY_PRJ_LUMINEX = "LuminexTest Project"; protected final static String TEST_ASSAY_SUBFOLDER = "Subfolder";//project for luminex test + // Issue 51845: // - Luminex assay not working well when assay name contains dot (.) // - use DOMAIN_SPECIAL_STRING instead of DOMAIN_TRICKY_CHARACTERS since sql server is not working with unicode characters @@ -102,7 +104,6 @@ public abstract class LuminexTest extends BaseWebDriverTest public static final File RTRANSFORM_SCRIPT_FILE_LABKEY = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/labkey_luminex_transform.R"); public static final File RTRANSFORM_SCRIPT_FILE_LAB = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/tomaras_luminex_transform.R"); - public static final String ASSAY_ID_FIELD = "name"; public static final String ASSAY_DATA_FILE_LOCATION_MULTIPLE_FIELD = "__primaryFile__"; public static final String DATA_TABLE_NAME = "Data"; @@ -120,6 +121,7 @@ public abstract class LuminexTest extends BaseWebDriverTest public static final String isotype = "IgG > toMap() // NOTE: The 'list' version of 'SpecimenIDs' is used when the guava file is parsed. ret.put("specimenIDs", getSpecimenIDList()); - ret.put("targetStudy", getTargetStudy()); + ret.put(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, getTargetStudy()); ret.putAll(getStringProperties()); return ret;