Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#767 closed task (fixed)

MeLuDI v.1.2.1 bug fixes and improvements

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

Description

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

Change History (25)

comment:1 by olle, 10 years ago

Status: newassigned

Ticket accepted.

comment:2 by olle, 10 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).

comment:3 by olle, 10 years ago

(In [3242]) Refs #767 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, 10 years ago

Functional specification update:

  • MeLuDI should be updated in DNA/RNA extraction wizards to allow user-defined names for optional extra QIAcube items. As the names in the first implementation will be stored in a string with comma-separated values, no comma characters are allowed in the names.

Design update:

  1. Data access object class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING of type Type.TEXT added for bioplates.
  2. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to include annotations of new text annotation type Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING for bioplate items.
  3. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "GetStartPlates" and "GetUnprocessedStartPlates" by calling method loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString, Boolean trim) for a start plate to retrieve Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING annotations as a string list, where Boolean flags fromListString and trim are set to true. The annotation values are returned as a JSON object with key "extraItemNames".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetSourceItemListFromStartPlate" to call new Annotationtype method List<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim) for a start plate to retrieve Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING annotations as a string list, where Boolean flags fromListString and trim are set to true. If extra QIAcube items exist, but no name data has been stored, standard names "E01", "E02",..., "E10", etc. are generated. The extra QIAcube item data is returned as a JSON object with key "extraitems".
    c. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterStartPlate" to call Annotationtype method void setAnnotationValues(DbControl dc, Annotatable item, List<?> values) for Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING annotations to store an extra QIAcube item name list for a start plate.
  4. JSP file extraction_preparation.jsp in resources/sampleproc/ updated by adding new hidden multiple select tag with id "extraQiacubeItems", for storage of data for extra QIAcube items.
  5. Javascript file extraction_preparation.js in resources/sampleproc/ updated:
    a. Function initializeStep1(response) updated to hide new select tag with id "extraQiacubeItems".
    b. Function initializeStep3() updated by calling new function createExtraItemsList(numExtraItems) to create an extra items list with default names. Table cells for the extra item names are updated to text input fields, with callback function set tot new function itemNameOnChange(event).
    c. New function createExtraItemsList(numExtraItems) added. It creates an extra items list with default names, and stores the list in hidden select tag with id "extraQiacubeItems"
    d. Function getExtraItemsList(numExtraItems) updated to getExtraItemsList() and fetching the extra items list from hidden select tag with id "extraQiacubeItems", instead of creating the items with default names.
    e. New function itemNameOnChange(event) added. It updates the extra items JSON object by setting the names of the extra items to the values in the name input fields for the latter, after which function updateDetailsTable() is called.
    f. Function updateDetailsTable() updated to set values of input fields for extra item names to those of the extra items in the processed JSON object.
    g. Function submit() updated to include data for extra QIAcube items in JSON object with key "extraItems", when sending an Ajax request to ExtractionServlet with command "RegisterStartPlate".
  6. Javascript file extraction_registration.js in resources/sampleproc/ updated:
    a. Function sourceItemListLoaded(response) updated to get values for global JSON array extraItemsList from response.extraitems.
    b. Function initializeStep3() updated to not call function getExtraItemsList(numExtraItems) to obtain default values for global JSON array extraItemsList, since it now is supplied by the ExtractionServlet response.
  7. Javascript file extraction_formcopy.js in resources/sampleproc/ updated:
    a. Function sourceItemListLoaded(response) updated to get values for global JSON array extraItemsList from response.extraitems.
    b. Function initializeStep3() updated to not call function getExtraItemsList(numExtraItems) to obtain default values for global JSON array extraItemsList, since it now is supplied by the ExtractionServlet response.
Last edited 10 years ago by olle (previous) (diff)

comment:5 by olle, 10 years ago

(In [3245]) Refs #767. MeLuDI updated in DNA/RNA extraction wizards to allow user-defined names for optional extra QIAcube items. As the names in the first implementation will be stored in a string with comma-separated values, no comma characters are allowed in the names.

  1. Data access object class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING of type Type.TEXT added for bioplates.
  2. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to include annotations of new text annotation type Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING for bioplate items.
  3. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "GetStartPlates" and "GetUnprocessedStartPlates" by calling method loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString, Boolean trim) for a start plate to retrieve Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING annotations as a string list, where Boolean flags fromListString and trim are set to true. The annotation values are returned as a JSON object with key "extraItemNames".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetSourceItemListFromStartPlate" to call new Annotationtype method List<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim) for a start plate to retrieve Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING annotations as a string list, where Boolean flags fromListString and trim are set to true. If extra QIAcube items exist, but no name data has been stored, standard names "E01", "E02",..., "E10", etc. are generated. The extra QIAcube item data is returned as a JSON object with key "extraitems".
    c. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterStartPlate" to call Annotationtype method void setAnnotationValues(DbControl dc, Annotatable item, List<?> values) for Annotationtype.EXTRA_QIACUBE_ITEM_NAMES_LIST_STRING annotations to store an extra QIAcube item name list for a start plate.
  4. JSP file extraction_preparation.jsp in resources/sampleproc/ updated by adding new hidden multiple select tag with id "extraQiacubeItems", for storage of data for extra QIAcube items.
  5. Javascript file extraction_preparation.js in resources/sampleproc/ updated:
    a. Function initializeStep1(response) updated to hide new select tag with id "extraQiacubeItems".
    b. Function initializeStep3() updated by calling new function createExtraItemsList(numExtraItems) to create an extra items list with default names. Table cells for the extra item names are updated to text input fields, with callback function set tot new function itemNameOnChange(event).
    c. New function createExtraItemsList(numExtraItems) added. It creates an extra items list with default names, and stores the list in hidden select tag with id "extraQiacubeItems"
    d. Function getExtraItemsList(numExtraItems) updated to getExtraItemsList() and fetching the extra items list from hidden select tag with id "extraQiacubeItems", instead of creating the items with default names.
    e. New function itemNameOnChange(event) added. It updates the extra items JSON object by setting the names of the extra items to the values in the name input fields for the latter, after which function updateDetailsTable() is called.
    f. Function updateDetailsTable() updated to set values of input fields for extra item names to those of the extra items in the processed JSON object.
    g. Function submit() updated to include data for extra QIAcube items in JSON object with key "extraItems", when sending an Ajax request to ExtractionServlet with command "RegisterStartPlate".
  6. Javascript file extraction_registration.js in resources/sampleproc/ updated:
    a. Function sourceItemListLoaded(response) updated to get values for global JSON array extraItemsList from response.extraitems.
    b. Function initializeStep3() updated to not call function getExtraItemsList(numExtraItems) to obtain default values for global JSON array extraItemsList, since it now is supplied by the ExtractionServlet response.
  7. Javascript file extraction_formcopy.js in resources/sampleproc/ updated:
    a. Function sourceItemListLoaded(response) updated to get values for global JSON array extraItemsList from response.extraitems.
    b. Function initializeStep3() updated to not call function getExtraItemsList(numExtraItems) to obtain default values for global JSON array extraItemsList, since it now is supplied by the ExtractionServlet response.

In addition, a number of commented-out code sections have been removed, in order to increase the readability of the code.

comment:6 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in DNA/RNA extraction wizards to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizards, and in the "Remark" column of created Lab tracking sheets/reports.

Design update:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetUnprocessedItems" to load annotation value for Annotationtype.OPERATOR_DELIVERY_COMMENT for a specimen and return it with JSON key "operatorDeliveryComment".
  2. Javascript file extraction_preparation.js in resources/sampleproc/ updated:
    a. Function updateDetailsTable() updated to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizard, and to insert it in the tool tip field.
  3. Javascript file extraction_registration.js in resources/sampleproc/ updated:
    a. Function updateDetailsTable() updated to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizard, and to insert it in the tool tip field.
  4. Javascript file extraction_formcopy.js in resources/sampleproc/ updated:
    a. Function updateDetailsTable() updated to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizard, and to insert it in the tool tip field.
  5. Javascript file extraction_protocol.js in resources/sampleproc/ updated:
    a. Function tableRowsForItems(accumItemNo, itemJsonArr, itemType, itemTypeVarName) updated to display any operator delivery comment for a specimen in the "Remark" column of created Lab tracking sheets/reports.

comment:7 by olle, 10 years ago

(In [3246]) Refs #767. MeLuDI updated in DNA/RNA extraction wizards to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizards, and in the "Remark" column of created Lab tracking sheets/reports.

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetUnprocessedItems" to load annotation value for Annotationtype.OPERATOR_DELIVERY_COMMENT for a specimen and return it with JSON key "operatorDeliveryComment".
  2. Javascript file extraction_preparation.js in resources/sampleproc/ updated:
    a. Function updateDetailsTable() updated to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizard, and to insert it in the tool tip field.
  3. Javascript file extraction_registration.js in resources/sampleproc/ updated:
    a. Function updateDetailsTable() updated to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizard, and to insert it in the tool tip field.
  4. Javascript file extraction_formcopy.js in resources/sampleproc/ updated:
    a. Function updateDetailsTable() updated to display any operator delivery comment for a specimen in the "Comment" column in step 3 of the wizard, and to insert it in the tool tip field.
  5. Javascript file extraction_protocol.js in resources/sampleproc/ updated:
    a. Function tableRowsForItems(accumItemNo, itemJsonArr, itemType, itemTypeVarName) updated to display any operator delivery comment for a specimen in the "Remark" column of created Lab tracking sheets/reports.

comment:8 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in case registration by adding a button for selecting all mutation analysis options except "Other analysis" (check boxes, default = none selected):

Design update:

  1. JSP file specimentube.jsp in resources/sampleproc/ updated in step 2 by adding a "Select all" button with id "selectAllMutationAnalysis" to the left of the mutation analysis check box set.
  2. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initPage() updated by adding click handler to new "Select all" button with id "selectAllMutationAnalysis" with callback function mutationAnalysisSelectAll().
    b. New function mutationAnalysisSelectAll() added. It sets all mutation analysis check boxes except "Other analysis" to checked.
  3. JSP file persinfo.jsp in resources/personal/ updated in step 3 by adding a "Select all" button with id "selectAllMutationAnalysis" to the left of the mutation analysis check box set.
  4. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initPage() updated by adding click handler to new "Select all" button with id "selectAllMutationAnalysis" with callback function mutationAnalysisSelectAll().
    b. New function mutationAnalysisSelectAll() added. It sets all mutation analysis check boxes except "Other analysis" to checked.

comment:9 by olle, 10 years ago

(In [3249]) Refs #767. MeLuDI updated in case registration by adding a button for selecting all mutation analysis options except "Other analysis" (check boxes, default = none selected):

  1. JSP file specimentube.jsp in resources/sampleproc/ updated in step 2 by adding a "Select all" button with id "selectAllMutationAnalysis" to the left of the mutation analysis check box set.
  2. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initPage() updated by adding click handler to new "Select all" button with id "selectAllMutationAnalysis" with callback function mutationAnalysisSelectAll().
    b. New function mutationAnalysisSelectAll() added. It sets all mutation analysis check boxes except "Other analysis" to checked.
  3. JSP file persinfo.jsp in resources/personal/ updated in step 3 by adding a "Select all" button with id "selectAllMutationAnalysis" to the left of the mutation analysis check box set.
  4. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initPage() updated by adding click handler to new "Select all" button with id "selectAllMutationAnalysis" with callback function mutationAnalysisSelectAll().
    b. New function mutationAnalysisSelectAll() added. It sets all mutation analysis check boxes except "Other analysis" to checked.

comment:10 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in case registration by adding buttons to insert standard comments in the "Operator delivery comment" field for a specimen tube. The first button to be added is for the comment "Utkarvad", which is Swedish for "Carved out".

Design update:

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addCarvedOutComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.
    b. New function addComment() added. It retrieves the comment field id and comment text from the JSON attribute, and then adds the comment text in the target field, after an optional space, if a previous comment already exists.
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addCarvedOutComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.
    b. New function addComment() added. It retrieves the comment field id and comment text from the JSON attribute, and then adds the comment text in the target field, after an optional space, if a previous comment already exists.

comment:11 by olle, 10 years ago

(In [3250]) Refs #767. MeLuDI updated in case registration by adding buttons to insert standard comments in the "Operator delivery comment" field for a specimen tube. The first button to be added is for the comment "Utkarvad", which is Swedish for "Carved out".

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addCarvedOutComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.
    b. New function addComment() added. It retrieves the comment field id and comment text from the JSON attribute, and then adds the comment text in the target field, after an optional space, if a previous comment already exists.
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addCarvedOutComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.
    b. New function addComment() added. It retrieves the comment field id and comment text from the JSON attribute, and then adds the comment text in the target field, after an optional space, if a previous comment already exists.

comment:12 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in case registration by adding buttons to insert standard comments in the "Operator delivery comment" field for a specimen tube for the comment "MNB", an abbreviation of "Medium needle biopsy" ("Mellannålsbiopsi" in Swedish).

Design update:

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addMnbComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addMnbComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.

comment:13 by olle, 10 years ago

(In [3251]) Refs #767. MeLuDI updated in case registration by adding buttons to insert standard comments in the "Operator delivery comment" field for a specimen tube for the comment "MNB", an abbreviation of "Medium needle biopsy" ("Mellannålsbiopsi" in Swedish).

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addMnbComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated by adding HTML code for a new button below the "Operator delivery comment" field for each specimen tube. The button id is "addMnbComment" plus specimen tube index. A click handler is added to each new comment button, with callback function set to addComment() and a JSON attribute added with comment text field id and comment text.

comment:14 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in case registration regarding buttons to insert standard comments in the "Operator delivery comment" fields for items. Since the standard comments normally should be added for all items registered for a case, the standard comments buttons for each item should be replaced by a new section with standard comment buttons at the top of the item information section. Clicking a standard comment button should insert the comment in question into the "Operator delivery comment" fields of all items.

Design update:

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated by adding HTML code for a new section with standard comment buttons at the top of the item information section, replacing the comment buttons below the "Operator delivery comment" field for each specimen tube. A click handler is added to each new comment button, with callback function set to addCommentGeneral() and a JSON attribute added with number of items, comment text field base id, and comment text.
    b. New function addCommentGeneral() added. It retrieves the number of items, the comment field base id, and comment text from the JSON attribute, and then adds the comment text in the target fields of all items, after an optional space, if a previous comment already exists.
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated by adding HTML code for a new section with standard comment buttons at the top of the item information section, replacing the comment buttons below the "Operator delivery comment" field for each specimen tube. A click handler is added to each new comment button, with callback function set to addCommentGeneral() and a JSON attribute added with number of items, comment text field base id, and comment text.
    b. New function addCommentGeneral() added. It retrieves the number of items, the comment field base id, and comment text from the JSON attribute, and then adds the comment text in the target fields of all items, after an optional space, if a previous comment already exists.

comment:15 by olle, 10 years ago

(In [3252]) Refs #767. MeLuDI updated in case registration regarding buttons to insert standard comments in the "Operator delivery comment" fields for items. Since the standard comments normally should be added for all items registered for a case, the standard comments buttons for each item are replaced by a new section with standard comment buttons at the top of the item information section. Clicking a standard comment button should insert the comment in question into the "Operator delivery comment" fields of all items.

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated by adding HTML code for a new section with standard comment buttons at the top of the item information section, replacing the comment buttons below the "Operator delivery comment" field for each specimen tube. A click handler is added to each new comment button, with callback function set to addCommentGeneral() and a JSON attribute added with number of items, comment text field base id, and comment text.
    b. New function addCommentGeneral() added. It retrieves the number of items, the comment field base id, and comment text from the JSON attribute, and then adds the comment text in the target fields of all items, after an optional space, if a previous comment already exists.
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated by adding HTML code for a new section with standard comment buttons at the top of the item information section, replacing the comment buttons below the "Operator delivery comment" field for each specimen tube. A click handler is added to each new comment button, with callback function set to addCommentGeneral() and a JSON attribute added with number of items, comment text field base id, and comment text.
    b. New function addCommentGeneral() added. It retrieves the number of items, the comment field base id, and comment text from the JSON attribute, and then adds the comment text in the target fields of all items, after an optional space, if a previous comment already exists.

comment:16 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated to place DNA extracts on a storage plate, both for input DNA in case registration, and for created DNA extracts in DNA/RNA registration/quantification. The DNA extracts should be placed on a storage plate with name having suffix "_dna".

Design update:

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated to disable the storage box options only for the first specimen tube.
    b. Function storagePositionsLoaded(response) updated to ignore the storage box position only for the first specimen tube.
    c. Function fetchStorageBoxSuffix(tubeContentType) updated to return suffix "_dna" for tube content type "DNA" and suffix "_dna_rna" for tube content type "DNA_RNA". The latter suffix does not correspond to the name suffix of a type of storage plates, but works as a flag to command "FindStoragePositions" in SpecimenTubeRegistrationServlet to find one place on a storage plate with suffix "_dna", and one on a storage plate with suffix "_rna".
    d. Function boxOnKeyUp(event) updated to also check validity of storage box names with suffix "_dna".
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated to disable the storage box options only for the first specimen tube.
    b. Function storagePositionsLoaded(response) updated to ignore the storage box position only for the first specimen tube.
    c. Function fetchStorageBoxSuffix(tubeContentType) updated to return suffix "_dna" for tube content type "DNA" and suffix "_dna_rna" for tube content type "DNA_RNA". The latter suffix does not correspond to the name suffix of a type of storage plates, but works as a flag to command "FindStoragePositions" in SpecimenTubeRegistrationServlet to find one place on a storage plate with suffix "_dna", and one on a storage plate with suffix "_rna".
    d. Function boxOnKeyUp(event) updated to also check validity of storage box names with suffix "_dna".
  3. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "FindStoragePositions" and attribute storageBoxSuffix equal to "_dna_rna" to find one free well on a storage box with suffix "_dna" and one on a storage box with suffix "_rna", and then return the data in a JSONArray in that order.
  4. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterDnaRna" to get a list of free wells for storage plates with names having suffix "_dna", in addition to those having suffix "_rna", and to place created DNA extracts on the next wells on the DNA plate(s).
Last edited 10 years ago by olle (previous) (diff)

comment:17 by olle, 10 years ago

(In [3253]) Refs #767. MeLuDI should updated to place DNA extracts on a storage plate, both for input DNA in case registration, and for created DNA extracts in DNA/RNA registration/quantification. The DNA extracts should be placed on a storage plate with name having suffix "_dna".

  1. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function initializeStep3() updated to disable the storage box options only for the first specimen tube.
    b. Function storagePositionsLoaded(response) updated to ignore the storage box position only for the first specimen tube.
    c. Function fetchStorageBoxSuffix(tubeContentType) updated to return suffix "_dna" for tube content type "DNA" and suffix "_dna_rna" for tube content type "DNA_RNA". The latter suffix does not correspond to the name suffix of a type of storage plates, but works as a flag to command "FindStoragePositions" in SpecimenTubeRegistrationServlet to find one place on a storage plate with suffix "_dna", and one on a storage plate with suffix "_rna".
    d. Function boxOnKeyUp(event) updated to also check validity of storage box names with suffix "_dna".
  2. Javascript file persinfo.js in resources/personal/ updated:
    a. Function initializeStep4() updated to disable the storage box options only for the first specimen tube.
    b. Function storagePositionsLoaded(response) updated to ignore the storage box position only for the first specimen tube.
    c. Function fetchStorageBoxSuffix(tubeContentType) updated to return suffix "_dna" for tube content type "DNA" and suffix "_dna_rna" for tube content type "DNA_RNA". The latter suffix does not correspond to the name suffix of a type of storage plates, but works as a flag to command "FindStoragePositions" in SpecimenTubeRegistrationServlet to find one place on a storage plate with suffix "_dna", and one on a storage plate with suffix "_rna".
    d. Function boxOnKeyUp(event) updated to also check validity of storage box names with suffix "_dna".
  3. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "FindStoragePositions" and attribute storageBoxSuffix equal to "_dna_rna" to find one free well on a storage box with suffix "_dna" and one on a storage box with suffix "_rna", and then return the data in a JSONArray in that order.
  4. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterDnaRna" to get a list of free wells for storage plates with names having suffix "_dna", in addition to those having suffix "_rna", and to place created DNA extracts on the next wells on the DNA plate(s).

comment:18 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in the Lab tracking sheet/report copy wizard in step 1 in the start plate selection menu:
    a. The start plates should be displayed in descending order of plate names, since it is normally the most recent plate, that is of interest.
    b. If the start plate is processed, as indicated by the event date being set, the latter value should be displayed inside square brackets after the start plate name and number of items.
    c. Start plates marked as having been destroyed, should no longer be included in the list.

Design update:

  1. Javascript file extraction_formcopy.js in resources/sampleproc/ updated:
    a. Function initPage() updated in Ajax call to ExtractionServlet with command "GetStartPlates" to add parameter "orderDesc" set to true, in order to get the list sorted in descending plate name order.
    b. Function initializeStep1(response) updated in the start plate selection menu to add an optional event date (obtained through JSON key "extractionDate") inside square brackets after the start plate name and number of items, plus a spacer string " -- ". The first start plate item in the selection menu is marked as selected by default.
    c. New function asDate(value) added. It returns an input date string in "yyyymmdd" format as "yyyy-mm-dd" format.
  2. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetStartPlates" to call new static public method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation) updated to call new public static method List<ReactionPlate> ReactionPlate.findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation, Boolean destroyed, Boolean orderDesc) with Boolean argument destroyed set to false and orderDesc set to value obtained by parameter "orderDesc" (if the latter is null, argument orderDesc is set to false).
  3. Java data access object class/file ReactionPlate.java in src/net/sf/basedb/meludi/dao/ updated:
    a. Public static method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation) updated to call new public static method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation, Boolean destroyed, Boolean orderDesc) with Boolean arguments destroyed and orderDesc set to false to obtain the list to return. Note that this is a change in functionality, since the method previously included plates, that had been marked as destroyed.
    b. New public static method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation, Boolean destroyed, Boolean orderDesc) added. If argument destroyed is equal to null, both existing and destroyed plates are included, while destroyed equal to false includes only existing plates, and destroyed equal to true includes only plates marked as destroyed. If argument orderDesc is true, the plates will be sorted in descending order by plate name, otherwise ascending.
Version 2, edited 10 years ago by olle (previous) (next) (diff)

comment:19 by olle, 10 years ago

(In [3254]) Refs #767. MeLuDI updated in the Lab tracking sheet/report copy wizard in step 1 in the start plate selection menu:
a. The start plates are now displayed in descending order of plate names, since it is normally the most recent plate, that is of interest.
b. If the start plate is processed, as indicated by the event date being set, the latter value is displayed inside square brackets after the start plate name and number of items.
c. Start plates marked as having been destroyed, should no longer be included in the list.

  1. Javascript file extraction_formcopy.js in resources/sampleproc/ updated:
    a. Function initPage() updated in Ajax call to ExtractionServlet with command "GetStartPlates" to add parameter "orderDesc" set to true, in order to get the list sorted in descending plate name order.
    b. Function initializeStep1(response) updated in the start plate selection menu to add an optional event date (obtained through JSON key "extractionDate") inside square brackets after the start plate name and number of items, plus a spacer string " -- ". The first start plate item in the selection menu is marked as selected by default (since the plates are now displayed in descending plate name order, this is normally the newest start plate).
    c. New function asDate(value) added. It returns an input date string in "yyyymmdd" format as "yyyy-mm-dd".
  2. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetStartPlates" to call new static public method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation) updated to call new public static method List<ReactionPlate> ReactionPlate.findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation, Boolean destroyed, Boolean orderDesc) with Boolean argument destroyed set to false and orderDesc set to value obtained by parameter "orderDesc" (if the latter is null, argument orderDesc is set to false).
  3. Java data access object class/file ReactionPlate.java in src/net/sf/basedb/meludi/dao/ updated:
    a. Public static method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation) updated to call new public static method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation, Boolean destroyed, Boolean orderDesc) with Boolean arguments destroyed and orderDesc set to false to obtain the list to return. Note that this is a change in functionality, since the method previously included plates, that had been marked as destroyed.
    b. New public static method List<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runDateAnnotation, Boolean destroyed, Boolean orderDesc) added. If argument destroyed is equal to null, both existing and destroyed plates are included, while destroyed equal to false includes only existing plates, and destroyed equal to true includes only plates marked as destroyed. If argument orderDesc is true, the plates will be sorted in descending order by plate name, otherwise ascending.

comment:20 by olle, 10 years ago

Functional specification update:

  • MeLuDI should be updated in the Lab tracking sheet wizards in step 3 for downloading a NanoDrop sample ID file to add option to use a full column with blank controls, which should be the default.

Design update:

  1. JSP file extraction_preparation.jsp in resources/sampleproc/ updated in step 3 by adding a check box with id "blankControlColumn" and label "Column with blank controls" to the right of the button for downloading a NanoDrop sample ID file. The check box should be checked by default.
  2. Javascript file extraction_preparation.js in resources/sampleproc/ updated in function downloadSampleIdFile() to include parameter "blankControlColumn" in Ajax request to ExtractionServlet with command "DownloadNanoDropSampleIdFile". The value of the new parameter is set to the checked status of check box with id "blankControlColumn".
  3. JSP file extraction_formcopy.jsp in resources/sampleproc/ updated in step 3 by adding a check box with id "blankControlColumn" and label "Column with blank controls" to the right of the button for downloading a NanoDrop sample ID file. The check box should be checked by default.
  4. Javascript file extraction_formcopy.js in resources/sampleproc/ updated in function downloadSampleIdFile() to include parameter "blankControlColumn" in Ajax request to ExtractionServlet with command "DownloadNanoDropSampleIdFile". The value of the new parameter is set to the checked status of check box with id "blankControlColumn".
  5. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "DownloadNanoDropSampleIdFile" to obtain value of Boolean parameter "blankControlColumn", and if the latter is not false, add a full column with blank controls at the right of the last column containing a sample. If the value of parameter "blankControlColumn" is false, a single blank cell will be added after the last cell containing a sample.
    b. (Unrelated to the new option for NanoDrop sample ID file.) Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetStartPlates" to use method Boolean.valueOf() to convert the value of parameter "orderDesc" to a Boolean variable. This hoprfully increases the consistency and readability of the code.

comment:21 by olle, 10 years ago

(In [3255]) Refs #767. MeLuDI updated in the Lab tracking sheet wizards in step 3 for downloading a NanoDrop sample ID file to add option to use a full column with blank controls, which should be the default.

  1. JSP file extraction_preparation.jsp in resources/sampleproc/ updated in step 3 by adding a check box with id "blankControlColumn" and label "Column with blank controls" to the right of the button for downloading a NanoDrop sample ID file. The check box should be checked by default.
  2. Javascript file extraction_preparation.js in resources/sampleproc/ updated in function downloadSampleIdFile() to include parameter "blankControlColumn" in Ajax request to ExtractionServlet with command "DownloadNanoDropSampleIdFile". The value of the new parameter is set to the checked status of check box with id "blankControlColumn".
  3. JSP file extraction_formcopy.jsp in resources/sampleproc/ updated in step 3 by adding a check box with id "blankControlColumn" and label "Column with blank controls" to the right of the button for downloading a NanoDrop sample ID file. The check box should be checked by default.
  4. Javascript file extraction_formcopy.js in resources/sampleproc/ updated in function downloadSampleIdFile() to include parameter "blankControlColumn" in Ajax request to ExtractionServlet with command "DownloadNanoDropSampleIdFile". The value of the new parameter is set to the checked status of check box with id "blankControlColumn".
  5. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "DownloadNanoDropSampleIdFile" to obtain value of Boolean parameter "blankControlColumn", and if the latter is not false, add a full column with blank controls at the right of the last column containing a sample. If the value of parameter "blankControlColumn" is false, a single blank cell will be added after the last cell containing a sample.
    b. (Unrelated to the new option for NanoDrop sample ID file.) Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetStartPlates" to use method Boolean.valueOf() to convert the value of parameter "orderDesc" to a Boolean variable. This hoprfully increases the consistency and readability of the code.

comment:22 by olle, 10 years ago

Functional specification update:

  • It was decided to release MeLuDI in its current state as MeLuDI v.1.2.2.

comment:23 by olle, 10 years ago

(In [3256]) Refs #767. Updates due to version number change to "1.2.2".

  1. Version number change to "1.2.2":
    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:24 by olle, 10 years ago

Milestone: MeLuDI v1.2.2MeLuDI v1.3
Resolution: fixed
Status: assignedclosed

Ticket closed as MeLuDI version 1.2.2 has been created.

comment:25 by olle, 10 years ago

Milestone: MeLuDI v1.3MeLuDI v1.2.2

Milestone reset to MeLuDI v1.2.2, which is the milestone related to this ticket.

Note: See TracTickets for help on using tickets.