Opened 9 years ago

Closed 9 years ago

#786 closed task (fixed)

MeLuDI v.1.2.4 bug fixes and improvements

Reported by: olle Owned by: olle
Priority: major Milestone: MeLuDI v1.2.5
Component: net.sf.basedb.meludi Keywords:
Cc:

Description

This ticket covers bug fixes and improvements to MeLuDI v.1.2.4.

Change History (17)

comment:1 by olle, 9 years ago

Status: newassigned

Ticket accepted.

comment:2 by olle, 9 years ago

Traceability note:

  • MeLuDi v.1.0 was introduced in Ticket #690 (MeLuDi - Registration wizard for melanoma-lung cancer projects).
  • MeLuDi v.1.1 was introduced in Ticket #718 (MeLuDi v.1.0 bug fixes and improvements).
  • MeLuDi v.1.2 was introduced in Ticket #725 (MeLuDi v.1.1 bug fixes and improvements).
  • MeLuDI v.1.2.1 was introduced in Ticket #759 (MeLuDi v.1.2 bug fixes and improvements).
  • MeLuDI v.1.2.2 was introduced in Ticket #767 (MeLuDI v.1.2.1 bug fixes and improvements).
  • MeLuDI v.1.2.3 was introduced in Ticket #768 (MeLuDI v.1.2.2 bug fixes and improvements).
  • MeLuDI v.1.2.4 was introduced in Ticket #777 (MeLuDI v.1.2.3 bug fixes and improvements).

comment:3 by olle, 9 years ago

(In [3349]) Refs #786 Updates due to version number change to "1.3-dev".

  1. Version number change to "1.3-dev":
    a. Outermost Ant XML build file build.xml in / updated.
    b. Extensions XML configuration file extensions.xml in META-INF/ updated.
    c. Javascript file meludi-2.js in resources/ updated.
    d. Javascript file samplereportgenerator.js in resources/reports/ updated.
    e. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:4 by olle, 9 years ago

Functional specification update:

  • A bug was introduced in DNA/RNA extraction wizards in MeLuDI v1.2.2 2015-04-14 in change set 3245 in Ticket #767, when support for user-defined names for optional extra QIAcube items was added. Several convenience methods/functions for determining if an extract source item was a MeLuDI specimen item depended on the name not starting with the default start string for optional extra QIAcube items, but this code was never updated. The new check should be that the name starts with the letters "ML", in order to be regarded as a MeLuDI item.

Design Update:

  1. Javascript files edit_dnarna_details.js, edit_dnarna_prep_details.js, extraction_formcopy.js, extraction_preparation.js, and extraction_registration.js in resources/sampleproc/ updated in function .isSpecimen(item) to check if item name starts with string "ML" to exclude extra items.
  2. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method boolean itemIsSpecimen(String itemName) to check if item name starts with string "ML" to exclude extra items.

comment:5 by olle, 9 years ago

(In [3350]) Refs #786. Bug fixed in DNA/RNA extraction wizards on how to differentiate between MeLuDI items and optional extra QIAcube items, when support for user-defined names for optional extra QIAcube items was added. Several convenience methods/functions for determining if an extract source item was a MeLuDI specimen item depended on the name not starting with the default start string for optional extra QIAcube items. The new check should be that the name should start with the letters "ML", in order to be regarded as a MeLuDI item.

  1. Javascript files edit_dnarna_details.js, edit_dnarna_prep_details.js, extraction_formcopy.js, extraction_preparation.js, and extraction_registration.js in resources/sampleproc/ updated in function .isSpecimen(item) to check if item name starts with string "ML" to exclude extra items.
  2. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method boolean itemIsSpecimen(String itemName) to check if item name starts with string "ML" to exclude extra items.

comment:6 by olle, 9 years ago

Functional specification update:

  • A bug of omission was introduced in code for edit pop-up dialogs in step 3 of DNA/RNA registration/quantification wizard in change set 3324 in Ticket #777, when support for lot numbers for reagents used in quality control was added. Among other data, the javascript file for the edit pop-up dialog obtains a list of reagent values as input, and when changes should be saved, it reads data from dialog input fields. Since the corresponding JSP file never was updated with input fields for the new quality control reagent lot numbers, the javascript will stop before any data has been sent back.

Design update:

  1. JSP file edit_dnarna_details.jsp in resources/sampleproc/ updated in reagent table with fields for new quality control reagent lot numbers.

comment:7 by olle, 9 years ago

(In [3351]) Refs #786. Bug of omission fixed in code for edit pop-up dialogs in step 3 of DNA/RNA registration/quantification wizard, that was introduced when support for lot numbers for reagents used in quality control was added, but the JSP file never was updated with input fields for the new entries This caused the dialog javascript to stop before any data had been sent back, when trying to save changes.

  1. JSP file edit_dnarna_details.jsp in resources/sampleproc/ updated in reagent table with fields for new quality control reagent lot numbers.

comment:8 by olle, 9 years ago

Refactoring:

  • Javascript files in DNA/RNA extraction wizards should be refactored by putting common functions in separate javascript files, that are accessed via the JSP files. This will simplify future updates of the functionality.

Design update:

  1. JSP files edit_dnarna_details.jsp, edit_dnarna_prep_details.jsp, extraction_formcopy.jsp, extraction_preparation.jsp, and extraction_registration.jsp in resources/sampleproc/ updated to include new javascript file extraction_utils.js in resources/sampleproc/ in list of included scripts.
  2. Javascript files edit_dnarna_details.js, edit_dnarna_prep_details.js, extraction_formcopy.js, extraction_preparation.js, and extraction_registration.js in resources/sampleproc/ updated to access the following functions from new javascript file extraction_utils.js in resources/sampleproc/:

    a. getDetailedQiaCubePosition(nitems, i)
    b. getQiaCubePosition(nitems, i)
    c. getQiacubePosition(intPosition)
    d. getIntQiacubePosition(positionStr)
    e. isSpecimen(item)
    f. isRna(item)
    g. isDna(item)
    h. findSeparator(data, searchString)
    i. setDecimalDotInsideDoubleQuotes(line)
    j. getNumber(sValue)
  3. New javascript file extraction_utils.js in resources/sampleproc/ added.
Last edited 9 years ago by olle (previous) (diff)

comment:9 by olle, 9 years ago

(In [3352]) Refs #786. Javascript files in DNA/RNA extraction wizards refactored by putting common functions in separate javascript file, that is accessed via the JSP files. This will simplify future updates of the functionality.

  1. JSP files edit_dnarna_details.jsp, edit_dnarna_prep_details.jsp, extraction_formcopy.jsp, extraction_preparation.jsp, and extraction_registration.jsp in resources/sampleproc/ updated to include new javascript file extraction_utils.js in resources/sampleproc/ in list of included scripts.
  2. Javascript files edit_dnarna_details.js, edit_dnarna_prep_details.js, extraction_formcopy.js, extraction_preparation.js, and extraction_registration.js in resources/sampleproc/ updated to access the following functions from new javascript file extraction_utils.js in resources/sampleproc/:

    a. getDetailedQiaCubePosition(nitems, i)
    b. getQiaCubePosition(nitems, i)
    c. getQiacubePosition(intPosition)
    d. getIntQiacubePosition(positionStr)
    e. isSpecimen(item)
    f. isRna(item)
    g. isDna(item)
    h. findSeparator(data, searchString)
    i. setDecimalDotInsideDoubleQuotes(line)
    j. getNumber(sValue)
  3. New javascript file extraction_utils.js in resources/sampleproc/ added.

comment:10 by olle, 9 years ago

(In [3353]) Refs #786. Javascript file edit_dnarna_details.js in resources/sampleproc/ updated in function saveDetails() by removing commented-out alert() debug statements, in order to make the code more readable.

comment:11 by olle, 9 years ago

Functional specification update:

  • A bug was introduced in the javascript refactoring in change set 3352, in that user-defined primary and secondary QIAcube prefixes was not respected, but replaced with default values "B" and "C", respectively.

Design update:

  1. Javascript file extraction_utils.js in resources/sampleproc/ updated:
    a. New function getQiacubeSortedPrefixes(primaryQiacubePrefix, secondaryQiacubePrefix) added. It returns a string of letters in alphabetical order, except that the primary and secondary prefixes given as arguments are placed in the first and second position, respectively.
    b. Function getDetailedQiaCubePosition(nitems, i) updated with new argument qiacubeSortedPrefixes to getDetailedQiaCubePosition(nitems, i, qiacubeSortedPrefixes).
    c. Function getQiacubePosition(intPosition) renamed "getDetailedQiacubePosition", in order to have all functions returning a QIAcube position as a combination of an instrument prefix and internal position number having "DetailedQiacubePosition" in the name. Also one new argument, qiacubeSortedPrefixes, added to give getDetailedQiacubePosition(intPosition, qiacubeSortedPrefixes).
    d. Function getIntQiacubePosition(positionStr) updated with new argument qiacubeSortedPrefixes to getIntQiacubePosition(positionStr, qiacubeSortedPrefixes).
  2. Javascript files extraction_formcopy.js, extraction_preparation.js, and extraction_registration.js in resources/sampleproc/ updated:
    a. New argument qiacubeSortedPrefixes is added in calls to the updated functions in javascript file extraction_utils.js. If the string is not previously available, local function getQiacubeSortedPrefixes() is called to provide it.
    b. Function getQiacubeSortedPrefixes() updated to call new function getQiacubeSortedPrefixes(primaryQiacubePrefix, secondaryQiacubePrefix) in javascript file extraction_utils.js to get the string to return.
Last edited 9 years ago by olle (previous) (diff)

comment:12 by olle, 9 years ago

(In [3354]) Refs #786. Bug fixed in javascript refactoring leading to user-defined primary and secondary QIAcube prefixes not being respected, but replaced with default values "B" and "C", respectively.

  1. Javascript file extraction_utils.js in resources/sampleproc/ updated:
    a. New function getQiacubeSortedPrefixes(primaryQiacubePrefix, secondaryQiacubePrefix) added. It returns a string of letters in alphabetical order, except that the primary and secondary prefixes given as arguments are placed in the first and second position, respectively.
    b. Function getDetailedQiaCubePosition(nitems, i) updated with new argument qiacubeSortedPrefixes to getDetailedQiaCubePosition(nitems, i, qiacubeSortedPrefixes).
    c. Function getQiacubePosition(intPosition) renamed "getDetailedQiacubePosition", in order to have all functions returning a QIAcube position as a combination of an instrument prefix and internal position number having "DetailedQiacubePosition" in the name. Also one new argument, qiacubeSortedPrefixes, added to give getDetailedQiacubePosition(intPosition, qiacubeSortedPrefixes).
    d. Function getIntQiacubePosition(positionStr) updated with new argument qiacubeSortedPrefixes to getIntQiacubePosition(positionStr, qiacubeSortedPrefixes).
  2. Javascript files extraction_formcopy.js, extraction_preparation.js, and extraction_registration.js in resources/sampleproc/ updated:
    a. New argument qiacubeSortedPrefixes is added in calls to the updated functions in javascript file extraction_utils.js. If the string is not previously available, local function getQiacubeSortedPrefixes() is called to provide it.
    b. Function getQiacubeSortedPrefixes() updated to call new function getQiacubeSortedPrefixes(primaryQiacubePrefix, secondaryQiacubePrefix) in javascript file extraction_utils.js to get the string to return.

comment:13 by olle, 9 years ago

Functional specification update:

  • DNA/RNA extraction wizards should be updated to not allow editing the pre-selected QIAcube positions for individual samples, since these changes are currently not saved, and might therefore introduce a discrepancy between created lab tracking protocols and stored data. The alternative is to store the edited positions, but there has not been found much need for editing these values.
  • For the "Lab tracking protocol for Allprep isolation" wizard, the change results in the "Edit" buttons being removed altogether from the table in step 3. For the "DNA/RNA registration/quantification" wizard, the edit buttons are still needed to edit description text and reagent lot numbers for an individual specimen/DNA/RNA. However, the edit buttons should be restricted to MeLuDI extract source items only, and should be removed for extra QIAcube items.

Design update:

  1. Javascript file extraction_preparation.js in resources/sampleproc/ updated in step 3 by removing the "Edit" buttons:
    a. Function initializeStep3() updated by removing the edit button column.
    b. Function editDnaRnaDetails(event) is removed, as it is no longer needed.
  2. JSP file edit_dnarna_prep_details.jsp and javascript file edit_dnarna_prep_details.js in resources/sampleproc/ are made redundant by the change, but will be kept in the code for now.
  3. JSP file edit_dnarna_details.jsp in resources/sampleproc/ updated by removing the QIAcube position section from the form.
  4. Javascript file edit_dnarna_details.js in resources/sampleproc/ updated by removing the QIAcube position section:
    a. Function initPage() updated by removing statements related to QIAcube position.
    b. Function checkForm() updated by excluding QIAcube position check.
    c. Function saveDetails() updated by removing statements related to QIAcube position.
  5. Javascript file extraction_registration.js in resources/sampleproc/ updated in function initializeStep3() by restricting the "Edit" buttons to MeLuDI extract source items.

comment:14 by olle, 9 years ago

(In [3365]) Refs #786. DNA/RNA extraction wizards updated to not allow editing the pre-selected QIAcube positions for individual samples, since these changes are currently not saved, and might therefore introduce a discrepancy between created lab tracking protocols and stored data, and there has not been found much need for editing these values. Also, in the DNA/RNA registration/quantification wizard, the edit buttons should be restricted to MeLuDI extract source items only, and should be removed for extra QIAcube items.

  1. Javascript file extraction_preparation.js in resources/sampleproc/ updated in step 3 by removing the "Edit" buttons:
    a. Function initializeStep3() updated by removing the edit button column.
    b. Function editDnaRnaDetails(event) is removed, as it is no longer needed.
  2. JSP file edit_dnarna_prep_details.jsp and javascript file edit_dnarna_prep_details.js in resources/sampleproc/ are made redundant by the change, but will be kept in the code for now.
  3. JSP file edit_dnarna_details.jsp in resources/sampleproc/ updated by removing the QIAcube position section from the form.
  4. Javascript file edit_dnarna_details.js in resources/sampleproc/ updated by removing the QIAcube position section:
    a. Function initPage() updated by removing statements related to QIAcube position.
    b. Function checkForm() updated by excluding QIAcube position check.
    c. Function saveDetails() updated by removing statements related to QIAcube position.
  5. Javascript file extraction_registration.js in resources/sampleproc/ updated in function initializeStep3() by restricting the "Edit" buttons to MeLuDI extract source items.

comment:15 by olle, 9 years ago

(In [3370]) Refs #786. Updates due to version number change to "1.2.5".

  1. Version number change to "1.2.5":
    a. Outermost Ant XML build file build.xml in / updated.
    b. Extensions XML configuration file extensions.xml in META-INF/ updated.
    c. Javascript file meludi-2.js in resources/ updated.
    d. Javascript file samplereportgenerator.js in resources/reports/ updated.
    e. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:16 by olle, 9 years ago

Milestone: MeLuDI v1.3MeLuDI v1.2.5

Milestone renamed

comment:17 by olle, 9 years ago

Resolution: fixed
Status: assignedclosed

Ticket closed as MeLuDI version 1.2.5 has been created.

Note: See TracTickets for help on using tickets.