Opened 10 years ago

Closed 10 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, 10 years ago

Status: newassigned

Ticket accepted.

comment:2 by olle, 10 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 10 years ago by olle (previous) (diff)

comment:3 by olle, 10 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.
Example: "1100027".
"ML" + 5 figures.
Example: "ML00027".
Patient name (anonymized id) "PAT" + 6 figures.
Example: "PAT000027".
"MLP" + 6 figures.
Example: "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".

Specimen and extract names are created by adding suffices to the case name, they relate to. Making case names coupled to the program creating them, automatically also makes specimen and extract names have this property.

Last edited 10 years ago by olle (previous) (diff)

comment:4 by olle, 10 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 10 years ago by olle (previous) (diff)

comment:5 by olle, 10 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 10 years ago by olle (previous) (diff)

comment:6 by olle, 10 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
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
Version 7, edited 10 years ago by olle (previous) (next) (diff)

comment:7 by olle, 10 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, 10 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, 10 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, 10 years ago

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

comment:11 by olle, 10 years ago

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