Opened 9 years ago

Closed 9 years ago

Last modified 6 years ago

#690 closed task (fixed)

MeLuDi - Registration wizard for melanoma-lung cancer projects

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

Description

A package of registration wizards for melanoma-lung cancer projects should be developed, in analogy with the package "Reggie" for the SCAN-B breast cancer project. It is named "MeLuDi" after "melanoma/lung cancer diagnostics".

Change History (35)

comment:1 by olle, 9 years ago

Status: newassigned

Ticket accepted.

comment:2 by olle, 9 years ago

Background and design choices:

  • BASE plug-in package Reggie was developed to simplify registration in BASE of data related to the SCAN-B breast cancer project. Reggie therefore naturally includes data specific to breast cancer, e.g. laterality, and to the set-up of the SCAN-B data management, e.g. use of case numbers, where the first two digits indicate the hospital site delivering a sample. After years of development, Reggie now (late 2014) covers registration of the full pipeline of sample preparation, gene sequence and expression analysis, and report creation. Several wizards go far beyond passively registering input data, and suggest storing positions for samples and extracts, as well as optimal concentrations when diluting the latter.
  • The new BASE plug-in registration package MeLuDi for melanoma/lung cancer projects, will be based on Reggie, where possible, but will be a stand-alone package. The advantages of using Reggie as model are numerous:

    a. Faster development. Many operations are fully or nearly identical for the two projects, and using the Reggie code base will reduce development time.
    b. More stable code. Reggie has already been through several cycles of development iterations, where found bugs have been fixed, and new code has been written with previous experiences in mind.
    c. More streamlined code. The development iterations have also led to more streamlined code design.
    d. A consistent user interface. Having a consistent user interface is an advantage in itself. Basing MeLuDi on Reggie will have a two-fold advantage, since lab personnel used to Reggie, will need less time to adapt to MeLuDi.

    Using Reggie code as inspiration, will hopefully transfer a lot of the benefits listed above to MeLuDi. Unfortunately, the differences in lab procedure are too big to allow the latter as being developed as a branch of the Reggie code. The source code will therefore be entered in the subversion source code revision system as an independent package.

Differences between lab procedures and data management in Reggie and MeLuDi (list not complete):

Item Reggie MeLuDi
Case names 7 figures + optional 1-character suffix.
First 2 figures indicate hospital site for the sample
"ML" + 5 figures
Sample types Specimen, NoSpecimen, Blood, Follow-up blood Primary, MetastasisDistant, DNA, RNA
Normal sample distribution Tissue specimen FFPE (Formalin-Fixed, Paraffin-Embedded) tissue
Site Used (indicated by first 2 figures in case name) Used, but may be unknown. Stored as annotation.
Consent Used Not used (patients may have been asked for consent, but this is not tracked in this database)
Laterality Used Not used
RNALaterDateTime Used Not used
PL-number Not used Number similar to PAD (Patho-Anatomical Diagnosis) number, written on label on referral form, and always starting with letters "PL".
Mutation analysis Not used Used. Selection of options, initially KRAS/NRAS (exon 2-4), BRAF (codon 600), EGFR (exon 18-21).
Project focus Not used, as main use is for SCAN-B breast cancer project. Melanoma or lung cancer, but may also be unknown. Stored as annotation.
Histology-related items Used Not used
Lysates Used Not used
FlowThrough Used Not used
Last edited 9 years ago by olle (previous) (diff)

comment:3 by olle, 9 years ago

Design choices: Avoiding confusion between Reggie and MeLuDi

As described above, using the Reggie code as inspiration for MeLuDi, has a lot of benefits. However, a drawback is that similarity in the interfaces, may lead to confusion as to what project some items or reports belong to. In order to lessen this risk, names of key items have deliberately been chosen different, and the program name has been added to reports (Reggie already includes the program name on display pages):

Item Reggie MeLuDi
Case names 7 figures + optional 1-character suffix, where first 2 figures indicate hospital site for the sample, e.g. "1100027". "ML" + 5 figures, e.g. "ML00027".
Patient name (anonymized id) "PAT" + 6 figures, e.g. "PAT000027". "MLP" + 6 figures, e.g. "MLP000027".
Report headers No explicit reference to Reggie. Extra top header line showing program name and version.
Storage names Prefix defining storage type + 3 figures (for storage types below). Prefixes: "Sp", "DNA", "RNA". Examples: "Sp001", "DNA001", "RNA001". Fixed prefix "ML_" + 4 figures + suffix defining storage type. Suffices: "_Sp", "dna", "rna". Examples: "ML_0001_Sp", "ML_0001_dna", "ML_0001_rna".
Version 2, edited 9 years ago by olle (previous) (next) (diff)

comment:4 by olle, 9 years ago

Design choices update: Step-wise development

  • In order to allow entry of data into the database as soon as possible, it was decided to make a working version available for installation on a server, as soon as some key steps had been included.
  • The first version of MeLuDi will be based on Reggie v.2.17.
  • Development of MeLuDi will be performed with possible inclusion of future Reggie updates in mind, but there is no guarantee that the latter will be included in MeLuDi.
Last edited 9 years ago by olle (previous) (diff)

comment:5 by olle, 9 years ago

Functional description of first version of MeLuDi:

The first version (MeluDi 1.0-a01) will include the following wizards/functionality:

  1. Installation wizard.
    a. Check that annotation types and other items used by MeLuDi exist in BASE.
    b. Create missing items.
  2. Case registration.
    a. Register new cases without patient info.
  3. Pathology referral form registration.
    a. Register new cases and patients.
    b. Update existing cases with patient info.
  4. Case summary.
    a. Gives a summary of item data related to a case. Patient data for the case can also be inspected by users having the "Curator" role.
  5. Sample source report.
    a. Sample count report.
    b. Patient count report.
    c. Overview report.
    d. Missing sample data report.

All wizards have counterparts in Reggie, but not all input fields are equal:

  1. The MeLuDi installation wizard is basically just a modified version adapted to variables relevant here.
  2. Case registration takes the following input:
    a. Case name.
    b. Number of tubes.
    c. Arrival date.
    d. Sampling date.
    e. Mutation analysis.
    f. Site.
    g. Sample type.
    h. Project focus.
    i. Other path note.
    Input for each specimen tube:
    j. Storage box, row, column. Values are suggested by the program. Note! Not used for the first specimen, since all amount is expected to be used for analysis.
    k. Operator delivery comment.
  3. Personal information registration takes the following input:
    a. Personal number.
    b. Family name.
    c. All first names.
    d. PL-number.
    e. PAD/CL (Patho-Anatomical Diagnosis or cytology number).
  4. Case summary has been adapted to variables used in MeLuDi.
  5. Sample source reports are simplified and more or less adapted versions of Reggie counterparts:
    a. Sample count report: Number of specimens per time interval from the various sites for a chosen time period. Has a project focus filter with value "None", "Melanoma", "Lung cancer", and "unknown".
    b. Patient count report shows the number of patients per time interval from the various sites for a chosen time period.
    c. Overview report contains two tables showing data for each site for a chosen time period; one shows number of patients and specimens and the other number of patients having 1, 2, or more specimens. Has a project focus filter with value "None", "Melanoma", "Lung cancer", and "unknown".
    d. Missing sample data report shows number of specimens for each site missing patient, patient name, PAD reference, or sampling date. Has a project focus filter with value "None", "Melanoma", "Lung cancer", and "unknown".

Input options via check boxes/menus:

Input name Input type Options Default
Mutation analysis Check boxes KRAS_NRAS, BRAF, EGFR -
Site Menu unknown, Helsingborg, Kristianstad, Linköping, Lund, Malmö unknown
Sample type Menu unknown, Primary tumour, Metastasis, DNA, RNA unknown
Project focus Menu unknown, Melanoma, Lung cancer unknown
Last edited 9 years ago by olle (previous) (diff)

comment:6 by olle, 9 years ago

Design description (initial) of MeLuDi v.1.0-a01:

MeLuDi v.1.0-a01 is based on a subset of Reggie 2.17.

Naming conventions:

Type of item Reggie MeLuDi
Name of variable or file reggie meludi
Name of variable or file Reggie Meludi
Name shown on display/printed media Reggie MeLuDi

The following files are either the same as in Reggie, or only slightly modified, e.g. exchanging "reggie" for "meludi", and contain the basic framework for the package:

LICENSE
README
RELEASE
config/meludi-extended-properties.xml
config/meludi-ogs-hosts.xml
config/meludi-raw-data-types.xml
config/readme.txt
META-INF/MANIFEST.MF
META-INF/plugin-configurations.xml
META-INF/lib/sshj-0.9.0.jar
META-INF/lib/sshj-license.txt
lib/compile/*.jar
resources/admin/install.js
resources/admin/install.jsp
resources/css/filters.svg
resources/css/plate.css
resources/css/printable.css
resources/images/*
resources/keep_session_alive.js
resources/keep_session_alive.jsp
resources/libprep/plate.js
resources/print.js
resources/print_template.jsp
src/net/sf/basedb/meludi/JsonUtil.java
src/net/sf/basedb/meludi/LockUtil.java
src/net/sf/basedb/meludi/ReservedItems.java
src/net/sf/basedb/meludi/converter/*.java
src/net/sf/basedb/meludi/dao/Arraydesign.java
src/net/sf/basedb/meludi/dao/BiomaterialList.java
src/net/sf/basedb/meludi/dao/BioplateEventtype.java
src/net/sf/basedb/meludi/dao/BioplateType.java
src/net/sf/basedb/meludi/dao/Datafiletype.java
src/net/sf/basedb/meludi/dao/Fileserver.java
src/net/sf/basedb/meludi/dao/Geometry.java
src/net/sf/basedb/meludi/dao/Mimetype.java
src/net/sf/basedb/meludi/dao/Patient.java
src/net/sf/basedb/meludi/dao/Rawbioassay.java
src/net/sf/basedb/meludi/dao/ReactionPlate.java
src/net/sf/basedb/meludi/dao/StoragePlate.java
src/net/sf/basedb/meludi/plugins/CsvEncoderDecoder.java
src/net/sf/basedb/meludi/plugins/PluginParameters.java
src/net/sf/basedb/meludi/query/LowerExpression.java
src/net/sf/basedb/meludi/servlet/ProtocolServlet.java
src/net/sf/basedb/meludi/servlet/ReportTableUtil.java
src/net/sf/basedb/meludi/servlet/SessionServlet.java
src/net/sf/basedb/meludi/servlet/SubtypeServlet.java
src/net/sf/basedb/meludi/ssh/*.java

The following files contain significant changes relative to Reggie (and in some cases name changes), in order to adapt to MeLuDi specifications:

build.xml
META-INF/extensions.xml
META-INF/servlets.xml
resources/meludi-2.js
resources/css/meludi-2.css
resources/images/musical_note.png
resources/images/floating-musical-notes.gif
src/net/sf/basedb/meludi/Meludi.java
src/net/sf/basedb/meludi/Site.java
src/net/sf/basedb/meludi/dao/Annotationtype.java
src/net/sf/basedb/meludi/dao/Case.java
src/net/sf/basedb/meludi/dao/MeludiItem.java
src/net/sf/basedb/meludi/dao/MeludiRole.java
src/net/sf/basedb/meludi/dao/Subtype.java
src/net/sf/basedb/meludi/servlet/InstallServlet.java

Specific adaptations for MeLuDi:

Main page:

resources/index.js
resources/index.jsp

Case registration:

resources/sampleproc/specimentube.js
resources/sampleproc/specimentube.jsp
src/net/sf/basedb/meludi/dao/SpecimenTube.java
src/net/sf/basedb/meludi/servlet/SpecimenTubeServlet.java

Patient registration for new or existing case:

resources/personal/persinfo.js
resources/personal/persinfo.jsp
src/net/sf/basedb/meludi/servlet/PersonalRegistrationServlet.java

Case summary:

resources/css/case_summary.css
resources/reports/case-summary.js
resources/reports/case_summary.jsp
src/net/sf/basedb/meludi/servlet/CaseSummaryServlet.java

Making case summary accessible via icon link in column in BASE sample lists, or in tool bar in sample property tabs:

resources/reports/case_summary_hook.jsp
resources/scripts/case-summary.js
src/net/sf/basedb/meludi/extensions/CaseSummaryButtonFactory.java
src/net/sf/basedb/meludi/extensions/CaseSummarySectionFactory.java
src/net/sf/basedb/meludi/extensions/MeludiListColumnsFactory.java

Sample source reports:

resources/css/report.css
resources/reports/samplereportgenerator.js
resources/reports/samplereportgenerator.jsp
src/net/sf/basedb/meludi/servlet/SampleReportServlet.java
Last edited 6 years ago by olle (previous) (diff)

comment:7 by olle, 9 years ago

(In [2933]) Refs #690. Initial check-in of source code for MeLuDi BASE extension. It is a package of registration wizards for melanoma-lung cancer projects ("MeLuDi" after "melanoma/lung cancer diagnostics"). The code is based on the Reggie code developed for registering data for the SCAN-B breast cancer project.

This initial revision, MeLuDi 1.0-a01, allows registration of case and patient data, either together, or by first registering case data, and then updating it with patient info. A case summary utility and a number of simple sample source report generators are also included.

comment:8 by olle, 9 years ago

(In [2934]) Refs #690. File json-simple-1.1.1.jar in lib/compile/ removed, since Reggie release 2.17 only uses json_simple-1.1.jar (note the underscore "_" in the filename, instead of hyphen "-").

comment:9 by olle, 9 years ago

(In [2935]) Refs #690. File meludi.jar removed from source code control, since it belongs to files created from the source code.

comment:10 by olle, 9 years ago

(In [2936]) Refs #690. File LICENSE updated to refer to MeLuDi instead of Reggie.

comment:11 by olle, 9 years ago

(In [2937]) Refs #690. Files README and RELEASE updated to refer to meludi and MeLuDi instead of reggie and Reggie, respectively.

comment:12 by olle, 9 years ago

(In [2938]) Refs #690. Javascript file case-summary.js in resources/scripts/ updated to refer to meludi instead of reggie in links.

comment:13 by olle, 9 years ago

(In [2939]) Refs #690. CSS files case_summary.css and printable.css in resources/css/ updated to refer to meludi instead of reggie.

comment:14 by olle, 9 years ago

(In [2944]) Refs #690. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated:

  1. Installation of Reggie components without correspondence in MeLuDi removed.
  2. Installation of Reggie components without current correspondence in MeLuDi, but possible future use, has been commented out.
  3. References to reggie changed to meludi.

comment:15 by olle, 9 years ago

(In [2945]) Refs #690. Java classes/files updated to allow a "MeLuDi" column to be added to BASE lists of samples, containing a link to the case summary of the case for the item:

  1. Meludi.java in src/net/sf/basedb/meludi/.
  2. CaseSummaryButtonFactory.java, CaseSummarySectionFactory.java, and MeludiListColumnsFactory.java in src/net/sf/basedb/meludi/extensions/.
  3. CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/.

comment:16 by olle, 9 years ago

(In [2946]) Refs #690. Java servlet ExportServlet removed, since it is not used in current version:

  1. Servlet configuration file servlets.xml in META-INF/ updated by commenting out entry for ExportServlet.
  2. Java servlet class/file ExportServlet.java in src/net/sf/basedb/meludi/servlet/ removed from source control.

comment:17 by olle, 9 years ago

(In [2947]) Refs #690. SVN properties svn:ignore updated/created for two directories:

  1. trunk/ - Property svn:ignore updated (originally contained build directory) by including:
    a. meludi-*.tar.gz
    b. meludi.jar
    c. dist
    d. build.properties
    e. .settings
  1. trunk/lib/compile/ - Property svn:ignore created with content:
    a. base-*.jar

comment:18 by olle, 9 years ago

(In [2948]) Refs #690. Currently unused files and directories removed, forcing updates of .classpath and META-INF/MANIFEST.MF:

Removed files/directories:

  1. META-INF/lib/*
  2. config/*
  3. Files in lib/compile/:
    a. axiom-impl-1.2.13.jar
    b. base-install-3.3.1.jar
    c. base-jobagent-3.3.1.jar
    d. base-xjsp-compiler-3.3.1.jar
    e. commons-httpclient-3.1.jar
    f. jaxen-1.1.1.jar
    g. jdom-1.1.3.jar

comment:19 by olle, 9 years ago

(In [2949]) Refs #690. Ant build file build.xml updated to not include removed file set META-INF/lib/* in class path.

comment:20 by olle, 9 years ago

(In [2950]) Refs #690. Currently unused files and directories removed (file package only used in secondary analysis, which is currently not included in MeLuDi):

  1. src/net/sf/basedb/meludi/ssh/*

comment:21 by olle, 9 years ago

(In [2951]) Refs #690. Text file README updated to describe MeLuDi v.1.0-a01.

comment:22 by olle, 9 years ago

(In [2962]) Refs #690. Two new sites, "Karlskrona" and "Växjö" added, both belonging to RCC-syd:

  1. Java class/file Site.java in src/net/sf/basedb/meludi/ updated by adding entries for "Karlskrona" and "Växjö".
  2. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) by adding the new site entries "Karlskrona" and "Växjö" as allowed values for Annotationtype.SITE.
  3. JSP file persinfo.jsp in resources/personal/ updated by adding the new site entries "Karlskrona" and "Växjö" to site select options.
  4. JSP file specimentube.jsp in resources/sampleproc/ updated by adding the new site entries "Karlskrona" and "Växjö" to site select options.

comment:23 by olle, 9 years ago

Functional specification update:

  • The case registration section should be extended with an initial part for generating a label file for a label printer.

The following properties are expected for the label generation:

  1. The label format should be for the same type of label printer as used in Reggie:
    i. The label file is a text file named "Tube_labels.csv".
    ii. Each line except the last is ended with a new-line character "\n".
    iii. The first line is "LABEL".
    iv. Each line after the first contains a single name of a sample or extract.
  2. However, the content for the labels in MeLuDi differ from Reggie:
    v. The lines for samples (here, cases and specimens) comes before the lines for extracts (here, RNA and DNA).
    vi. In the sample section, the first line is the case name, followed by one line for each specimen for the case.
    vii. In the extract section, for each specimen two lines are output, one for RNA, and one for DNA.

The name format is the same as used in MeLuDi:

Quantity Name format
Case "ML" + 5 digits, starting with "00001 (i.e. there is no "00000")
Specimen Case name for specimen + "." + number, starting with "1"
RNA Specimen name + ".r"
DNA Specimen name + ".d"

The label generation module should have the following properties:

  1. Input data:
Quantity Variable type Input type Input check Default value
Number of cases Integer > 0 Input field Integer > 0 1
Max number of tubes/case Integer in range [1,9] Select menu with options 1-9 - (select menu ensures correct value type/range) 2
Start case name "ML" + 5 digits Input field "ML" + 5 digits Next unused case name

When finding the next unused case name, it is assumed that existing case names have consecutive number parts starting from "00001", i.e. counting the number of stored cases allows the next unused case name to be created by incrementing that number.

  1. The label generation module should have two buttons:
    a. "Preview" button. Clicking the button displays the generated label file contents.
    b. "Download" button. Clicking the button opens a file download dialog to download the generated label file.

    The standard "Cancel" and "Restart" buttons are not needed, since the wizard only contains a single step, and no registration is performed.
Last edited 9 years ago by olle (previous) (diff)

comment:24 by olle, 9 years ago

Design update:

  • The case registration section should be extended with an initial part for generating a label file for a label printer.
  1. The home page is updated via JSP file index.jsp in resources/:
    a. The link to the specimen tube registration wizard is moved from the header "Case registration", which now becomes a pure text header, to the sub-section "Register new cases without patient info".
    b. A new link "Create label file for a number of new cases" is added to the case registration section, above the specimen tube registration link. The link is coupled to new JSP page labelgeneration.jsp in resources/sampleproc/.
  2. New JSP file labelgeneration.jsp in resources/sampleproc/ added. It is coupled to new Javascript file labelgeneration.js, also in resources/sampleproc/.
  3. New Javascript file labelgeneration.js in resources/sampleproc/ added. It is coupled to new JSP file labelgeneration.jsp, also in resources/sampleproc/. It sends Ajax requests to new Java servlet LabelGenerationServlet.
  4. New Java servlet class/file LabelGenerationServlet.java in src/net/sf/basedb/meludi/servlet/. It accepts Ajax requests with commands "CountCases" and "GetLabelFile".
  5. XML servlet configuration file servlets.xml in META-INF/ updated by adding entry for new servlet LabelGenerationServlet.

comment:25 by olle, 9 years ago

(In [2964]) Refs #690. The case registration section is updated with an initial part for generating a label file for a label printer:

  1. The home page is updated via JSP file index.jsp in resources/:
    a. The link to the specimen tube registration wizard is moved from the header "Case registration", which now becomes a pure text header, to the sub-section "Register new cases without patient info".
    b. A new link "Create label file for a number of new cases" is added to the case registration section, above the specimen tube registration link. The link is coupled to new JSP page labelgeneration.jsp in resources/sampleproc/.
  2. New JSP file labelgeneration.jsp in resources/sampleproc/ added. It is coupled to new Javascript file labelgeneration.js, also in resources/sampleproc/.
  3. New Javascript file labelgeneration.js in resources/sampleproc/ added. It is coupled to new JSP file labelgeneration.jsp, also in resources/sampleproc/. It sends Ajax requests to new Java servlet LabelGenerationServlet.
  4. New Java servlet class/file LabelGenerationServlet.java in src/net/sf/basedb/meludi/servlet/. It accepts Ajax requests with commands "CountCases" and "GetLabelFile".
  5. XML servlet configuration file servlets.xml in META-INF/ updated by adding entry for new servlet LabelGenerationServlet.

comment:26 by olle, 9 years ago

(In [2965]) Refs #690. Javascript file persinfo.js in resources/personal/ updated to give correct information for an invalid case name:

  1. Function caseNameOnChange() updated to give correct information for an invalid case name, and references in comments to suffix used for biopsy type are removed.

comment:27 by olle, 9 years ago

Design update:

  • Since no biopsy type annotation is currently used in MeLuDi, references to biopsy type should be removed from the code.
  1. Java class/file Site.java in src/net/sf/basedb/meludi/ updated by removal of private instance variable boolean useCaseSuffix, and its accessor method.
  2. Java class/file SpecimenTube.java in src/net/sf/basedb/meludi/dao/ updated by removal of argument boolean useBiopsyTypeAnnotation from public static methods List<SpecimenTube> findByCase(DbConrol dc, Case theCase, String originalCaseName, boolean useBiopsyTypeAnnotation) and List<SpecimenTube> findByCaseName(DbConrol dc, String name, boolean useBiopsyTypeAnnotation), as well as removing public static method void addBiopsyTypeFilter(DbControl dc, ItemQuery<Sample> query, String suffix).
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) when calling SpecimenTube.findByCaseName(...).
  4. Java servlet class/file PersonalRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) when calling SpecimenTube.findByCase(...) and SpecimenTube.findByCaseName(...).
  5. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) when calling SpecimenTube.findByCaseName(...).

comment:28 by olle, 9 years ago

(In [2966]) Refs #690. Since no biopsy type annotation is currently used in MeLuDi, references to biopsy type are removed from the code:

  1. Java class/file Site.java in src/net/sf/basedb/meludi/ updated by removal of private instance variable boolean useCaseSuffix, and its accessor method.
  2. Java class/file SpecimenTube.java in src/net/sf/basedb/meludi/dao/ updated by removal of argument boolean useBiopsyTypeAnnotation from public static methods List<SpecimenTube> findByCase(DbConrol dc, Case theCase, String originalCaseName, boolean useBiopsyTypeAnnotation) and List<SpecimenTube> findByCaseName(DbConrol dc, String name, boolean useBiopsyTypeAnnotation), as well as removing public static method void addBiopsyTypeFilter(DbControl dc, ItemQuery<Sample> query, String suffix).
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) when calling SpecimenTube.findByCaseName(...).
  4. Java servlet class/file PersonalRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) when calling SpecimenTube.findByCase(...) and SpecimenTube.findByCaseName(...).
  5. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) when calling SpecimenTube.findByCaseName(...).

comment:29 by olle, 9 years ago

(In [2987]) Refs #690. Plug-in configuration XML file plugin-configurations.xml in META-INF/ updated by removing all plug-in contents, since the latter is not needed in the first version of MeLuDi.

comment:30 by olle, 9 years ago

Background information update:

  1. If tube content is DNA/RNA:
    a. Either a single tube with DNA or RNA is delivered, or one tube with DNA and one tube with RNA.
    b. If RNA is delivered, the full amount is put in a freezer storage box.
    c. If DNA is delivered, some amount is used to create a DNA extract for further analysis. There might be a residue to put in a freezer storage box, but in the first version of MeLuDi it is assumed that the full amount is used.
  2. If an FFPE (Formalin-Fixed, Paraffin-Embedded) tissue specimen is delivered, the number of sections (slices) should be stored with the specimen.
  3. Storage box name suffices should all be in lower-case, forcing the storage box suffix "_Sp" to be exchanged for "_sp".

Functional/Design specification update related to the background information update:

  1. If tube content is DNA or RNA:
    a. Instead of a specimen item, a DNA extract or RNA extract item should be created.
    b. A DNA extract item from a tube should have a name consisting of the case name followed by ".d", e.g. for case "ML00001" the DNA extract name will be "ML00001.d".
    c. An RNA extract item from a tube should have a name consisting of the case name followed by ".r", e.g. for case "ML00001" the RNA extract name will be "ML00001.r".
    d. Currently annotation SAMPLE_TYPE ("SampleType") with possible value [unknown, Primary tumour, Metastasis, DNA, RNA] is used to indicate the content of a specimen tube, and is stored both for the created case and child items. There are several problems with this; one is that the two options Primary tumour and Metastasis are intended for FFPE specimen items, another is that the name "SampleType" is inappropriate for DNA and RNA items, that are of type Extract, instead of Sample. Options [unknown, Primary tumour, Metastasis] should be stored in annotation of type SPECIMEN_TYPE ("SpecimenType") for specimen items, while a new annotation type TUBE_CONTENT_TYPE ("TubeContentType") with options [Specimen, DNA, RNA, DNA + RNA] should be created and stored with the created case item.
  2. For FFPE tube content:
    a. Annotationtype NOF_PIECES ("NofPieces"), used for tissue specimens, should be exchanged for new annotation type NOF_SECTIONS ("NofSections"), which is more appropriate for FFPE specimens.
    b. When registering an FFPE sample, an input field for the number of sections should be added (default should be "1"). The value should be stored in the new NOF_SECTIONS ("NofSections") annotation type for the created specimen item.
  3. For DNA and/or RNA tube content:
    a. Until more information exists regarding what data is supplied with incoming DNA and RNA tubes, only the name, creation date, and extraction date ("Sampling date" input field) will be stored with these items. Specifically, this means that no PL-number or PAD/CL-number will be stored for a case having no specimens.
  4. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ should be updated in storage box queries to search for names ending with "_sp", instead of "_Sp".

Other design specification updates:

  1. Several annotations that are currently stored both for a case and its children specimen items, should be set for either case or specimens:
    a. Annotations of types MUTATION_ANALYSIS ("MutationAnalysis"), PROJECT_FOCUS ("ProjectFocus"), SITE ("Site"), and TUBE_CONTENT_TYPE ("TubeContentType") should be stored with the case item.
    b. Annotations of types SPECIMEN_TYPE ("SpecimenType") and NOF_SECTIONS ("NofSections"), should be stored with specimen items.
  2. Unused annotations and other items in current MeLuDi version should be removed, in order to create a minimal release. This should be done even if the item in question with high probability will be needed in a future version (it will be included in that version instead).
  3. Annotation type SAMPLING_DATETIME ("SamplingDateTime") of type Type.TIMESTAMP should be exchanged for annotation type SAMPLING_DATE ("SamplingDate") of type Type.DATE, since the sampling daytime is unknown in MeLuDi.
  4. Site prefixes, which are key strings used to define options for annotation type SITE ("Site"), currently consist of the site names in lowercase letters, where if necessary the Swedish characters [Å,Ä,Ö,å,ä,ö] are replaced by [A,A,O,a,a,o], respectively. Since the prefixes are displayed when inspecting annotations in BASE, the prefixes should be changed to start with a capital letter, in order for the name to be more recognizable, e.g. "Malmo" instead of "malmo" (Swedish national letters are still exchanged for standard ASCII ones).
  5. Case summary displays an item's description under header "Comment", a custom inherited from Reggie and the SCAN-B project, where the description was initially copied from another document, where the text was stored as "Comment". In order to make the connection to the BASE annotation clearer, case summary in MeLuDi should use the more natural header "Description" for this annotation.
Last edited 9 years ago by olle (previous) (diff)

comment:31 by olle, 9 years ago

Updated input options via check boxes/menus:

Input name Input type Options Default
Mutation analysis Check boxes KRAS_NRAS, BRAF, EGFR -
Site Menu unknown, Helsingborg, Karlskrona, Kristianstad, Linköping, Lund, Malmö, Växjö unknown
Tube content type Menu Specimen, DNA, RNA, DNA + RNA Specimen
Specimen type Menu unknown, Primary tumour, Metastasis unknown
Project focus Menu unknown, Melanoma, Lung cancer unknown
Last edited 9 years ago by olle (previous) (diff)

comment:32 by olle, 9 years ago

Design update:

  1. New and changed reference items.
    1. New annotation types added, unused ones removed or commented out:
      a. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated.
      b. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
    2. Unused roles removed or commented out:
      a. Java class/file MeludiRole.java in src/net/sf/basedb/meludi/dao/ updated.
    3. Unused MIME types removed or commented out:
      a. Java class/file Mimetype.java in src/net/sf/basedb/meludi/dao/ updated.
    4. Class/file Site.java in src/net/sf/basedb/meludi/ updated to have prefix string keys starting with a capital letter, since they are city names.
    5. Site annotation only stored with Case item:
      a. Class/file ReportTableUtil.java in src/net/sf/basedb/meludi/servlet/ updated in private method Site fetchSite(...) to get site annotation from case item related to sample.
      b. Class/file SampleReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method Site fetchSite(...) to get site annotation from case item related to sample.
  1. Updates in registration due to changes in information stored for items, and support for DNA and RNA tubes, in addition to specimen tubes.
    1. New data access object classes/files added:
      a. New data access object class/file Dna.java in src/net/sf/basedb/meludi/dao/ added.
      b. New data access object class/file Rna.java in src/net/sf/basedb/meludi/dao/ added.
    2. Specimen tube registration:
      a. JSP file specimentube.jsp in resources/sampleproc/ updated.
      b. Javascript file specimentube.js in resources/sampleproc/ updated.
      c. Java class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
    3. Personal information registration, either for new cases, or updates of existing:
      a. JSP file persinfo.jsp in resources/personal/ updated.
      b. Javascript file persinfo.js in resources/personal/ updated.
      c. Java class/file PersonalRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
  1. Updates in case summary due to changes in information stored for items, and support for DNA and RNA tubes, in addition to specimen tubes.
    1. Case summary update:a. JSP file case_summary.jsp in resources/reports/ updated.
      b. Javascript file case-summary.js in resources/reports/ changed in name to case_summary.js and updated.
      c. Java class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
  1. Updates due to version number change to "1.0".
    1. Version number change to "1.0":
      a. Outermost Ant XML build file build.xml in / updated.
      b. Extensions XML configuration file extensions.xml in META-INF/ updated.
      c. Javascript file meludi-2.js in resources/ updated.
      d. Javascript file samplereportgenerator.js in resources/reports/ updated.
      e. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.
  1. Various updates.
    1. Outermost text file README in / updated by fix of typos.
    2. "Easter egg" in case summary input field on MeLuDi home page updated for input text "MeLuDi" to give credit to parent software "Reggie", on which MeLuDi is based:
      a. JSP file index.jsp in resources updated with new style information.
      b. Javascript file index.js in resources updated in text and to display new animated GIF file dancing_reggie.gif in resources/images/.
      c. Animated GIF file floating-musical-notes.gif in resources/images/ exchanged for new added animated GIF file dancing_reggie.gif, also in resources/images/.

comment:33 by olle, 9 years ago

(In [3028]) Refs #690. MeLuDi BASE extension updated to version 1.0:

  1. New and changed reference items.
    1. New annotation types added, unused ones removed or commented out:
      a. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated.
      b. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
    2. Unused roles removed or commented out:
      a. Java class/file MeludiRole.java in src/net/sf/basedb/meludi/dao/ updated.
    3. Unused MIME types removed or commented out:
      a. Java class/file Mimetype.java in src/net/sf/basedb/meludi/dao/ updated.
    4. Class/file Site.java in src/net/sf/basedb/meludi/ updated to have prefix string keys starting with a capital letter, since they are city names.
    5. Site annotation only stored with Case item:
      a. Class/file ReportTableUtil.java in src/net/sf/basedb/meludi/servlet/ updated in private method Site fetchSite(...) to get site annotation from case item related to sample.
      b. Class/file SampleReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method Site fetchSite(...) to get site annotation from case item related to sample.
  1. Updates in registration due to changes in information stored for items, and support for DNA and RNA tubes, in addition to specimen tubes.
    1. New data access object classes/files added:
      a. New data access object class/file Dna.java in src/net/sf/basedb/meludi/dao/ added.
      b. New data access object class/file Rna.java in src/net/sf/basedb/meludi/dao/ added.
    2. Specimen tube registration:
      a. JSP file specimentube.jsp in resources/sampleproc/ updated.
      b. Javascript file specimentube.js in resources/sampleproc/ updated.
      c. Java class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
    3. Personal information registration, either for new cases, or updates of existing:
      a. JSP file persinfo.jsp in resources/personal/ updated.
      b. Javascript file persinfo.js in resources/personal/ updated.
      c. Java class/file PersonalRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
  1. Updates in case summary due to changes in information stored for items, and support for DNA and RNA tubes, in addition to specimen tubes.
    1. Case summary update:a. JSP file case_summary.jsp in resources/reports/ updated.
      b. Javascript file case-summary.js in resources/reports/ changed in name to case_summary.js and updated.
      c. Java class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated.
  1. Updates due to version number change to "1.0".
    1. Version number change to "1.0":
      a. Outermost Ant XML build file build.xml in / updated.
      b. Extensions XML configuration file extensions.xml in META-INF/ updated.
      c. Javascript file meludi-2.js in resources/ updated.
      d. Javascript file samplereportgenerator.js in resources/reports/ updated.
      e. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.
  1. Various updates.
    1. Outermost text file README in / updated by fix of typos.
    2. "Easter egg" in case summary input field on MeLuDi home page updated for input text "MeLuDi" to give credit to parent software "Reggie", on which MeLuDi is based:
      a. JSP file index.jsp in resources updated with new style information.
      b. Javascript file index.js in resources updated in text and to display new animated GIF file dancing_reggie.gif in resources/images/.
      c. Animated GIF file floating-musical-notes.gif in resources/images/ exchanged for new added animated GIF file dancing_reggie.gif, also in resources/images/.

comment:34 by olle, 9 years ago

(In [3030]) Refs #690. Javascript file labelgeneration.js in resources/sampleproc/ updated by setting debug flag to 0.

comment:35 by olle, 9 years ago

Resolution: fixed
Status: assignedclosed

Ticket closed as MeLuDi version 1.0 has been created.

Note: See TracTickets for help on using tickets.