Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#471 closed enhancement (fixed)

Add library preparation information to the 'Case summary' feature

Reported by: Nicklas Nordborg Owned by: olle
Priority: minor Milestone: Reggie v2.13
Component: net.sf.basedb.reggie Keywords:
Cc:

Description

Once #422 and #423 has been implemented there will be more information to show in the 'Case summary' page. Details need to be worked out.

Change History (24)

comment:1 by olle, 10 years ago

Owner: changed from Nicklas Nordborg to olle

comment:2 by olle, 10 years ago

Ticket accepted.

comment:3 by olle, 10 years ago

Status: newassigned

comment:4 by olle, 10 years ago

Design description for first version of library preparation information in 'Case summary':

  • Entries will be added for mRNA, cDNA, and Library entries.
  • For mRNA, the following data will be shown:
    a. Name.
    b. Registration date.
    c. Work plate (name + location + optional link to included PDF file).
    d. Used quantity.
  • For cDNA, the following data will be shown:
    a. Name.
    b. Registration date.
    c. Work plate (name + location).
  • For a Library, the following data will be shown:
    a. Name.
    b. Registration date.
    c. Work plate (name + location).
    d. Remaining quantity.
    e. Original quantity.
    f. Tag name.
    g. CA_Size.
    h. CA_Molarity.
    i. QubitConc.

comment:5 by olle, 10 years ago

Design implementation:

  • JSP script case_summary.jsp in reggie/resources/reports/ will be updated in function init() to retrieve information for the three new sections from the servlet JSON response, and the HTML section will be extended to display the new data after the RNA section.
  • Java servlet CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ will be updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to retrieve information from MRna, CDna, and Library data access objects, and add the data to the servlet JSON response. Three new private methods void loadMRnaInfo(DbControl dc, MRna mrna), void loadCDnaInfo(DbControl dc, CDna cdna), and void loadLibraryInfo(DbControl dc, Library lib), will set most of the data in the data access objects.
  • Java data access objects MRna.java, CDna.java, and Library.java in reggie/src/net/sf/basedb/reggie/dao/ will be updated with public static methods List<...> findByCaseName(DbControl dc, String name) to return a list of MRna, CDna, or Library objects, respectively. Public methods JSONObject loadBioPlateLocation() for the three data access objects will be updated to call public static method JSONObject getBioWellAsJSON(BioWell well) in class/file JsonUtil.java in reggie/src/net/sf/basedb/reggie/ to provide the plate information in JSON format. In addition, MRna.java will be updated with new public method JSONObject loadBioPlatePdf(DbControl dc) to load information about an optional PDF-file for the plate for the current mRNA.

comment:6 by olle, 10 years ago

(In [2050]) Refs #471. First version of library preparation information in 'Case Summary':

  1. JSP script case_summary.jsp in reggie/resources/reports/ updated in function init() to retrieve information for the three new sections from the servlet JSON response, and the HTML section will be extended to display the new data after the RNA section.
  2. Java servlet CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to retrieve information from MRna, CDna, and Library data access objects, and add the data to the servlet JSON response. Three new private methods void loadMRnaInfo(DbControl dc, MRna mrna), void loadCDnaInfo(DbControl dc, CDna cdna), and void loadLibraryInfo(DbControl dc, Library lib), will set most of the data in the data access objects.
  3. Java data access objects MRna.java, CDna.java, and Library.java in reggie/src/net/sf/basedb/reggie/dao/ updated with public static methods List<...> findByCaseName(DbControl dc, String name) to return a list of MRna, CDna, or Library objects, respectively. Public methods JSONObject loadBioPlateLocation() for the three data access objects updated to call public static method JSONObject getBioWellAsJSON(BioWell well) in class/file JsonUtil.java in reggie/src/net/sf/basedb/reggie/ to provide the plate information in JSON format. In addition, MRna.java is updated with new public method JSONObject loadBioPlatePdf(DbControl dc) to load information about an optional PDF-file for the plate for the current mRNA.

comment:7 by olle, 10 years ago

Milestone: Reggie v2.xReggie v2.13

Milestone changed to Reggie v2.13.

comment:8 by olle, 10 years ago

Design update:

  • Entries for mRNA, cDNA, and Library items will include the extraction date, inserted after work plate information. The extraction date is obtained as the date of the creation event of the real extract that represents the corresponding entry item. Since the latter information is already added to the JSONObject returned by java class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/, only JSP script case_summary.jsp in reggie/resources/reports/ needs to be updated.
Last edited 10 years ago by olle (previous) (diff)

comment:9 by olle, 10 years ago

(In [2051]) Refs #471. Library preparation information in 'Case Summary' updated to include extraction dates for mRNA, cDNA, and Library items, inserted after work plate information:

  1. JSP script case_summary.jsp in reggie/resources/reports/ updated in function init() and HTML section to display extraction dates for mRNA, cDNA, and Library items, inserted after work plate information.

comment:10 by olle, 10 years ago

Design note regarding "extraction date" for mRNA, cDNA, and Library items:

  • The interesting dates are those related to creation of the physical items in the laboratory, and these are not always the same dates the corresponding extract items in the database were created. Neither is the creation process always an "extraction". Until more information is available, the value and nomenclature described above, will be used.

comment:11 by olle, 10 years ago

Design update:

  • An entry for Pooled Library items should be added, with the following data:
    a. Name.
    b. Registration date.
    c. Extraction date (Note: Name and value may be changed in the future.)
    d. Remaining quantity.
    e. Original quantity.
    f. PoolMolarity.
    g. PoolConc.
  • As a temporary solution, the value for "extraction date" will be obtained as the date of the creation event of the real extract that represents the corresponding entry item.

Design implementation:

  • JSP script case_summary.jsp in reggie/resources/reports/ will be updated in function init() to retrieve information for the new section from the servlet JSON response, and the HTML section will be extended to display the new data after the Library section.
  • Java servlet CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ will be updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to retrieve information from PooledLibrary data access objects for the case, and add the data to the servlet JSON response. New private method void loadPooledLibraryInfo(DbControl dc, PooledLibrary lib), will set most of the data in the data access objects.
  • Java data access object PooledLibrary.java in reggie/src/net/sf/basedb/reggie/dao/ will be updated with public static method List<PooledLibrary> findByCaseName(DbControl dc, String name) to return a list of PooledLibrary objects. Since pooled libraries don't adhere to the same naming conventions as most other items in the case summary (where the item name consists of the case name with added suffix), first a search is made for library items for the case name, and then the library child items of type Subtype.POOLED_LIBRARY are returned.

comment:12 by olle, 10 years ago

(In [2052]) Refs #471. Library preparation information in 'Case Summary' updated to include entry for PooledLibrary items:

  1. JSP script case_summary.jsp in reggie/resources/reports/ updated in function init() to retrieve information for the new section from the servlet JSON response, and the HTML section has been extended to display the new data after the Library section.
  2. Java servlet CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to retrieve information from PooledLibrary data access objects for the case, and add the data to the servlet JSON response. New private method void loadPooledLibraryInfo(DbControl dc, PooledLibrary lib) will set most of the data in the data access objects.
  3. Java data access object PooledLibrary.java in reggie/src/net/sf/basedb/reggie/dao/ updated with new public static method List<PooledLibrary> findByCaseName(DbControl dc, String name) to return a list of PooledLibrary objects. Since pooled libraries don't adhere to the same naming conventions as most other items in the case summary (where the item name consists of the case name with added suffix), first a search is made for library items for the case name, and then the library child items of type Subtype.POOLED_LIBRARY are returned.
Last edited 10 years ago by olle (previous) (diff)

comment:13 by olle, 10 years ago

(In [2054]) Refs #471. Library preparation information in 'Case Summary' updated in Library section to refer to the BioPlate item as "Library plate" instead of "Work plate", in order to increase consistency with other wizards and protocols:

  1. JSP script case_summary.jsp in reggie/resources/reports/ updated in HTML Library section to refer to the BioPlate item as "Library plate" instead of "Work plate".

comment:14 by olle, 10 years ago

Design update regarding "extraction date" for mRNA, cDNA, Library, and PooledLibrary items:

  • The dates currently denoted as "Extraction date" for the different items, will be exchanged for the following dates:
Item Date name Definition
mRNA Cleanup date BioPlate annotation CleanupDate
cDNA Synthesis date BioPlate annotation SynthesisDate
Library Cleanup date BioPlate annotation CleanupDate
PooledLibrary Pool date ´Date of the creation event of the real extract that represents the pooled library (current definition)

comment:15 by olle, 10 years ago

Design update implementation:

  • In order to minimize the number of code changes, the new date values will be stored as annotation extractionDate for the different data access objects, since these annotation values are already included in the case summary. This only requires changes in private methods
    void loadMRnaInfo(DbControl dc, MRna mrna),
    void loadCDnaInfo(DbControl dc, CDna cdna), and
    void loadLibraryInfo(DbControl dc, Library lib)
    in class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/. JSP script case_summary.jsp in reggie/resources/reports/ then only needs to be updated in the header titles in the HTML section.

comment:16 by olle, 10 years ago

(In [2065]) Refs #471. Library preparation information in 'Case Summary' updated regarding "extraction date" for mRNA, cDNA, Library, and PooledLibrary items:

  • The dates currently denoted as "Extraction date" for the different items, are exchanged for the following dates:
Item Date name Definition
mRNA Cleanup date BioPlate annotation CleanupDate
cDNA Synthesis date BioPlate annotation SynthesisDate
Library Cleanup date BioPlate annotation CleanupDate
PooledLibrary Pool date ´Date of the creation event of the real extract that represents the pooled library (current definition)
  1. Class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ updated in private methods
    void loadMRnaInfo(DbControl dc, MRna mrna),
    void loadCDnaInfo(DbControl dc, CDna cdna), and
    void loadLibraryInfo(DbControl dc, Library lib)
  2. JSP script case_summary.jsp in reggie/resources/reports/ updated in the header titles in the HTML section.

comment:17 by olle, 10 years ago

Resolution: fixed
Status: assignedclosed

Ticket closed as the updates for first version of Library preparation information in 'Case Summary' have been added.

comment:18 by olle, 10 years ago

(In [2078]) Refs #471. Bug fixed that prevented information on missing pooled library data to be displayed properly in 'Case Summary':

  1. JSP script case_summary.jsp in reggie/resources/reports/ updated in function init() to use correct div tag name prefix pooledlib for information on missing pooled library data. Message also update to clarify that it concerns pooled library data.

comment:19 by olle, 10 years ago

Design update:

  • RNA data may have an Annotationtype.FLAG string annotation containing vital information on the extract. If such an annotation exists, a row named "Flag" should be inserted below the RNA name, with the name of the flag (the text in the annotation) followed by a flag icon.

Implementation:

  1. Class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ should be updated in private method void loadRnaInfo(DbControl dc, Rna rna) to add the flag annotation value to data access object Rna with JSON key "flag".
  2. JSP script case_summary.jsp in reggie/resources/reports/ should be updated:
    a. New dynamic column with id "rna.flag" added to HTML section. It belongs to class "dynamic-column", which ensures that when data are added with function addColumn(id, value), it will only be shown if value differs from null.
    b. Function init() should be updated in RNA section to call function addColumn(id, value) with id set to rna.flag and value to asFlagInfo(r.flag, 'flag.png'), if r.flag differs from null.
    c. New function asFlagInfo(message, icon) returns an HTML span tag with the message text followed by the icon image.

comment:20 by olle, 10 years ago

(In [2081]) Refs #471. Library preparation information in 'Case Summary' updated in RNA section by adding a row with flag information below the RNA name, if an Annotationtype.FLAG string annotation exists for the RNA extract:

  1. Class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ updated in private method void loadRnaInfo(DbControl dc, Rna rna) to add the flag annotation value to data access object Rna with JSON key "flag".
  2. JSP script case_summary.jsp in reggie/resources/reports/ updated:
    a. New dynamic column with id "rna.flag" added to HTML section. It belongs to class "dynamic-column", which ensures that when data are added with function addColumn(id, value), it will only be shown if value differs from null.
    b. Function init() updated in RNA section to call function addColumn(id, value) with id set to rna.flag and value to asFlagInfo(r.flag, 'flag.png'), if r.flag differs from null.
    c. New function asFlagInfo(message, icon) returns an HTML span tag with the message text followed by the icon image.

comment:21 by olle, 10 years ago

Design update:

  • If mRNA, cDNA, or Library plate Annotationtype.PLATE_PROCESS_RESULT string annotation differs from "Successful", a row named "Plate result" should be inserted below the plate name, with the annotation text followed by an error icon.

Implementation:

  1. Class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ should be updated to store the result values as annotation result for the different data access objects. This requires changes in private methods
    void loadMRnaInfo(DbControl dc, MRna mrna),
    void loadCDnaInfo(DbControl dc, CDna cdna), and
    void loadLibraryInfo(DbControl dc, Library lib).
  2. JSP script case_summary.jsp in reggie/resources/reports/ should be updated:
    a. New dynamic columns with id values "mrna.result", "cdna.result", and "lib.result" added to HTML section. They belong to class "dynamic-column", which ensures that when data are added with function addColumn(id, value), it will only be shown if value differs from null.
    b. Function init() should be updated in mRNA, cDNA, and Library sections to call function addColumn(id, value) with id set to corresponding "*.result" string (e.g. "mrna.result" for mRNA) and value to asFailInfo(r.flag, 'error.png'), if r.flag differs from null and "Successful".
    c. New function asFailInfo(message, icon) returns an HTML span tag with the message text followed by the icon image.

Note: JSP script case_summary.jsp function asFailInfo(message, icon) is identical in functionality to function asFlagInfo(message, icon), but differs in the class of the returned HTML span tag, which allows the messages to be configured differently.

Version 0, edited 10 years ago by olle (next)

comment:22 by olle, 10 years ago

(In [2083]) Refs #471. Library preparation information in 'Case Summary' updated in mRNA, cDNA, and Library sections by adding a "Plate result" row with result text and error icon below the plate name, if plate Annotationtype.PLATE_PROCESS_RESULT string annotation differs from "Successful":

  1. Class/file CaseSummaryServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ updated to store the result values as annotation result for the different data access objects. Updates of private methods
    void loadMRnaInfo(DbControl dc, MRna mrna),
    void loadCDnaInfo(DbControl dc, CDna cdna), and
    void loadLibraryInfo(DbControl dc, Library lib).
  2. JSP script case_summary.jsp in reggie/resources/reports/ updated:
    a. New dynamic columns with id values "mrna.result", "cdna.result", and "lib.result" added to HTML section. They belong to class "dynamic-column", which ensures that when data are added with function addColumn(id, value), it will only be shown if value differs from null.
    b. Function init() updated in mRNA, cDNA, and Library sections to call function addColumn(id, value) with id set to corresponding "*.result" string (e.g. "mrna.result" for mRNA) and value to asFailInfo(r.result, 'error.png'), if r.result differs from null and "Successful".
    c. New function asFailInfo(message, icon) added. It returns an HTML span tag with the message text followed by the icon image.

Note: JSP script case_summary.jsp function asFailInfo(message, icon) is identical in functionality to function asFlagInfo(message, icon), but differs in the class of the returned HTML span tag, which allows the messages to be configured differently.

comment:23 by Nicklas Nordborg, 10 years ago

(In [2101]) References #471: Add library preparation information to the 'Case summary' feature

Added comment fields to mRNA, cDNA, library and pooled library. Changed name of date-related properties to reflect the actual date used.

comment:24 by Nicklas Nordborg, 10 years ago

(In [2103]) References #471: Add library preparation information to the 'Case summary' feature

Fixes issue with items having no bioplate location. Eg. *.dil items never have a location.

Note: See TracTickets for help on using tickets.