Opened 9 years ago

Closed 9 years ago

#787 closed task (fixed)

Add support for BloodDNA items

Reported by: Nicklas Nordborg Owned by: olle
Priority: major Milestone: Reggie v3.4
Component: net.sf.basedb.reggie Keywords:
Cc:

Description

BloodDNA items are child items (Extracts) to Blood samples. They will be registered manually using batch importers. The naming convention is the usual with a '.d' suffix added to the blood name. The batch importer will also register:

  • Plate and freezer position
  • Original quantity
  • NDConc annotation
  • And possibly some more information...

A BloodDNA item may also have several child items (aliquots) of the same type. They will have names suffixed with '.x1', '.x2', etc. Quantities used from the parent items will be tracked.

The Case summary should be updated with a new section for BloodDNA items. It should at least display the plate and freezer location, remaining quantity and description fields.

Step 1 in the Retraction wizard should be updated so that the BloodDNA items are displayed in the table of existing items. They should also be included in the protocol used by lab personnel when registering destruction of biomaterial in the freezers. It is not expected that the other steps require any updates.

Change History (15)

comment:1 by Nicklas Nordborg, 9 years ago

Status: newassigned

comment:2 by Nicklas Nordborg, 9 years ago

Summary: Add support BloodDNA itemsAdd support for BloodDNA items

comment:3 by Nicklas Nordborg, 9 years ago

(In [3355]) References #787: Add support for BloodDNA items

Create the BloodDNA (extract) subtype in the installation wizard. NDConc is so far the only associated annotation.

comment:4 by Nicklas Nordborg, 9 years ago

(In [3356]) References #787: Add support for BloodDNA items

Adding "Blood DNA" section to the "Case summary" report.

comment:5 by Nicklas Nordborg, 9 years ago

(In [3357]) References #787: Add support for BloodDNA items

Adding file that should have been included in [3356].

comment:6 by Nicklas Nordborg, 9 years ago

Owner: changed from Nicklas Nordborg to olle
Status: assignednew

comment:7 by olle, 9 years ago

Status: newassigned

Ticket accepted

comment:8 by olle, 9 years ago

Traceability note for Retraction wizard:

  • The retraction wizard was introduced in Ticket #526 (Retraction wizard), which covered step 1.
  • It was updated in Ticket #723 (Retraction wizard - Step 2: Follow up), which covered step 2.
  • Retraction wizard step 2 was updated in Ticket #769 (Retraction wizard - Additions to Step 2: Follow up).
  • Step 3 of the retraction wizard was introduced in Ticket #770 (Retraction wizard - Step 3: Destruction).
  • The retraction wizard servlet was cleaned up in Ticket #781 (Clean up code in retraction wizard)
Last edited 9 years ago by olle (previous) (diff)

comment:9 by olle, 9 years ago

Problem detected:

  • While testing out support for BloodDNA items, it was discovered that the first step of the retraction wizard did not work for blood samples without any case. This should be fixed before implementing BloodDNA support.

comment:10 by olle, 9 years ago

(In [3358]) Refs #787. Retraction wizard was updated in the first step to support blood samples without any case item:

  1. Javascript file retractionform.js in resources/personal/ updated in function caseInfoLoaded(response) to have correct header "Cases", when reporting that no case information has been registered.
  2. Java class/file RetractionServlet.java in src/net/sf/basedb/reggie/servlet/ updated in private method JSONObject fetchJsonCaseInfo(DbControl dc, String caseOrPersonalNumber, JSONObject json) to support blood samples without any case item.

comment:11 by olle, 9 years ago

(In [3359]) Refs #787. Retraction wizard was updated in registration part of the first step to support blood samples without any case item:

  1. Java class/file RetractionServlet.java in src/net/sf/basedb/reggie/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterRetraction" to obtain patient item from blood item, if no case items exist.

comment:12 by olle, 9 years ago

(In [3360]) Refs #787. Retraction wizard updated in the first step with support for BloodDNA items:

  1. Javascript file retraction_protocol.js in resources/personal/ updated in function initializeProtocol(response) to load information on BloodDNA items and add a table row for each in the created protocol, after the other items.
  2. Javascript file retractionform.js in resources/personal/ updated:
    a. Function caseInfoLoaded(response) updated to information on BloodDNA items and add a table row for each in the table.
    b. Function checkValueForOtherSampleItems(varName, selectedSamples) updated to obtain information on BloodDNA items and include them in the processing.
  3. Java class/file RetractionServlet.java in src/net/sf/basedb/reggie/servlet/ updated:
    a. Private method List<String> fetchOtherItemsTableRowList(JSONObject jsonCaseInfo) updated to add rows for BoodDNA items at the end of the "Other items" list.
    b. Private method JSONObject fetchJsonCaseInfo(DbControl dc, String caseOrPersonalNumber, JSONObject json) updated to include data for BloodDNA items.
    c. New private method void loadBloodDnaInfo(DbControl dc, BloodDna dna) added. It loads the same information for a BloodDNA item as method void loadDnaInfo(DbControl dc, Dna dna) loads for a standard DNA item.

comment:13 by olle, 9 years ago

(In [3361]) Refs #787. Retraction wizard updated in information retrieval code to support blood samples without any case item. Code updates for first part of the retraction wizard was refactored to allow it to be used also in the follow-up and destruction parts of the wizard:

  1. Java servlet class/file RetractionServlet.java in src/net/sf/basedb/reggie/servlet/ updated:
    a. Private method Patient fetchPatient(DbControl dc, String caseOrPersonalNumber) updated to find a patient item if the input string is a personal number, or a scanb-id for a case or blood-only item (the latter's name having suffix ".d" added to the scanb-id).
    b. Private method JSONObject fetchJsonCaseInfo(DbControl dc, String caseOrPersonalNumber, JSONObject json) updated by removing code for obtaining a pateint item from a case or blood item, that is no longer needed after the updated of method fetchPatient(...).
    c. Private method JSONObject fetchJsonCaseInfoBeforeDestruction(DbControl dc, String caseOrPersonalNumber, JSONObject json) updated to support blood samples without any case item. Code has also been re-written to have the same structure as used in method fetchJsonCaseInfo(...).
    d. Protected method doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterRetraction" by removing code for obtaining a pateint item from a case or blood item, that is no longer needed after the updated of method fetchPatient(...).

comment:14 by olle, 9 years ago

(In [3363]) Refs #787. Retraction wizard updated in the destruction part by adding an information section on blood samples. Blood samples without any case item will be replaced by a case copy with same SCAN-B ID:

  1. Javascript file retraction_destruct_form.js in resources/personal/ updated in function addRetractTable2(response) to add an information section on blood samples.
  2. Java servlet class/file RetractionServlet.java in src/net/sf/basedb/reggie/servlet/ updated:
    a. Private method JSONObject fetchJsonCaseInfoBeforeDestruction(DbControl dc, String caseOrPersonalNumber, JSONObject json) updated by including blood information in the returned JSON data.
    b. Protected method doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterDestruction" to replace blood samples without any case item by a case copy with same SCAN-B ID.

comment:15 by Nicklas Nordborg, 9 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.