Opened 10 years ago
Closed 9 years ago
#759 closed task (fixed)
MeLuDi v.1.2 bug fixes and improvements
Reported by: | olle | Owned by: | olle |
---|---|---|---|
Priority: | major | Milestone: | MeLuDI v1.2.1 |
Component: | net.sf.basedb.meludi | Keywords: | |
Cc: |
Description
This ticket covers bug fixes and improvements to MeLuDi v.1.2.
Change History (58)
comment:1 by , 10 years ago
Status: | new → assigned |
---|
comment:2 by , 10 years ago
comment:3 by , 10 years ago
(In [3193]) Refs #759 Updates due to version number change to "1.3-dev
".
- Version number change to "
1.3-dev
":
a. Outermost Ant XML build filebuild.xml
in/
updated.
b. Extensions XML configuration fileextensions.xml
inMETA-INF/
updated.
c. Javascript filemeludi-2.js
inresources/
updated.
d. Javascript filesamplereportgenerator.js
inresources/reports/
updated.
e. Java class/fileMeludi.java
insrc/net/sf/basedb/meludi/
updated.
comment:4 by , 10 years ago
Functional specification update:
- MeLuDi DNA/RNA extraction wizards should be updated to add an extra suffix "
(preview)
" to the header of a created Lab Tracking Sheet/Report for Allprep isolation, if the form is created before registration in the wizard. The wizards should also be updated to allow creation of the form after registration, but then without the extra header suffix "(preview)
".
Design update:
- Javascript files
extraction_preparation.js
andextraction_registration.js
inresources/sampleproc/
updated:
a. New global variabletrackingSheetPreview
originally set totrue
.
b. FunctionsubmissionResults(response)
updated to show button for creating Lab Tracking Sheet/Report also after registration, and set value of global variabletrackingSheetPreview
tofalse
.
c. FunctioncreateProtocol()
updated to include a new JSON object with key "protocolPreviewFlag
" to the JSON submit info sent to Javascript fileextraction_protocol.js
. The value of global variabletrackingSheetPreview
is checked, and iftrue
, the value of JSON object "protocolPreviewFlag
" is set to "true
", otherwisenull
. - Javascript file
extraction_protocol.js
inresources/sampleproc/
updated in functioninitializeProtocol(submitInfoJsonStr)
to check value of received JSON object with key "protocolPreviewFlag
", and if set to "true
", add suffix "(preview)
" to the header of created Lab Tracking Sheet/Report for Allprep isolation.
comment:5 by , 10 years ago
(In [3199]) Refs #759. MeLuDi DNA/RNA extraction wizards updated to add an extra suffix "(preview)
" to the header of a created Lab Tracking Sheet/Report for Allprep isolation, if the form is created before registration in the wizard. The wizards are also updated to allow creation of the form after registration, but then without the extra header suffix "(preview)
":
- Javascript files
extraction_preparation.js
andextraction_registration.js
inresources/sampleproc/
updated:
a. New global variabletrackingSheetPreview
originally set totrue
.
b. FunctionsubmissionResults(response)
updated to show button for creating Lab Tracking Sheet/Report also after registration, and set value of global variabletrackingSheetPreview
tofalse
.
c. FunctioncreateProtocol()
updated to include a new JSON object with key "protocolPreviewFlag
" to the JSON submit info sent to Javascript fileextraction_protocol.js
. The value of global variabletrackingSheetPreview
is checked, and iftrue
, the value of JSON object "protocolPreviewFlag
" is set to "true
", otherwisenull
. - Javascript file
extraction_protocol.js
inresources/sampleproc/
updated in functioninitializeProtocol(submitInfoJsonStr)
to check value of received JSON object with key "protocolPreviewFlag
", and if set to "true
", add suffix "(preview)
" to the header of created Lab Tracking Sheet/Report for Allprep isolation.
comment:6 by , 10 years ago
(In [3200]) Refs #759. Javascript file extraction_registration.js
in resources/sampleproc/
updated to use debug mode, in order to simplify development:
a. Global variable debug
flag set to 1
.
b. Function exreg.initializeStep3()
updated to use function call Doc.show(...)
to display debug tools, instead of deprecated call Wizard.showDebugTools()
.
comment:7 by , 10 years ago
Functional specification update:
- MeLuDi DNA/RNA extraction wizards should be updated to draw vertical border lines between columns in the table section of created Lab Tracking Sheet/Report for Allprep isolation.
Design update:
- JSP file
extraction_protocol2.jsp
inresources/sampleproc/
updated in table section to add a 1-pixel wide right border.
comment:8 by , 10 years ago
(In [3201]) Refs #759. MeLuDi DNA/RNA extraction wizards updated to draw vertical border lines between columns in the table section of created Lab Tracking Sheet/Report for Allprep isolation:
- JSP file
extraction_protocol2.jsp
inresources/sampleproc/
updated in table section to add a 1-pixel wide right border.
comment:9 by , 10 years ago
Functional specification update:
- MeLuDi DNA/RNA extraction wizards should be updated to not depend on knowledge of the start of Allprep extraction protocol names, more than that they end with a version number preceded by the lower-case letter "
v
". The last extraction protocol in the protocol selection pop-up menu will now be pre-selected.
Design update:
- Javascript files
extraction_preparation.js
andextraction_registration.js
inresources/sampleproc/
updated:
a. Constant equal to start of Allprep extraction protocol names removed, as it is no longer needed.
b. FunctionprotocolsLoaded(response)
updated to have the last extraction protocol in the protocol selection pop-up menu pre-selected.
c. FunctioncreateProtocol()
updated to obtain the protocol version no. by removing all parts of the protocol name up to and including the last "v
".
comment:10 by , 10 years ago
(In [3202]) Refs #759. MeLuDi DNA/RNA extraction wizards updated to not depend on knowledge of the start of Allprep extraction protocol names, more than that they end with a version number preceded by the lower-case letter "v
". The last extraction protocol in the protocol selection pop-up menu will now be pre-selected:
- Javascript files
extraction_preparation.js
andextraction_registration.js
inresources/sampleproc/
updated:
a. Constant equal to start of Allprep extraction protocol names removed, as it is no longer needed.
b. FunctionprotocolsLoaded(response)
updated to have the last extraction protocol in the protocol selection pop-up menu pre-selected.
c. FunctioncreateProtocol()
updated to obtain the protocol version no. by removing all parts of the protocol name up to and including the last "v
".
comment:11 by , 10 years ago
(In [3203]) Refs #759. MeLuDi DNA/RNA extraction wizards updated to print an optional header suffix "(preview)
" of a created Lab Tracking Sheet/Report for Allprep isolation in italics, in order to emphasize it:
- Javascript file
extraction_protocol.js
inresources/sampleproc/
updated in functioninitializeProtocol(submitInfoJsonStr)
to print optional header suffix "(preview)
" of a created Lab Tracking Sheet/Report for Allprep isolation in italics.
comment:12 by , 10 years ago
Functional specification update:
- MeLuDi DNA/RNA registration/quantification wizard should be updated in step 1 in the selection list for unprocessed start plates, to display the number of extract source items and optional extra items for each plate, in order to simplify identification of the plates. The number of extract source items will be displayed inside a parenthesis, with the number of optional extra items added after a "
+
" sign, if any extra items exist.
Design update:
- Javascript file
extraction_registration.js
inresources/sampleproc/
updated in functionexreg.initializeStep1(response)
in the selection list for unprocessed start plates, to display the number of extract source items and optional extra items for each plate. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
for command "GetUnprocessedStartPlates
" to load the list of extract source item names and number of optional extra items from annotations for a plate, and add them to the JSON response as values for JSON objects with keys "sourceItemNames
" and "numberExtraQiacubeItems
", respectively.
comment:13 by , 10 years ago
(In [3204]) Refs #759. MeLuDi DNA/RNA registration/quantification wizard updated in step 1 in the selection list for unprocessed start plates, to display the number of extract source items and optional extra items for each plate, in order to simplify identification of the plates. The number of extract source items will be displayed inside a parenthesis, with the number of optional extra items added after a "+
" sign, if any extra items exist:
- Javascript file
extraction_registration.js
inresources/sampleproc/
updated in functionexreg.initializeStep1(response)
in the selection list for unprocessed start plates, to display the number of extract source items and optional extra items for each plate. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
for command "GetUnprocessedStartPlates
" to load the list of extract source item names and number of optional extra items from annotations for a plate, and add them to the JSON response as values for JSON objects with keys "sourceItemNames
" and "numberExtraQiacubeItems
", respectively.
comment:14 by , 10 years ago
Functional specification update:
- MeLuDi Lab tracking protocol for Allprep isolation wizard should be updated in step 3, regarding creation of sample id files for NanoDrop and qPCR instruments, to include the start plate name in the name of created sample id file, and give the latter file extension "
.csv
". The sample id file for the qPCR instrument should also be updated to include a header line. Both the ".csv
" file extension, and in case of the qPCR, the header line, seem to be necessary for the software of the instruments to accept the sample id files.
Design update:
- Javascript file
extraction_preparation.js
inresources/sampleproc/
updated in functionsexprep.downloadSampleIdFile()
andexprep.downloadQPcrSampleIdFile()
to include start plate name in the data sent to servletExtractionServlet
, for creating a sample id file for download. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
:
a. Functionality for command "DownloadNanoDropSampleIdFile
" updated to include the start plate name in the name of created sample id file, and give the latter file extension ".csv
".
b. Functionality for command "DownloadQPcrSampleIdFile
" updated to include the start plate name in the name of created sample id file, and give the latter file extension ".csv
". A header line is now also included in the created file.
comment:15 by , 10 years ago
(In [3205]) Refs #759. MeLuDi Lab tracking protocol for Allprep isolation wizard updated in step 3, regarding creation of sample id files for NanoDrop and qPCR instruments, to include the start plate name in the name of created sample id file, and give the latter file extension ".csv
". The sample id file for the qPCR instrument is also updated to include a header line. Both the ".csv
" file extension, and in case of the qPCR, the header line, seem to be necessary for the software of the instruments to accept the sample id files:
- Javascript file
extraction_preparation.js
inresources/sampleproc/
updated in functionsexprep.downloadSampleIdFile()
andexprep.downloadQPcrSampleIdFile()
to include start plate name in the data sent to servletExtractionServlet
, for creating a sample id file for download. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
:
a. Functionality for command "DownloadNanoDropSampleIdFile
" updated to include the start plate name in the name of created sample id file, and give the latter file extension ".csv
".
b. Functionality for command "DownloadQPcrSampleIdFile
" updated to include the start plate name in the name of created sample id file, and give the latter file extension ".csv
". A header line is now also included in the created file.
comment:16 by , 10 years ago
(In [3206]) Refs #759. MeLuDi counter, data access object, and servlet code updated to support counting and finding start plates without restrictions, whether they have been processed or not:
- Java service class/file
CounterService.java
insrc/net/sf/basedb/meludi/counter/
updated in private methodvoid countBioPlates(DbControl dc, JSONObject json)
by addition of a counter for all DNA reaction plates in the project, coupled to JSON key "dna-plates
".
- Data access object class/file
ReactionPlate.java
insrc/net/sf/basedb/meludi/dao/
updated with new public static methodList<ReactionPlate> findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runAnnotation)
. It finds all reaction plates which can hold biomaterial items of the given subtype, and have names starting with an optional prefix. Plates included are plates that have at least the specified number of free wells and no value set for the 'run date' annotation.
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
by support for new command "GetStartPlates
", that will call new static methodReactionPlate.findByBioPlateType(DbControl dc, BioplateType bioPlateType, Subtype subtype, String prefix, int numFreeWells, Annotationtype runAnnotation)
to obtain a list of DNA reaction plates. The list will be returned as a JSON array. A list of extract source item names and number of optional extra items will be loaded from annotations for a plate, and added to the JSON response as values for JSON objects with keys "sourceItemNames
" and "numberExtraQiacubeItems
", respectively.
comment:17 by , 10 years ago
Functional specification update:
- MeLuDi case summary should be updated in the specimen info, to show information on an optional start DNA plate coupled to the specimen, by the latter's name being included in the plate's
Annotationtype.SOURCE_ITEM_NAMES
annotation.
Design update:
- JSP file
case_summary.jsp
inresources/reports/
updated by including a new row of cells with optional start plate data for the specimens related to a case. - Javascript file
case_summary.js
inresources/reports/
updated in functioncs.caseInfoLoaded()
to add a column with links to optional start DNA plates for the specimens. The start plate info is retrieved from the specimen JSON object using key "startPlate
". - Java servlet class/file
CaseSummaryServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetCaseInfo
" to call new private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube st)
, and if the result is notnull
, add the plate info as JSONObject with key "startPlate
" to the JSONObject for the specimen.
b. New private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube st)
added. It finds the first start DNA reaction plate with the input specimen name contained in annotation listAnnotationtype.SOURCE_ITEM_NAMES
. If none is found,null
will be returned. - Java utility class/file
JsonUtil.java
insrc/net/sf/basedb/meludi/
updated with new public static methodJSONObject getBioPlateAsJSON(BioPlate plate)
. It returns plate info in JSON corresonding to the plate info in public methodJSONObject getBioWellAsJSON(BioWell well, boolean includePlateInfo)
.
comment:18 by , 10 years ago
(In [3207]) Refs #759. MeLuDi case summary updated in the specimen info, to show information on an optional start DNA plate coupled to the specimen, by the latter's name being included in the plate's Annotationtype.SOURCE_ITEM_NAMES
annotation:
- JSP file
case_summary.jsp
inresources/reports/
updated by including a new row of cells with optional start plate data for the specimens related to a case. - Javascript file
case_summary.js
inresources/reports/
updated in functioncs.caseInfoLoaded()
to add a column with links to optional start DNA plates for the specimens. The start plate info is retrieved from the specimen JSON object using key "startPlate
". - Java servlet class/file
CaseSummaryServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetCaseInfo
" to call new private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube st)
, and if the result is notnull
, add the plate info as JSONObject with key "startPlate
" to the JSONObject for the specimen.
b. New private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube st)
added. It finds the first start DNA reaction plate with the input specimen name contained in annotation listAnnotationtype.SOURCE_ITEM_NAMES
. If none is found,null
will be returned. - Java utility class/file
JsonUtil.java
insrc/net/sf/basedb/meludi/
updated with new public static methodJSONObject getBioPlateAsJSON(BioPlate plate)
. It returns plate info in JSON corresonding to the plate info in public methodJSONObject getBioWellAsJSON(BioWell well, boolean includePlateInfo)
.
comment:19 by , 10 years ago
Functional specification update:
- MeLuDi DNA/RNA registration/quantification wizard should be updated in Qubit file parsing:
a. The read assay concentration in ng/µl should be multiplied by a dilution factor. If a dilution factor is supplied in the "Dilution Factor
" column of the item, that should be used, otherwise the Qubit default of200.0
.
b. An assay concentration value that is not a number (probably "<0.50
") should not trigger an error message, but be replaced by "0.0
". If such replacements are performed, and no error having occurred indicating the file is invalid, the Qubit file entry should be flagged, and a note of the last item having its value changed in this way should be displayed.
Design update:
- Javascript file
extraction_registration.js
inresources/sampleproc/
updated:
a. A global constantQUBIT_DILUTION_FACTOR
with value200.0
is defined.
b. Functionexreg.parseQubitFile(data)
updated:
i. A dilution factor will be read from the "Dilution Factor
" column of an item, and be multiplied with the read assay concentration in ng/µl. If no dilution factor is supplied for an item, the value of global constantQUBIT_DILUTION_FACTOR
is used.
ii. An assay concentration value that is not a number (probably "<0.50
") will now not trigger an error message, but be replaced by "0.0
". If such replacements are performed, and no error having occurred indicating the file is invalid, the Qubit file entry will be flagged, and a note of the last item having its value changed in this way be displayed.
comment:20 by , 10 years ago
(In [3208]) Refs #759. MeLuDi DNA/RNA registration/quantification wizard updated in Qubit file parsing:
a. The read assay concentration in ng/µl should be multiplied by a dilution factor. If a dilution factor is supplied in the "Dilution Factor
" column of the item, that should be used, otherwise the Qubit default of 200.0
.
b. An assay concentration value that is not a number (probably "<0.50
") should not trigger an error message, but be replaced by "0.0
". If such replacements are performed, and no error having occurred indicating the file is invalid, the Qubit file entry should be flagged, and a note of the last item having its value changed in this way should be displayed.
- Javascript file
extraction_registration.js
inresources/sampleproc/
updated:
a. A global constantQUBIT_DILUTION_FACTOR
with value200.0
is defined.
b. Functionexreg.parseQubitFile(data)
updated:
i. A dilution factor will be read from the "Dilution Factor
" column of an item, and be multiplied with the read assay concentration in ng/µl. If no dilution factor is supplied for an item, the value of global constantQUBIT_DILUTION_FACTOR
is used.
ii. An assay concentration value that is not a number (probably "<0.50
") will now not trigger an error message, but be replaced by "0.0
". If such replacements are performed, and no error having occurred indicating the file is invalid, the Qubit file entry will be flagged, and a note of the last item having its value changed in this way be displayed.
comment:21 by , 10 years ago
Functional specification update:
- MeLuDi Lab tracking protocol for Allprep isolation wizard should be updated in step 2 by exchanging default primary QIAcube prefix "
C
" for "B
", and secondary QIAcube prefix "A
" for "C
".
Design update:
- JSP file
extraction_preparation.jsp
inresources/sampleproc/
updated in selection pop-up menus for primary and secondary QIAcube prefixes:
a. Default primary QIAcube prefix "C
" exchanged for "B
".
b. Default secondary QIAcube prefix "A
" exchanged for "C
".
comment:22 by , 10 years ago
(In [3209]) Refs #759. MeLuDi Lab tracking protocol for Allprep isolation wizard updated in step 2 by exchanging default primary QIAcube prefix "C
" for "B
", and secondary QIAcube prefix "A
" for "C
":
- JSP file
extraction_preparation.jsp
inresources/sampleproc/
updated in selection pop-up menus for primary and secondary QIAcube prefixes:
a. Default primary QIAcube prefix "C
" exchanged for "B
".
b. Default secondary QIAcube prefix "A
" exchanged for "C
".
comment:23 by , 10 years ago
Functional specification update:
- The desired spelling of the project name has been decided to be "
MeLuDI
" (i.e. with an uppercase "I
" at the end), not "MeLuDi
", as has been previously used for the software. There is no requirement that the software name needs to exactly resemble that of the host project, but the following updates should be done:
a. The main program title displayed at the upper left corner of web pages, and in the program version info text displayed in parenthesis at the upper right corner of many web pages and forms should be changed to "MeLuDI
".
b. References to the program name in other text on web pages and forms may retain the previous spelling, but changes to the new standard is allowed.
Design update:
- Outermost Ant XML build file
build.xml
updated:
a. Value of property "title
" updated from "MeLuDi
" to "MeLuDI
".
b. Target "update-title
" updated to include Javascript fileextraction_protocol.js
inresources/sampleproc/
among the files, for which the program title is updated. - Javascript file
extraction_protocol.js
inresources/sampleproc/
updated with new constantTITLE
, whose value will be used in the program version info text. - Javascript file
meludi-2.js
inresources/
updated. - Javascript file
samplereportgenerator.js
inresources/reports/
updated. - Java class/file
Meludi.java
insrc/net/sf/basedb/meludi/
updated. - Javascript file
index.js
inresources/
updated in case summary "easter egg" trigger strings and action:
a. Functionindex.initPage()
updated to add new event handler functionindex.testMeludiUpperCaseI(event)
for key presses in the case summary "caseName
" input field.
b. New functionindex.testMeludiUpperCaseI(event)
added. It checks for input of string "MeLuDI
", in which case functionindex.showMeludi()
is activated (same as for "MeLuDi
").
c. Functionindex.showMeludi()
updated in text to refer to the program as "MeLuDI
", instead of "MeLuDi
".
comment:24 by , 10 years ago
(In [3210]) Refs #759. Updates regarding spelling of project name. The desired spelling of the project name has been decided to be "MeLuDI
" (i.e. with an uppercase "I
" at the end), not "MeLuDi
", as has been previously used for the software. There is no requirement that the software name needs to exactly resemble that of the host project, but the following updates should be done:
a. The main program title displayed at the upper left corner of web pages, and in the program version info text displayed in parenthesis at the upper right corner of many web pages and forms should be changed to "MeLuDI
".
b. References to the program name in other text on web pages and forms may retain the previous spelling, but changes to the new standard is allowed.
- Outermost Ant XML build file
build.xml
updated:
a. Value of property "title
" updated from "MeLuDi
" to "MeLuDI
".
b. Target "update-title
" updated to include Javascript fileextraction_protocol.js
inresources/sampleproc/
among the files, for which the program title is updated. - Javascript file
extraction_protocol.js
inresources/sampleproc/
updated with new constantTITLE
, whose value will be used in the program version info text. - Javascript file
meludi-2.js
inresources/
updated. - Javascript file
samplereportgenerator.js
inresources/reports/
updated. - Java class/file
Meludi.java
insrc/net/sf/basedb/meludi/
updated. - Javascript file
index.js
inresources/
updated in case summary "easter egg" trigger strings and action:
a. Functionindex.initPage()
updated to add new event handler functionindex.testMeludiUpperCaseI(event)
for key presses in the case summary "caseName
" input field.
b. New functionindex.testMeludiUpperCaseI(event)
added. It checks for input of string "MeLuDI
", in which case functionindex.showMeludi()
is activated (same as for "MeLuDi
").
c. Functionindex.showMeludi()
updated in text to refer to the program as "MeLuDI
", instead of "MeLuDi
".
comment:25 by , 10 years ago
Functional specification update:
- MeLuDI DNA/RNA extraction wizards should be updated to display extract source items in case name order, since this it the preferred order used in the lab. Previously in the Lab tracking protocol for Allprep isolation wizard, specimens have been listed before input RNA items, followed by input DNA items. The original order was chosen because it made QIAcube items (specimens) come before NanoDrop items (specimens + RNA), which come before Qubit items (DNA). The order should be changed both in the extract source item pop-up selection menu in step 1, and the table listing in step 3.
Design update:
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetUnprocessedItems
" to store item names of unprocessed specimens, input RNA, and input DNA in a list, together with entries in a utility JSONObject with key equal to the item name and value equal to the item data stored as a JSON object. When all unprocessed items have been found, the name list is sorted, and used to retrieve the JSON data for the items in item name order, and store the former in a JSONArray, that is added to the return JSON object with key "items
". The JSONArray data for specimens, input RNA, and input DNA, will still be added to the return JSON object with keys "specimens
", "rnas
", and "dnas
", respectively, but may eventually be removed, when no longer used. - Javascript file
extraction_preparation.js
inresources/sampleproc/
updated:
a. FunctioninitializeStep1(response)
(callback function to Ajax call toExtractionServlet
with command "GetUnprocessedItems
") updated to use JSON data retrieved with key "items
", and to create a source item option list, where each option has the item JSON data stored with key "item
".
b. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return. - Javascript file
edit_dnarna_prep_details.js
inresources/sampleproc/
updated:
a. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return. - Javascript file
extraction_registation.js
inresources/sampleproc/
updated:
a. FunctionsourceItemListLoaded(response)
(callback function to Ajax call toExtractionServlet
with command "GetSourceItemListFromStartPlate
") updated to use JSON data retrieved with key "items
", and to create a source item option list, where each option has the item JSON data stored with key "item
".
b. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return. - Javascript file
edit_dnarna_details.js
inresources/sampleproc/
updated:
a. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return.
comment:26 by , 10 years ago
(In [3212]) Refs #759. MeLuDI DNA/RNA extraction wizards updated to display extract source items in case name order, since this it the preferred order used in the lab. Previously in the Lab tracking protocol for Allprep isolation wizard, specimens have been listed before input RNA items, followed by input DNA items. The original order was chosen because it made QIAcube items (specimens) come before NanoDrop items (specimens + RNA), which come before Qubit items (DNA). The order should be changed both in the extract source item pop-up selection menu in step 1, and the table listing in step 3.
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetUnprocessedItems
" to store item names of unprocessed specimens, input RNA, and input DNA in a list, together with entries in a utility JSONObject with key equal to the item name and value equal to the item data stored as a JSON object. When all unprocessed items have been found, the name list is sorted, and used to retrieve the JSON data for the items in item name order, and store the former in a JSONArray, that is added to the return JSON object with key "items
". The JSONArray data for specimens, input RNA, and input DNA, will still be added to the return JSON object with keys "specimens
", "rnas
", and "dnas
", respectively, but may eventually be removed, when no longer used. - Javascript file
extraction_preparation.js
inresources/sampleproc/
updated:
a. FunctioninitializeStep1(response)
(callback function to Ajax call toExtractionServlet
with command "GetUnprocessedItems
") updated to use JSON data retrieved with key "items
", and to create a source item option list, where each option has the item JSON data stored with key "item
".
b. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return. - Javascript file
edit_dnarna_prep_details.js
inresources/sampleproc/
updated:
a. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return. - Javascript file
extraction_registation.js
inresources/sampleproc/
updated:
a. FunctionsourceItemListLoaded(response)
(callback function to Ajax call toExtractionServlet
with command "GetSourceItemListFromStartPlate
") updated to use JSON data retrieved with key "items
", and to create a source item option list, where each option has the item JSON data stored with key "item
".
b. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return. - Javascript file
edit_dnarna_details.js
inresources/sampleproc/
updated:
a. FunctiongetSelectedItemsList()
updated to store the selected item JSON data in the item list to return.
comment:27 by , 10 years ago
Functional specification update:
- MeLuDI Lab tracking protocol for Allprep isolation wizard should be updated in step 3 regarding the layout used, when a qPCR sample id file is created. When placing triplets of each item on three columns in the same row, triplets for items in sequence should be placed on a new row under the preceding triplet, until the last row is reached, after which the next triplet is placed on on the first row to the right of the last triplet on that row.
Example layout for 18 samples 01-18, plus QCT (Quality Control Template) and NTC (No Template Control):
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
A | 01 | 01 | 01 | 09 | 09 | 09 | 17 | 17 | 17 | |||
B | 02 | 02 | 02 | 10 | 10 | 10 | 18 | 18 | 18 | |||
C | 03 | 03 | 03 | 11 | 11 | 11 | QCT | QCT | QCT | |||
D | 04 | 04 | 04 | 12 | 12 | 12 | NTC | NTC | NTC | |||
E | 05 | 05 | 05 | 13 | 13 | 13 | ||||||
F | 06 | 06 | 06 | 14 | 14 | 14 | ||||||
G | 07 | 07 | 07 | 15 | 15 | 15 | ||||||
H | 08 | 08 | 08 | 16 | 16 | 16 |
Design update:
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "DownloadQPcrSampleIdFile
", when placing triplets of each item on three columns in the same row. Triplets for items in sequence are now placed on a new row under the preceding triplet, until the last row is reached, after which the next triplet is placed on on the first row to the right of the last triplet on that row.
comment:28 by , 10 years ago
(In [3213]) Refs #759. MeLuDI Lab tracking protocol for Allprep isolation wizard updated in step 3 regarding the layout used, when a qPCR sample id file is created. When placing triplets of each item on three columns in the same row, triplets for items in sequence should be placed on a new row under the preceding triplet, until the last row is reached, after which the next triplet is placed on on the first row to the right of the last triplet on that row.
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "DownloadQPcrSampleIdFile
", when placing triplets of each item on three columns in the same row. Triplets for items in sequence are now placed on a new row under the preceding triplet, until the last row is reached, after which the next triplet is placed on on the first row to the right of the last triplet on that row.
comment:29 by , 10 years ago
Functional specification update:
- MeLuDI DNA/RNA extraction wizards should have minor updates to the tables shown in step 3:
a. The start plate name should be shown in the info section above the table.
b. Header text of the first table column should be changed from "Specimen
" to the more correct "Extract source item
", since input DNA and RNA are also shown here.
Design update:
- JSP files
extraction_preparation.jsp
andextraction_registration.jsp
inresources/sampleproc/
updated by addition of newdiv
tag with id "detailsStartPlateName
" inserted above the instruction text in the info section above the table for step 3. - Javascript files
extraction_preparation.js
andextraction_registration.js
inresources/sampleproc/
updated in functioninitializeStep3()
:
a. The start plate name is inserted in newdiv
tag with id "detailsStartPlateName
".
b. Header text of the first table column changed from "Specimen
" to the more correct "Extract source item
".
comment:30 by , 10 years ago
(In [3220]) Refs #759. MeLuDI DNA/RNA extraction wizards minor updates to the tables shown in step 3:
a. The start plate name is now shown in the info section above the table.
b. Header text of the first table column changed from "Specimen
" to the more correct "Extract source item
", since input DNA and RNA are also shown here:
- JSP files
extraction_preparation.jsp
andextraction_registration.jsp
inresources/sampleproc/
updated by addition of newdiv
tag with id "detailsStartPlateName
" inserted above the instruction text in the info section above the table for step 3. - Javascript files
extraction_preparation.js
andextraction_registration.js
inresources/sampleproc/
updated in functioninitializeStep3()
:
a. The start plate name is inserted in newdiv
tag with id "detailsStartPlateName
".
b. Header text of the first table column changed from "Specimen
" to the more correct "Extract source item
".
comment:31 by , 10 years ago
comment:32 by , 10 years ago
comment:33 by , 10 years ago
(In [3223]) Refs #759. MeLuDI DNA/RNA extraction wizards value edit pop-up dialogs updated in instruction text for QIAcube prefix to not refer to any specific primary and secondary prefixes, since these may change, but only to examples.
- JSP files
edit_dnarna_details.jsp
andedit_dnarna_prep_details.jsp
inresources/sampleproc/
updated in instruction text for QIAcube prefix to not refer to any specific primary and secondary prefixes, but only to examples.
comment:34 by , 10 years ago
Functional specification update:
- MeLuDI DNA/RNA registration/quantification wizard should be updated in step 3 to allow manual input of all measurement values, in addition to the possibility of importing the latter from measurement value files:
a. This functionality already exists for DNA concentration values, but should be added for RNA concentration and DNA ΔCt values.
b. Since values now may be entered manually, no checks should be performed that an import file has been chosen, before registration is allowed (currently only affecting NanoDrop value file).
Design update:
- JSP file
extraction_registration.jsp
inresources/sampleproc/
updated in instruction text in the info section above the table for step 3, and in text for value import files. - Javascript file
extraction_registration.js
inresources/sampleproc/
updated:
a. FunctioninitializeStep3()
updated to create input fields for RNA concentration and DNA delta-Ct values, and to add new event handler functionsexreg.rnaConcOnChange(event)
andexreg.deltaCtOnChange(event)
to these fields, respectively. Input status set to be valid, even if no NanoDrop value file has been chosen. Also, the background for the DNA concentration value column is updated to that of the RNA concentration and DNA delta-Ct value columns, since they now share the same functionality.
b. New functionexreg.rnaConcOnChange(event)
added. It updates the stored JSON rna data for an item with the entered concentration value coupled to JSON key "ndConc
", and then calls functionexreg.updateDetailsTable()
. If no value has been entered,null
is stored.
c. Functionexreg.dnaConcOnChange(event)
updated to storenull
, if no value has been entered.
d. New functionexreg.deltaCtOnChange(event)
added. It updates the stored JSON dna data for an item with the entered delta-Ct value coupled to JSON key "deltaCt
", and then calls functionexreg.updateDetailsTable()
. If no value has been entered,null
is stored.
e. Functionexreg.updateDetailsTable()
updated to update values of input fields for RNA concentration, DNA contration, and DNA delta-Ct from stored JSON data for items, as well as update quantity values from concentration and volume values.
comment:35 by , 10 years ago
(In [3224]) Refs #759. MeLuDI DNA/RNA registration/quantification wizard updated in step 3 to allow manual input of all measurement values, in addition to the possibility of importing the latter from measurement value files:
a. This functionality already exists for DNA concentration values, but is added for RNA concentration and DNA ΔCt values.
b. Since values now may be entered manually, no checks are performed that an import file has been chosen, before registration is allowed (currently only affecting NanoDrop value file):
- JSP file
extraction_registration.jsp
inresources/sampleproc/
updated in instruction text in the info section above the table for step 3, and in text for value import files. - Javascript file
extraction_registration.js
inresources/sampleproc/
updated:
a. FunctioninitializeStep3()
updated to create input fields for RNA concentration and DNA delta-Ct values, and to add new event handler functionsexreg.rnaConcOnChange(event)
andexreg.deltaCtOnChange(event)
to these fields, respectively. Input status set to be valid, even if no NanoDrop value file has been chosen. Also, the background for the DNA concentration value column is updated to that of the RNA concentration and DNA delta-Ct value columns, since they now share the same functionality.
b. New functionexreg.rnaConcOnChange(event)
added. It updates the stored JSON rna data for an item with the entered concentration value coupled to JSON key "ndConc
", and then calls functionexreg.updateDetailsTable()
. If no value has been entered,null
is stored.
c. Functionexreg.dnaConcOnChange(event)
updated to storenull
, if no value has been entered.
d. New functionexreg.deltaCtOnChange(event)
added. It updates the stored JSON dna data for an item with the entered delta-Ct value coupled to JSON key "deltaCt
", and then calls functionexreg.updateDetailsTable()
. If no value has been entered,null
is stored.
e. Functionexreg.updateDetailsTable()
updated to update values of input fields for RNA concentration, DNA contration, and DNA delta-Ct from stored JSON data for items, as well as update quantity values from concentration and volume values.
comment:36 by , 10 years ago
Functional specification update:
- MeLuDI should be updated with a new wizard "Lab tracking sheet/report copy" in the DNA/RNA extraction wizards section. The new wizard should contain three steps, that resemble those of the DNA/RNA registration/quantification wizard, but where very few inputs are needed:
1. Step 1 should contain a start plate selection menu, with all start plates, both unprocessed and processed, where the plate of interest may be selected.
2. Step 2 should retrieve and display data from the selected plate, and if the latter is processed, lot no.s for the first created DNA extract for a specimen connected to the plate. A menu should allow the user to select whether a tracking sheet copy or report copy should be created. If the plate is unprocessed, only "sheet" is available, while for a processed plate both "sheet" and "report" (default) are available.
3. Step 3 should display a table of the extract source items for the plate, including measurement values, if a tracking report copy has been selected. It should be possible to create a form copy in a new window/tab, by clicking a button.
Design update:
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetStartPlates
" to include extraction date in JSON response. The extraction date is set equal to the plate event date.
b. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetSourceItemListFromStartPlate
" to use annotation snapshot manager to retrieve some annotations, in order to increase performance. If new parameter "includeSpecimenExtracts
" is set totrue
, data for RNA and DNA extracts for a specimen will be retrieved, and included in the JSON repsonse. Private methodsvoid loadSpecimenInfo(DbControl dc, SpecimenTube sp)
,void loadRnaInfo(DbControl dc, Rna rna)
, andvoid loadDnaInfo(DbControl dc, Dna dna)
will be called to retrieve annotation data.
c. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated with new command "GetDna
" to find a DNA extract by name.
d. New private methodvoid loadSpecimenInfo(DbControl dc, SpecimenTube sp)
added. It loads annotations for the input specimen tube.
e. New private methodvoid loadRnaInfo(DbControl dc, Rna rna)
added. It loads annotations for the input RNA item.
f. Private methodvoid loadDnaInfo(DbControl dc, Dna dna)
updated by loading more annotations for the input DNA. - New JSP file
extraction_formcopy.jsp
inresources/sampleproc/
added. - New Javascript file
extraction_formcopy.js
inresources/sampleproc/
added. It relies on the new commands and updated functionality of existing commands in java servletExtractionServlet
to construct a selection menu in step 1 containing all start plates; in step 2 to retrieve data for the plate and, if processed, lot no.s from the first created DNA extract for a specimen connected to the plate; and in step 3 to retieve measurement data for DNA and RNA extracts connected to the plate. Many of the functions are updated versions of functions of the same name in Javascript fileextraction_registration.js
inresources/sampleproc/
. However, the new file lacks any registration functionality.
comment:37 by , 10 years ago
(In [3225]) Refs #759. MeLuDI updated with a new wizard "Lab tracking sheet/report copy" in the DNA/RNA extraction wizards section. The new wizard contains three steps, that resemble those of the DNA/RNA registration/quantification wizard, but where very few inputs are needed:
1. Step 1 contains a start plate selection menu, with all start plates, both unprocessed and processed, where the plate of interest may be selected.
2. Step 2 retrieves and displays data from the selected plate, and if the latter is processed, lot no.s for the first created DNA extract for a specimen connected to the plate. A menu allows the user to select whether a tracking sheet copy or report copy should be created. If the plate is unprocessed, only "sheet" is available, while for a processed plate both "sheet" and "report" (default) are available.
3. Step 3 displays a table of the extract source items for the plate, including measurement values, if a tracking report copy has been selected. A form copy may be created in a new window/tab by clicking a button.
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetStartPlates
" to include extraction date in JSON response. The extraction date is set equal to the plate event date.
b. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetSourceItemListFromStartPlate
" to use annotation snapshot manager to retrieve some annotations, in order to increase performance. If new parameter "includeSpecimenExtracts
" is set totrue
, data for RNA and DNA extracts for a specimen will be retrieved, and included in the JSON repsonse. Private methodsvoid loadSpecimenInfo(DbControl dc, SpecimenTube sp)
,void loadRnaInfo(DbControl dc, Rna rna)
, andvoid loadDnaInfo(DbControl dc, Dna dna)
will be called to retrieve annotation data.
c. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated with new command "GetDna
" to find a DNA extract by name.
d. New private methodvoid loadSpecimenInfo(DbControl dc, SpecimenTube sp)
added. It loads annotations for the input specimen tube.
e. New private methodvoid loadRnaInfo(DbControl dc, Rna rna)
added. It loads annotations for the input RNA item.
f. Private methodvoid loadDnaInfo(DbControl dc, Dna dna)
updated by loading more annotations for the input DNA. - JSP file
index.jsp
inresources/
updated with new entry "Lab tracking sheet/report copy
" in the DNA/RNA extraction wizards section. The new entry is linked to new JSP fileextraction_formcopy.jsp
inresources/sampleproc/
. - New JSP file
extraction_formcopy.jsp
inresources/sampleproc/
added. It is connected to new Javascript fileextraction_formcopy.js
inresources/sampleproc/
. - New Javascript file
extraction_formcopy.js
inresources/sampleproc/
added. It relies on the new commands and updated functionality of existing commands in java servletExtractionServlet
to construct a selection menu in step 1 containing all start plates; in step 2 to retrieve data for the plate and, if processed, lot no.s from the first created DNA extract for a specimen connected to the plate; and in step 3 to retieve measurement data for DNA and RNA extracts connected to the plate. Many of the functions are updated versions of functions of the same name in Javascript fileextraction_registration.js
inresources/sampleproc/
. However, the new file lacks any registration functionality.
comment:38 by , 9 years ago
Functional specification update:
- MeLuDI should be updated for qPCR sample id file generation and qPCR ΔCt value file import to use DNA extract names as sample id values, instead of specimen and input DNA names, as is currently used. The new name scheme has a number of advantages:
a. It is more natural, since the measurements are performed on DNA extracts.
b. Although not used at present, the qPCR instrument can be used for RNA quality measurements as well as for DNA, and the new naming convention makes it clear what is intended.
c. It is already used for NanoDrop sample id files, with RNA instead of DNA, and will therefore increase the consistency between the files, even if the table details differ.
Design update:
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
for command "DownloadQPcrSampleIdFile
" to add suffix ".d
" to the sample id name, if the item is a specimen. - Javascript file
extraction_registration.js
inresources/sampleproc/
updated:
a. FunctionparseNanoDropFile(data)
updated to call updated functionfindRnaOrDna(sampleId, lineNo, messageId)
instead offindRnaOrDnaNanoDrop(sampleId, lineNo, messageId)
to find a sample with a given sample id.
b. FunctionparseDnaInput(data)
updated to call updated functionfindRnaOrDna(sampleId, lineNo, messageId)
to find a sample with a given sample id. Also updated to refer to message id "qubitFile
" and quantity "qubitConc
", instead of "nanoDropFile
" and "ndConc
", respectively.
c. FunctionparseQPcrFile(data)
updated to call updated functionfindRnaOrDna(sampleId, lineNo, messageId)
to find a sample with a given sample id, and to not add suffix ".d
" to the sample id, when calling the latter function.
d. FunctionfindRnaOrDna(sampleId, lineNo, messageId)
replaced in functionality by old functionfindRnaOrDna(sampleId, lineNo, messageId)
, but retaining its previous name. The only extra update in functionality is that the original item name is used for input DNA, as well as for input RNA.
e. FunctiongenerateFakeNanoDropFile()
updated to use the item name for input RNA items.
f. FunctiongenerateFakeDnaInput()
updated to use the item name for input DNA items.
g. FunctiongenerateFakeQPcrFile()
updated to use the item name for input DNA items.
comment:39 by , 9 years ago
(In [3227]) Refs #759. MeLuDI updated for qPCR sample id file generation and qPCR ΔCt value file import to use DNA extract names as sample id values, instead of specimen and input DNA names, as is currently used. The new name scheme has a number of advantages:
a. It is more natural, since the measurements are performed on DNA extracts.
b. Although not used at present, the qPCR instrument can be used for RNA quality measurements as well as for DNA, and the new naming convention makes it clear what is intended.
c. It is already used for NanoDrop sample id files, with RNA instead of DNA, and will therefore increase the consistency between the files, even if the table details differ.
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
for command "DownloadQPcrSampleIdFile
" to add suffix ".d
" to the sample id name, if the item is a specimen. - Javascript file
extraction_registration.js
inresources/sampleproc/
updated:
a. FunctionparseNanoDropFile(data)
updated to call updated functionfindRnaOrDna(sampleId, lineNo, messageId)
instead offindRnaOrDnaNanoDrop(sampleId, lineNo, messageId)
to find a sample with a given sample id.
b. FunctionparseDnaInput(data)
updated to call updated functionfindRnaOrDna(sampleId, lineNo, messageId)
to find a sample with a given sample id. Also updated to refer to message id "qubitFile
" and quantity "qubitConc
", instead of "nanoDropFile
" and "ndConc
", respectively.
c. FunctionparseQPcrFile(data)
updated to call updated functionfindRnaOrDna(sampleId, lineNo, messageId)
to find a sample with a given sample id, and to not add suffix ".d
" to the sample id, when calling the latter function.
d. FunctionfindRnaOrDna(sampleId, lineNo, messageId)
replaced in functionality by old functionfindRnaOrDna(sampleId, lineNo, messageId)
, but retaining its previous name. The only extra update in functionality is that the original item name is used for input DNA, as well as for input RNA.
e. FunctiongenerateFakeNanoDropFile()
updated to use the item name for input RNA items.
f. FunctiongenerateFakeDnaInput()
updated to use the item name for input DNA items.
g. FunctiongenerateFakeQPcrFile()
updated to use the item name for input DNA items.
comment:40 by , 9 years ago
comment:41 by , 9 years ago
comment:42 by , 9 years ago
Functional specification update:
- MeLuDI should be updated in case registration by allowing default selections for mutation analysis options (check boxes, default = none selected) to be set depending on the value of project focus (cancer type):
Mutation analysis | Melanoma | Lung cancer | Colon cancer | GIST | Unknown |
KRAS | x | x | |||
NRAS | x | x | |||
BRAF | x | x | |||
EGFR | x | ||||
ALKEML4 | |||||
PDGFRA | x | ||||
KIT | x | x | |||
Other |
Design update:
- JSP file
specimentube.jsp
inresources/sampleproc/
updated in step 2 by placing the project focus (cancer type) selection menu directly above mutation analysis check box set. Info text for the latter updated by adding note that the default selections are set depending on project focus. - Javascript file
specimentube.js
inresources/sampleproc/
updated:
a. FunctioninitPage()
updated by adding event handler to project focus menu with callback functionprojectFocusOnChange()
.
b. New functionprojectFocusOnChange()
added. It calls new functionmutationAnalysisReset()
to reset all mutation analysis check boxes to unchecked, after which it retrieves the value of menuprojectFocus
, and sets the mutation analysis default selections depending on the value of the project focus.
c. New functionmutationAnalysisReset()
added. It resets all mutation analysis check boxes to unchecked. - JSP file
persinfo.jsp
inresources/personal/
updated in step 3 by placing the project focus (cancer type) selection menu directly above mutation analysis check box set. Info text for the latter updated by adding note that the default selections are set depending on project focus. - Javascript file
persinfo.js
inresources/personal/
updated:
a. FunctioninitPage()
updated by adding event handler to project focus menu with callback functionprojectFocusOnChange()
.
b. New functionprojectFocusOnChange()
added. It calls new functionmutationAnalysisReset()
to reset all mutation analysis check boxes to unchecked, after which it retrieves the value of menuprojectFocus
, and sets the mutation analysis default selections depending on the value of the project focus.
c. New functionmutationAnalysisReset()
added. It resets all mutation analysis check boxes to unchecked.
comment:43 by , 9 years ago
(In [3230]) Refs #759. MeLuDI updated for qPCR sample ID file generation:
- Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
for command "DownloadQPcrSampleIdFile
":
a. Bug fix: Code for addition of suffix ".d
" to the sample id name, if the item is a specimen, moved inside block checking that the item name differs fromnull
and an empty string.
b. Target name set to "UNKN
" for sample and QCT (Quality Control Template) items, and "NTC
" for NTC (Non Template Control) items.
comment:44 by , 9 years ago
Functional specification update:
- MeLuDI should be updated in wizard "Lab tracking sheet/report copy" in step 3 by adding buttons for NanoDrop and qPCR sample id file generation, in case a tracking sheet copy should be created. The sample id files should be created by the same code as used in the "Lab tracking protocol for Allprep isolation" wizard.
Design update:
- JSP file
extraction_formcopy.jsp
inresources/sampleproc/
updated in step 3 by addition of a table "sampleIdFilesSection
" with two buttons between the "details" and "navigation" sections, mimicking the layout of step 3 of the "Lab tracking protocol for Allprep isolation" wizard. - Javascript file
extraction_formcopy.js
inresources/sampleproc/
updated:
a, FunctioninitPage()
updated by addition of click handlers for the two sample id file buttons, with callback functionsdownloadSampleIdFile()
anddownloadQPcrSampleIdFile()
, respectively.
b. FunctioninitializeStep3()
updated to show the new buttons, if a tracking sheet copy should be created, else hide them.
c. New functiondownloadSampleIdFile()
added. It is a copy of the function with the same name in Javascript fileextraction_preparation.js
.
d. New functiondownloadQPcrSampleIdFile()
added. It is a copy of the function with the same name in Javascript fileextraction_preparation.js
.
comment:45 by , 9 years ago
(In [3231]) Refs #759. MeLuDI updated in wizard "Lab tracking sheet/report copy" in step 3 by adding buttons for NanoDrop and qPCR sample id file generation, in case a tracking sheet copy should be created. The sample id files are created by the same code as used in the "Lab tracking protocol for Allprep isolation" wizard.
- JSP file
extraction_formcopy.jsp
inresources/sampleproc/
updated in step 3 by addition of a table "sampleIdFilesSection
" with two buttons between the "details" and "navigation" sections, mimicking the layout of step 3 of the "Lab tracking protocol for Allprep isolation" wizard. - Javascript file
extraction_formcopy.js
inresources/sampleproc/
updated:
a, FunctioninitPage()
updated by addition of click handlers for the two sample id file buttons, with callback functionsdownloadSampleIdFile()
anddownloadQPcrSampleIdFile()
, respectively.
b. FunctioninitializeStep3()
updated to show the new buttons, if a tracking sheet copy should be created, else hide them.
c. New functiondownloadSampleIdFile()
added. It is a copy of the function with the same name in Javascript fileextraction_preparation.js
.
d. New functiondownloadQPcrSampleIdFile()
added. It is a copy of the function with the same name in Javascript fileextraction_preparation.js
.
comment:46 by , 9 years ago
(In [3232]) Refs #759. MeLuDI updated in case registration by allowing default selections for mutation analysis options (check boxes, default = none selected) to be set depending on the value of project focus (cancer type):
Mutation analysis | Melanoma | Lung cancer | Colon cancer | GIST | Unknown |
KRAS | x | x | |||
NRAS | x | x | |||
BRAF | x | x | |||
EGFR | x | ||||
ALKEML4 | |||||
PDGFRA | x | ||||
KIT | x | x | |||
Other |
- JSP file
specimentube.jsp
inresources/sampleproc/
updated in step 2 by placing the project focus (cancer type) selection menu directly above mutation analysis check box set. Info text for the latter updated by adding note that the default selections are set depending on project focus. - Javascript file
specimentube.js
inresources/sampleproc/
updated:
a. FunctioninitPage()
updated by adding event handler to project focus menu with callback functionprojectFocusOnChange()
.
b. New functionprojectFocusOnChange()
added. It calls new functionmutationAnalysisReset()
to reset all mutation analysis check boxes to unchecked, after which it retrieves the value of menuprojectFocus
, and sets the mutation analysis default selections depending on the value of the project focus.
c. New functionmutationAnalysisReset()
added. It resets all mutation analysis check boxes to unchecked. - JSP file
persinfo.jsp
inresources/personal/
updated in step 3 by placing the project focus (cancer type) selection menu directly above mutation analysis check box set. Info text for the latter updated by adding note that the default selections are set depending on project focus. - Javascript file
persinfo.js
inresources/personal/
updated:
a. FunctioninitPage()
updated by adding event handler to project focus menu with callback functionprojectFocusOnChange()
.
b. New functionprojectFocusOnChange()
added. It calls new functionmutationAnalysisReset()
to reset all mutation analysis check boxes to unchecked, after which it retrieves the value of menuprojectFocus
, and sets the mutation analysis default selections depending on the value of the project focus.
c. New functionmutationAnalysisReset()
added. It resets all mutation analysis check boxes to unchecked.
comment:47 by , 9 years ago
Design discussion:
- The connection between extract source items and a DNA start plate is currently maintained by a list of extract source item names being stored in an
AnnotationType.SOURCE_ITEM_NAMES
annotation of typeType.STRING
on the start plate item. This has turned out to be problematic, as the order of extract source items is of interest, and theAnnotationtype
public methodList<?> getAnnotationValues(DbControl dc, Annotatable item)
only guarantees that the same list items as originally saved are contained in the returned list, but not their order. BASE does currently not support saving a list in a way, that it can be retrieved with items in the original order, without using some work-around.
Design update suggestion:
- One of the easiest solutions is to store the list as a string with comma-separated values, which in the current case is natural, as the items in question are strings, that do not contain any comma characters. One pitfall is that annotations of type
Type.STRING
ate limited to 255 characters, which may impose an undesired limit on the number of items, that may be contained in the list. An extract source item normally contains 9 characters (7 in the case name + dot + specimen tube number or "r
" or "d
"), and the number of items on each start plate is <= 24, so the maximal list string size would be 9 * 24 + 23 separator commas = 239 characters. This is too close to the 255 limit, to feel comfortable, bearing in mind that future requirements may increase the size of the data, that needs to be stored. The list string should therefore be stored as a annotation of typeType.TEXT
, that allows considerably more data. In order to simplify storing and retrieval of the list values, methods for making the conversion to and from a comma-separated list string should be added in utility classes.
comment:48 by , 9 years ago
Design update regarding storage of the extract source item names connected to a start plate:
- Data access object class/file
Annotationtype.java
insrc/net/sf/basedb/meludi/dao/
updated:
a. New annotation typeSOURCE_ITEM_NAMES_LIST_STRING
of typeType.TEXT
added for bioplates.
b. New public methodsList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString)
andList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim)
added. They return the same list as existing methodList<?> getAnnotationValues(DbControl dc, Annotatable item)
if Boolean flagfromListString
isnull
orfalse
, otherwise the data is expected to be stored as a comma-separated list string, which is converted to a list of string values, with optional trimming of leading and trailing white space.
c. Public methodvoid setAnnotationValues(DbControl dc, Annotatable item, List<?> values)
updated if the annotation has multiplicity equal to 1, to store the list as a comma-separated list string. - Data access object class/file
MeludiItem.java
insrc/net/sf/basedb/meludi/dao/
updated:
a. New public methodsvoid loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString)
andvoid loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString, Boolean trim)
added. They load annotations for the given annotation type and store the values in the given JSON key. The functionality is identical to existing methodvoid loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter)
if Boolean flagfromListString
isnull
orfalse
, otherwise the data is expected to be stored as a comma-separated list string, which is converted to a list of string values, with optional trimming of leading and trailing white space. - Java servlet class/file
InstallServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
to include annotations of new text annotation typeAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
for bioplate items. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for commands "GetStartPlates
" and "GetUnprocessedStartPlates
" by calling methodloadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString, Boolean trim)
for a start plate to retrieveAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations as a string list, where Boolean flagsfromListString
andtrim
are set totrue
.
b. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetSourceItemListFromStartPlate
" to call newAnnotationtype
methodList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim)
for a start plate to retrieveAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations as a string list, where Boolean flagsfromListString
andtrim
are set totrue
.
c. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "RegisterStartPlate
" to callAnnotationtype
methodvoid setAnnotationValues(DbControl dc, Annotatable item, List<?> values)
forAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations to store an extract source item name list for a start plate. - Java servlet class/file
CaseSummaryServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube sp)
to call newAnnotationtype
methodList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim)
for a start plate to retrieveAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations as a string list, where Boolean flagsfromListString
andtrim
are set totrue
.
comment:49 by , 9 years ago
(In [3233]) Refs #759. MeLuDI updated regarding storage of the extract source item names connected to a start plate. They as now stored as a comma-separated list string in new start plate text annotation of type Annotationtype.SOURCE_ITEM_NAMES_LIST_STRING
:
- Data access object class/file
Annotationtype.java
insrc/net/sf/basedb/meludi/dao/
updated:
a. New annotation typeSOURCE_ITEM_NAMES_LIST_STRING
of typeType.TEXT
added for bioplates.
b. New public methodsList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString)
andList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim)
added. They return the same list as existing methodList<?> getAnnotationValues(DbControl dc, Annotatable item)
if Boolean flagfromListString
isnull
orfalse
, otherwise the data is expected to be stored as a comma-separated list string, which is converted to a list of string values, with optional trimming of leading and trailing white space.
c. Public methodvoid setAnnotationValues(DbControl dc, Annotatable item, List<?> values)
updated if the annotation has multiplicity equal to 1, to store the list as a comma-separated list string. - Data access object class/file
MeludiItem.java
insrc/net/sf/basedb/meludi/dao/
updated:
a. New public methodsvoid loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString)
andvoid loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString, Boolean trim)
added. They load annotations for the given annotation type and store the values in the given JSON key. The functionality is identical to existing methodvoid loadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter)
if Boolean flagfromListString
isnull
orfalse
, otherwise the data is expected to be stored as a comma-separated list string, which is converted to a list of string values, with optional trimming of leading and trailing white space. - Java servlet class/file
InstallServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
to include annotations of new text annotation typeAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
for bioplate items. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for commands "GetStartPlates
" and "GetUnprocessedStartPlates
" by calling methodloadAnnotations(DbControl dc, String jsonKey, Annotationtype annotationType, ValueConverter converter, Boolean fromListString, Boolean trim)
for a start plate to retrieveAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations as a string list, where Boolean flagsfromListString
andtrim
are set totrue
.
b. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetSourceItemListFromStartPlate
" to call newAnnotationtype
methodList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim)
for a start plate to retrieveAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations as a string list, where Boolean flagsfromListString
andtrim
are set totrue
.
c. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "RegisterStartPlate
" to callAnnotationtype
methodvoid setAnnotationValues(DbControl dc, Annotatable item, List<?> values)
forAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations to store an extract source item name list for a start plate. - Java servlet class/file
CaseSummaryServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube sp)
to call newAnnotationtype
methodList<?> getAnnotationValues(DbControl dc, Annotatable item, Boolean fromListString, Boolean trim)
for a start plate to retrieveAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotations as a string list, where Boolean flagsfromListString
andtrim
are set totrue
.
comment:50 by , 9 years ago
Functional specification update:
- MeLuDI should be updated in DNA/RNA extraction wizards by changing the DNA default volume from 45 to 25 µl.
Design update:
- Javascript files
extraction_preparation.js
,extraction_registration.js
, andextraction_formcopy.js
inresources/sampleproc/
updated by changing value of constantDEFAULT_DNA_VOLUME
from 45 to 25 µl.
comment:51 by , 9 years ago
(In [3234]) Refs #759. MeLuDI updated in DNA/RNA extraction wizards by changing the DNA default volume from 45 to 25 µl:
- Javascript files
extraction_preparation.js
,extraction_registration.js
, andextraction_formcopy.js
inresources/sampleproc/
updated by changing value of constantDEFAULT_DNA_VOLUME
from 45 to 25 µl.
comment:52 by , 9 years ago
Functional specification update:
- MeLuDI case summary should be updated in the RNA and DNa info, to show information on an optional start DNA plate coupled to the item, by the latter's name being included in the plate's
Annotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotation.
Design update:
- JSP file
case_summary.jsp
inresources/reports/
updated by including a new row of cells with optional start plate data for the RNA and DNA related to a case. - Javascript file
case_summary.js
inresources/reports/
updated in functioncs.caseInfoLoaded()
to add a column with links to optional start DNA plates for the RNA and DNA. The start plate info is retrieved from the RNA and DNA JSON objects using key "startPlate
". - Java servlet class/file
CaseSummaryServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetCaseInfo
" to call new private methodBioPlate fetchStartPlate(DbControl dc, String name)
for the name of input RNA and DNA items, and if the result is notnull
, add the plate info as JSONObject with key "startPlate
" to the JSONObject for the RNA or DNA.
b. Private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube st)
updated to call new private methodBioPlate fetchStartPlate(DbControl dc, String name)
for the name of theSpecimenTube
sample item.
c. New private methodBioPlate fetchStartPlate(DbControl dc, String name)
added. It finds the first start DNA reaction plate with the input item name contained in annotation listAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
. If none is found,null
will be returned.
d. New private methodboolean itemIsInputItem(String itemName)
added. It checks if an item is an input item by checking if its name only contains a single dot. Case names without dots are not considered as input items here.
comment:53 by , 9 years ago
(In [3237]) Refs #759. MeLuDI case summary updated in the RNA and DNa info, to show information on an optional start DNA plate coupled to the item, by the latter's name being included in the plate's Annotationtype.SOURCE_ITEM_NAMES_LIST_STRING
annotation.
- JSP file
case_summary.jsp
inresources/reports/
updated by including a new row of cells with optional start plate data for the RNA and DNA related to a case. - Javascript file
case_summary.js
inresources/reports/
updated in functioncs.caseInfoLoaded()
to add a column with links to optional start DNA plates for the RNA and DNA. The start plate info is retrieved from the RNA and DNA JSON objects using key "startPlate
". - Java servlet class/file
CaseSummaryServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methoddoGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "GetCaseInfo
" to call new private methodBioPlate fetchStartPlate(DbControl dc, String name)
for the name of input RNA and DNA items, and if the result is notnull
, add the plate info as JSONObject with key "startPlate
" to the JSONObject for the RNA or DNA.
b. Private methodBioPlate fetchStartPlate(DbControl dc, SpecimenTube st)
updated to call new private methodBioPlate fetchStartPlate(DbControl dc, String name)
for the name of theSpecimenTube
sample item.
c. New private methodBioPlate fetchStartPlate(DbControl dc, String name)
added. It finds the first start DNA reaction plate with the input item name contained in annotation listAnnotationtype.SOURCE_ITEM_NAMES_LIST_STRING
. If none is found,null
will be returned.
d. New private methodboolean itemIsInputItem(String itemName)
added. It checks if an item is an input item by checking if its name only contains a single dot. Case names without dots are not considered as input items here.
comment:54 by , 9 years ago
(In [3238]) Refs #759. MeLuDI updated in Lab tracking protocol for Allprep isolation wizard in step 3 by exchanging the NanoDrop plate position table header "Pos
" for "NanoDrop Plate Pos.
" in bold face, in order to clarify the column's content.
- Javascript files
extraction_preparation.js
andextraction_formcopy.js
inresources/sampleproc/
updated in methodinitializeStep3()
by exchanging the NanoDrop plate position table header "Pos
" for "NanoDrop Plate Pos.
" in bold face.
comment:55 by , 9 years ago
Functional specification update:
- It was decided to release MeLuDI in its current state as MeLuDI v.1.2.1.
comment:56 by , 9 years ago
(In [3239]) Refs #759. Updates due to version number change to "1.2.1
".
- Version number change to "
1.2.1
":
a. Outermost Ant XML build filebuild.xml
in/
updated.
b. Extensions XML configuration fileextensions.xml
inMETA-INF/
updated.
c. Javascript filemeludi-2.js
inresources/
updated.
d. Javascript filesamplereportgenerator.js
inresources/reports/
updated.
e. Java class/fileMeludi.java
insrc/net/sf/basedb/meludi/
updated.
comment:57 by , 9 years ago
comment:58 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Ticket closed as MeLuDI version 1.2.1 has been created.
Ticket accepted.