Opened 6 years ago

Closed 19 months ago

#1029 closed task (fixed)

MeLuDI should be adapted to support the SCAN-B-rec project

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

Description (last modified by olle)

MeLuDI should be adapted to support the SCAN-B-rec project.

Initially the following should be added:

  • Basic configuration for the SCAN-B-rec project as a BASE project.
  • Support for referral form generation.

Support should also be added for projects NordicTrip and LUCAS, that both use referral form generation.

Change History (318)

comment:1 by olle, 6 years ago

Status: newassigned

Ticket accepted.

comment:2 by olle, 6 years ago

Traceability note:

  • MeLuDi v.1.0 was introduced in Ticket #690 (MeLuDi - Registration wizard for melanoma-lung cancer projects).
  • MeLuDi v.1.1 was introduced in Ticket #718 (MeLuDi v.1.0 bug fixes and improvements).
  • MeLuDi v.1.2 was introduced in Ticket #725 (MeLuDi v.1.1 bug fixes and improvements).
  • MeLuDI v.1.2.1 was introduced in Ticket #759 (MeLuDi v.1.2 bug fixes and improvements).
  • MeLuDI v.1.2.2 was introduced in Ticket #767 (MeLuDI v.1.2.1 bug fixes and improvements).
  • MeLuDI v.1.2.3 was introduced in Ticket #768 (MeLuDI v.1.2.2 bug fixes and improvements).
  • MeLuDI v.1.2.4 was introduced in Ticket #777 (MeLuDI v.1.2.3 bug fixes and improvements).
  • MeLuDI v.1.2.5 was introduced in Ticket #786 (MeLuDI v.1.2.4 bug fixes and improvements).
  • MeLuDI v.1.3.1 was introduced in Ticket #792 (MeLuDI v.1.2.5 bug fixes and improvements).
  • First version of library preparation wizards was introduced in Ticket #801 (MeLuDI library preparation wizards first version).
  • MeLuDI v.1.3.2 was introduced in Ticket #802 (MeLuDI v.1.3.1 bug fixes and improvements).
  • MeLuDI v.1.3.3 was introduced in Ticket #815 (MeLuDI v.1.3.2 bug fixes and improvements).
  • MeLuDI v.1.4.0 was introduced in Ticket #816 (MeLuDI v.1.3.3 bug fixes and improvements).
  • MeLuDI v.1.4.1 was introduced in Ticket #836 (MeLuDI v.1.4.0 bug fixes and improvements).
  • MeLuDI v.1.4.2 was introduced in Ticket #837 (MeLuDI v.1.4.1 bug fixes and improvements).
  • MeLuDI v.1.4.3 was introduced in Ticket #880 (MeLuDI v.1.4.2 bug fixes and improvements).
  • MeLuDI v.1.5.0 was introduced in Ticket #911 (MeLuDI should support multiple projects).

comment:3 by olle, 6 years ago

(In [4696]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.
Last edited 6 years ago by olle (previous) (diff)

comment:4 by olle, 6 years ago

Traceability note:

The support for referral form generation in MeLuDI will be based on that for Reggie:

  • Ticket #897 (Generate SCAN-B referral forms in Reggie)
  • Ticket #926 (SCAN-B referral form generation improvements in Reggie)

comment:5 by olle, 6 years ago

Design discussion:

  • First version of SCAN-B-rec referral form generation will be based on the corresponding functionality for Reggie and the SCAN-B project. Some functionality may have to be adapted for the former project, but changes will be easier to describe in comparison with corresponding functionality for the SCAN-B project. Therefore the initial revision will be closely similar to the code base for the latter:
    a. A new sub-section "Referral forms" with entry "Generate referral forms" will be added to section "Personal information wizards", and will require a PatientCurator role to be used.
    b. Step 1 of the SCAN-B referral form generation wizard will have two menus, one for the SCAN-B site, and one for selecting the form variant to generate forms for (initially two choices, "Kit 1 - Standard" and "Kit 2 - Neoadjuvant therapy").
    c. Step 2 should contain two input fields, one for the first SCAN-B ID for the form set batch to be created, and the number of form sets in the batch. One button should be shown, "Generate referral forms".
    d. Step 3 should present three buttons, "Download form batch file 1", "Download form batch file 2", and "Update used SCAN-B ID list". As expected, clicking the first or second button should allow the corresponding form batch PDF file to be downloaded to the local system, while clicking on the third button will update the stored list of used SCAN-B ID to prevent the same set of referral form sets to be created again for the same site, provided that the default start SCAN-B ID has not been modified by the user and that the list has been updated after each created form set batch.

Design update:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" with new sub-section "Referral forms" with entry "Generate referral forms". The entry for generating referral forms is linked to new JSP file generate-referral-forms.jsp in resources/personal/, and requires a PatientCurator role to be used.
  2. New JSP file generate-referral-forms.jsp in resources/personal/ added. It is linked to new javascript file generate-referral-forms.js in resources/personal/.
  3. New javascript file generate-referral-forms.js in resources/personal/ added.
    a. Function initPage() calls ScanBQuarterMonthReportServlet with command "GetSites" to obtain entries for the site menu, created by callback function sitesLoaded(response).
    b. Function initializeStep2(response) calls ReferralGeneratorServlet with command "GetReferralStartInfo" to obtain the SCAN-B ID for the first form set for the selected site. The default number of form sets in the batch to be created is chosen depending on the selected form set variant (50 for Kit 1, 25 for Kit 2).
    c. Clicking on button "Generate referral forms" activates function generateReferralForms(), that calls ReferralGeneratorServlet with command "GenerateReferralForms" and callback function initializeStep3(response).
    d. Function initializeStep3(response) activates buttons for downloading created form batch files and updating used SCAN-B ID list.
    e. Function downloadFormBatch(batchType) calls ReferralGeneratorServlet with command "DownloadFormBatchFile" to download the corresponding form batch file to the local system.
    f. Function updateUsedScanbIdList() calls ReferralGeneratorServlet with command "UpdateUsedScanbIdList" to updated the used SCAN-B ID list.
  4. New java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ added.
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "GetReferralStartInfo", that calls private method JSONObject fetchReferralstartInfo() to obtain a JSONObject to return with info on the start SCAN-B ID values for different sites.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "UpdateUsedScanbIdList", that retrieves the used start SCAN-B ID and the number of form sets generated, after which the used SCAN-B ID list file is updated for the current site with the value returned by private method String nextScanbId(String scanbId, Integer incr).
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "GenerateReferralForms", that calls a number of private convenience methods to create the desired referral form batch PDF files, with support from utility class PdfUtil.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "DownloadFormBatchFile", which retrieves a path to the desired form batch PDF file by calling private method String fetchReferralFormBatchFilePath(int batchType), after which it sends the file contents to an output stream, for download by the user.
    e. Private method String fetchReferralStartInfoFilePath() returns a path to the referral start info file.
    f. Private method JSONObject fetchReferralstartInfo() returns a JSONObject with info on the start SCAN-B ID values for different sites.
    g. Private method String fetchReferralFormBatchFilePath(int batchType) returns a path to the desired form batch PDF file.
    h. Private method tring fetchReferralFormBatchFileName(int batchType, String startScanbId, String endScanbId) returns name to be used for the referral form batch file.
    i. Private method String fetchReferralFormTemplateFilePath(String formTemplateName) returns path to be used for referral form template file.
    j. Private method String fetchReferralFormTemplateFilename(String formTemplateName) returns name of referral form template file, obtained from MeLuDI configuration file.
    k. Private method String fetchReferralFormTemplateFileDirPath() returns directory path for referral form template files, obtained from MeLuDI configuration file.
    l. Private method String nextScanbId(String scanbId, Integer incr) returns the next SCAN-B ID for a site (same prefix) after a desired incrementation. Any optional suffix is retained.
    m. Private method PdfUtil createPatientInfoForm(PdfUtil pdfUtil, String scanbId) creates PDF contents for a patient info form.
    n. Private method PdfUtil createConsentReportForm(PdfUtil pdfUtil, String scanbId) creates PDF contents for a consent report form.
    o. Private method PdfUtil createClinChemForm(PdfUtil pdfUtil, String scanbId, String pdfTemplatePath) creates PDF contents for a clinical chemistry form using the desired template (standard or biopsy).
    p. Private method PdfUtil createClinPathologyForm(PdfUtil pdfUtil, String scanbId, String pdfTemplatePath) creates PDF contents for a clinical pathology form using the desired template (standard or biopsy).
    q. Private method byte[] createBarcode(String barcodeText, String barcodeType, Integer dpi, Boolean humanReadable, String textPlacement, String fontName, Integer fontSize) returns a byte array of a barcode image corresponding to desired contents. Java library Barcode4J is used to generate the barcode.
    r. Private static method Configuration buildBarcodeCfg(String type, Boolean humanReadable, String textPlacement, String fontName, Integer fontSize) configures the Barcode4J barcode generator.
  5. XML configuration file servlets.xml in META-INF updated by adding new java servlet class ReferralGeneratorServlet to the servlet list.
  6. New utility library PdfUtil.java in src/net/sf/basedb/meludi/pdf/ added.
  7. New data access object ClientApp.java in src/net/sf/basedb/meludi/dao/ added.
  8. New iText library itextpdf-5.5.3.jar with license file itext-license.txt in meludi/META-INF/lib/ added.
  9. Outermost Ant build file build.xml in / updated by adding file set META-INF/lib to class path for compiling.
  10. Properties file build.properties in / updated by adding dependency on JAR files in base/www/WEB-INF/lib/.
  11. Java classpath file .classpath in / updated by adding META-INF/lib/itextpdf-5.5.3.jar.
  12. Meludi.java in src/net/sf/basedb/meludi/ updated:
    a. New private static method String fetchProjectName(int activeProjectId) added.
    b. New public static method String fetchReferralFormTemplatesDir(int activeProjectId) added.
    c. New public static method String fetchReferralFormTemplatesOldDir(int activeProjectId) added.
    d. New public static method String fetchSecondaryAnalysisDir(int activeProjectId) added.
Last edited 6 years ago by olle (previous) (diff)

comment:6 by olle, 6 years ago

(In [4697]) Refs #1029. New Java package directory "pdf" added.

comment:7 by olle, 6 years ago

(In [4698]) Refs #1029. New directory META-INF/lib added.

comment:8 by olle, 6 years ago

(In [4706]) Refs #1029. First import of code for referral generation, taken from Reggie project, with minor modifications to allow it to be compiled in MeLuDI (full functionality requires more code changes):

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" with new sub-section "Referral forms" with entry "Generate referral forms". The entry for generating referral forms is linked to new JSP file generate-referral-forms.jsp in resources/personal/, and requires a PatientCurator role to be used.
  2. New JSP file generate-referral-forms.jsp in resources/personal/ added. It is linked to new javascript file generate-referral-forms.js in resources/personal/.
  3. New javascript file generate-referral-forms.js in resources/personal/ added.
    a. Function initPage() calls ScanBQuarterMonthReportServlet with command "GetSites" to obtain entries for the site menu, created by callback function sitesLoaded(response).
    b. Function initializeStep2(response) calls ReferralGeneratorServlet with command "GetReferralStartInfo" to obtain the SCAN-B ID for the first form set for the selected site. The default number of form sets in the batch to be created is chosen depending on the selected form set variant (50 for Kit 1, 25 for Kit 2).
    c. Clicking on button "Generate referral forms" activates function generateReferralForms(), that calls ReferralGeneratorServlet with command "GenerateReferralForms" and callback function initializeStep3(response).
    d. Function initializeStep3(response) activates buttons for downloading created form batch files and updating used SCAN-B ID list.
    e. Function downloadFormBatch(batchType) calls ReferralGeneratorServlet with command "DownloadFormBatchFile" to download the corresponding form batch file to the local system.
    f. Function updateUsedScanbIdList() calls ReferralGeneratorServlet with command "UpdateUsedScanbIdList" to updated the used SCAN-B ID list.
  4. New java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ added.
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "GetReferralStartInfo", that calls private method JSONObject fetchReferralstartInfo() to obtain a JSONObject to return with info on the start SCAN-B ID values for different sites.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "UpdateUsedScanbIdList", that retrieves the used start SCAN-B ID and the number of form sets generated, after which the used SCAN-B ID list file is updated for the current site with the value returned by private method String nextScanbId(String scanbId, Integer incr).
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "GenerateReferralForms", that calls a number of private convenience methods to create the desired referral form batch PDF files, with support from utility class PdfUtil.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "DownloadFormBatchFile", which retrieves a path to the desired form batch PDF file by calling private method String fetchReferralFormBatchFilePath(int batchType), after which it sends the file contents to an output stream, for download by the user.
    e. Private method String fetchReferralStartInfoFilePath() returns a path to the referral start info file.
    f. Private method JSONObject fetchReferralstartInfo() returns a JSONObject with info on the start SCAN-B ID values for different sites.
    g. Private method String fetchReferralFormBatchFilePath(int batchType) returns a path to the desired form batch PDF file.
    h. Private method tring fetchReferralFormBatchFileName(int batchType, String startScanbId, String endScanbId) returns name to be used for the referral form batch file.
    i. Private method String fetchReferralFormTemplateFilePath(String formTemplateName) returns path to be used for referral form template file.
    j. Private method String fetchReferralFormTemplateFilename(String formTemplateName) returns name of referral form template file, obtained from MeLuDI configuration file.
    k. Private method String fetchReferralFormTemplateFileDirPath() returns directory path for referral form template files, obtained from MeLuDI configuration file.
    l. Private method String nextScanbId(String scanbId, Integer incr) returns the next SCAN-B ID for a site (same prefix) after a desired incrementation. Any optional suffix is retained.
    m. Private method PdfUtil createPatientInfoForm(PdfUtil pdfUtil, String scanbId) creates PDF contents for a patient info form.
    n. Private method PdfUtil createConsentReportForm(PdfUtil pdfUtil, String scanbId) creates PDF contents for a consent report form.
    o. Private method PdfUtil createClinChemForm(PdfUtil pdfUtil, String scanbId, String pdfTemplatePath) creates PDF contents for a clinical chemistry form using the desired template (standard or biopsy).
    p. Private method PdfUtil createClinPathologyForm(PdfUtil pdfUtil, String scanbId, String pdfTemplatePath) creates PDF contents for a clinical pathology form using the desired template (standard or biopsy).
    q. Private method byte[] createBarcode(String barcodeText, String barcodeType, Integer dpi, Boolean humanReadable, String textPlacement, String fontName, Integer fontSize) returns a byte array of a barcode image corresponding to desired contents. Java library Barcode4J is used to generate the barcode.
    r. Private static method Configuration buildBarcodeCfg(String type, Boolean humanReadable, String textPlacement, String fontName, Integer fontSize) configures the Barcode4J barcode generator.
  5. XML configuration file servlets.xml in META-INF updated by adding new java servlet class ReferralGeneratorServlet to the servlet list.
  6. New utility library PdfUtil.java in src/net/sf/basedb/meludi/pdf/ added.
  7. New data access object ClientApp.java in src/net/sf/basedb/meludi/dao/ added.
  8. New iText library itextpdf-5.5.3.jar with license file itext-license.txt in meludi/META-INF/lib/ added.
  9. Outermost Ant build file build.xml in / updated by adding file set META-INF/lib to class path for compiling.
  10. Properties file build.properties in / updated by adding dependency on JAR files in base/www/WEB-INF/lib/.
  11. Java classpath file .classpath in / updated by adding META-INF/lib/itextpdf-5.5.3.jar.
  12. Meludi.java in src/net/sf/basedb/meludi/ updated:
    a. New private static method String fetchProjectName(int activeProjectId) added.
    b. New public static method String fetchReferralFormTemplatesDir(int activeProjectId) added.
    c. New public static method String fetchReferralFormTemplatesOldDir(int activeProjectId) added.
    d. New public static method String fetchSecondaryAnalysisDir(int activeProjectId) added.

comment:9 by olle, 6 years ago

(In [4714]) Refs #1029. MANIFEST.MF file in META-INF/ updated with new line defining class path lib/itextpdf-5.5.3.jar.

comment:10 by olle, 6 years ago

(In [4715]) Refs #1029. New directory fonts/ added to META-INF/ with OpenSans fonts.

comment:11 by olle, 6 years ago

Design update:

MeLuDI should be updated with new configuration flag uses-site-prefix, indicating if the project uses some of the first digits in the serial number of the case/sample name to indicate what hospital site, the case/sample belongs to.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tag <uses-site-prefix>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static method Boolean fetchUsesSitePrefix(int activeProjectId). It calls private static method ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration value is returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration value "uses-site-prefix" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variable and corresponding public accessor methods for new configuration value.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration value for flag indicating use of site prefix for active project in returned JSONObject for JSON key "usesSitePrefix".

comment:12 by olle, 6 years ago

(In [4716]) Refs #1029. MeLuDI updated with new configuration flag uses-site-prefix, indicating if the project uses some of the first digits in the serial number of the case/sample name to indicate what hospital site, the case/sample belongs to.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tag <uses-site-prefix>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static method Boolean fetchUsesSitePrefix(int activeProjectId). It calls private static method ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration value is returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration value "uses-site-prefix" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variable and corresponding public accessor methods for new configuration value.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration value for flag indicating use of site prefix for active project in returned JSONObject for JSON key "usesSitePrefix".

comment:13 by olle, 6 years ago

Discussion regarding site prefix:

  • Currently the only MeLuDI project using a site prefix is the SCAN-B-rec project. Although the aim is to make the corresponding functionality general enough for other projects to use it, initially the design will be based on the requirements of the SCAN-B-rec project.
  • The SCAN-B-rec project will use the first two digits in the serial number of the case/sample name to indicate the hospital site.
  • Use of the first two digits in the serial number of the case/sample name as site prefix is the same convention as use for the site prefix in the SCAN-B project (although in the latter project, there are restrictions on what samples are connected to a case). A desire has been expressed to use the same site prefixes in SCAN-B-rec, as for SCAN-B, for sites used in both projects (no risk of confusion regarding the project owner for a specific sample exists, since the SCAN-B-rec project will use project prefix "REC" for case/sample numbers). Sites currently only used in the SCAN-B project will be added to MeLuDI.
  • Site prefixes for hospital sites currently unique to MeLuDI, but not used in the SCAN-B project, will be assigned a preliminary site prefix in MeLuDI, to be fixed before the start of the SCAN-B-rec project.

Design discussion.

  • For a project using site prefix, the current MeLuDI sample registration feature of showing the next available case name in the input field for the latter, needs to be removed, since the site is unknown, and will affect the number part of the case name.
  • For a project using site prefix, the site menu in MeLuDI sample registration should have the site corresponding to the site index in the case name as default, and the site menu should be disabled. This way a case and sample will be connected to the proper site, using the traditional MeLuDI site definition.
Last edited 6 years ago by olle (previous) (diff)

comment:14 by olle, 6 years ago

Design update:

  • MeLuDI should be updated with new configuration flag site-prefix-hash-list. If the project uses site prefixes, the new variable should contain a comma-separated list, where each odd entry is a site prefix, and the following entry is the corresponding site key. It is expected that both site prefixes and keys are unique, i.e. a site cannot be represented by more than one site prefix.
  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tag <site-prefix-hash-list>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated:
    1. New public static method String fetchSitePrefixHashList(int activeProjectId). It calls private static method ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration value is returned.
    2. New public static method HashMap<String,String> fetchSitePrefixSiteKeyHashMap(int activeProjectId). It returns a site prefix/site key hash map for the desired project.
    3. New public static method HashMap<String,String> HashMap<String,String> fetchSiteKeySitePrefixHashMap(int activeProjectId). It returns a site key/site prefix hash map for the desired project.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration value "site-prefix-hash-list" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variable and corresponding public accessor methods for new configuration value.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration value for site prefix/site key hash list for active project in returned JSONObject for JSON key "sitePrefixHashList".
Last edited 6 years ago by olle (previous) (diff)

comment:15 by olle, 6 years ago

(In [4722]) Refs #1029. MeLuDI updated with new configuration flag site-prefix-hash-list. If the project uses site prefixes, the new variable should contain a comma-separated list, where each odd entry is a site prefix, and the following entry is the corresponding site key. It is expected that both site prefixes and keys are unique, i.e. a site cannot be represented by more than one site prefix.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tag <site-prefix-hash-list>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated:
    1. New public static method String fetchSitePrefixHashList(int activeProjectId). It calls private static method ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration value is returned.
    2. New public static method HashMap<String,String> fetchSitePrefixSiteKeyHashMap(int activeProjectId). It returns a site prefix/site key hash map for the desired project.
    3. New public static method HashMap<String,String> HashMap<String,String> fetchSiteKeySitePrefixHashMap(int activeProjectId). It returns a site key/site prefix hash map for the desired project.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration value "site-prefix-hash-list" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variable and corresponding public accessor methods for new configuration value.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration value for site prefix/site key hash list for active project in returned JSONObject for JSON key "sitePrefixHashList".

comment:16 by olle, 6 years ago

Design update:

  • MeLuDI should be updated in case/sample registration wizards for projects using site prefix:
    i. The case ID input field should be empty (for other projects the next available case ID is set as default value).
    ii. The site menu should have the site corresponding to the site prefix in the case ID as default value, and the menu should be disabled. If a case ID with an unknown site prefix has been entered, the site menu should have "unknown" as default value.
  1. Javascript file persinfo.js in resources/personal/ updated:
    a. Function onConfiguration(request) updated to set value of variable usesSitePrefix from loaded configuration.
    b. Function caseInfoLoadedStep1(response) updated to not enter a default value in case ID input field, if value of variable usesSitePrefix is true.
    c. Function onCaseInfoLoaded(response) updated for case info having a not-null value for variable siteDefault to set the default for the site menu to the value in question, and to disable the site menu.
  2. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function onConfiguration(request) updated to set value of variable usesSitePrefix from loaded configuration.
    b. Function caseInfoLoadedStep1(response) updated to not enter a default value in case ID input field, if value of variable usesSitePrefix is true.
    c. Function caseInfoLoaded(response) updated for case info having a not-null value for variable siteDefault to set the default for the site menu to the value in question, and to disable the site menu.
  3. Java servlet class/file PersonalRegistrationServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to check for an unknown case if the site should be found from site prefix, in which case the site key is returned for JSON key "siteDefault".
  4. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to check for an unknown case if the site should be found from site prefix, in which case the site key is returned for JSON key "siteDefault".
Last edited 6 years ago by olle (previous) (diff)

comment:17 by olle, 6 years ago

(In [4723]) Refs #1029. MeLuDI updated in case/sample registration wizards for projects using site prefix:
i. The case ID input field should be empty (for other projects the next available case ID is set as default value).
ii. The site menu should have the site corresponding to the site prefix in the case ID as default value, and the menu should be disabled. If a case ID with an unknown site prefix has been entered, the site menu should have "unknown" as default value.

  1. Javascript file persinfo.js in resources/personal/ updated:
    a. Function onConfiguration(request) updated to set value of variable usesSitePrefix from loaded configuration.
    b. Function caseInfoLoadedStep1(response) updated to not enter a default value in case ID input field, if value of variable usesSitePrefix is true.
    c. Function onCaseInfoLoaded(response) updated for case info having a not-null value for variable siteDefault to set the default for the site menu to the value in question, and to disable the site menu.
  2. Javascript file specimentube.js in resources/sampleproc/ updated:
    a. Function onConfiguration(request) updated to set value of variable usesSitePrefix from loaded configuration.
    b. Function caseInfoLoadedStep1(response) updated to not enter a default value in case ID input field, if value of variable usesSitePrefix is true.
    c. Function caseInfoLoaded(response) updated for case info having a not-null value for variable siteDefault to set the default for the site menu to the value in question, and to disable the site menu.
  3. Java servlet class/file PersonalRegistrationServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to check for an unknown case if the site should be found from site prefix, in which case the site key is returned for JSON key "siteDefault".
  4. Java servlet class/file SpecimenTubeServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to check for an unknown case if the site should be found from site prefix, in which case the site key is returned for JSON key "siteDefault".

comment:18 by olle, 6 years ago

Design update:

  • Referral generation should be updated:
    i. The MeLuDI main page should be updated in personal information section by only adding entry for sub-section "Referral forms" with wizard "Generate referral forms" for projects using the feature.
    ii. Referral form generation should be updated in text and variable names not to refer to the SCAN-B project.
    iii. Referral form generation should be updated to be compatible with the MeLuDI item name standard of project-specific prefix plus number.
    iv. Referral form generation should be updated to use site prefixes from the configuration file.
  1. JSP file index.jsp in resources/ updated in personal information section by only adding entry for sub-section Referral forms with wizard "Generate referral forms" if the project uses the feature. Currently variable boolean isUsingReferralGeneration is set to true based on the name of the active project, but this should preferably be exchanged for use of configuration values for the project.
  2. JSP file generate-referral-forms.jsp in resources/personal/ updated in text and variable names not to refer to the SCAN-B project.
  3. Javascript file generate-referral-forms.js in resources/personal/ updated:BR}a. Code updated in text and variable names not to refer to the SCAN-B project.
    b. Function initPage() updated to call servlet ReferralGeneratorServlet with command "GetSites" to obtain a JSON object with options for the referral generation "Site" menu.
    c. New functions loadConfiguration() and onConfiguration(request) load MeLuDI configuration data for the project and set values for variables usesSitePrefix, sampleItemPrefix, and sampleItemNumDigits.
  4. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Code updated in text and variable names not to refer to the SCAN-B project.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetSites", that calls new method fetchJSONSites(...) to obtains a JSON object returned with JSON key "sites".
    c. New public static method JSONArray fetchJSONSites(Comparator<Site> comparator, int activeProjectId) added. It calls class Site to obtain an alphabetic list of all sites, and then uses the project configuration site key/site prefix hash map to return a JSON object with the site prefix as JSON key.
    d. A number of private methods for generating PDF referral files updated to fit requirements for the referral templates in the SCAN-B-rec project.
Last edited 6 years ago by olle (previous) (diff)

comment:19 by olle, 6 years ago

(In [4724]) Refs #1029. Referral generation updated:
i. The MeLuDI main page updated in personal information section by only adding entry for sub-section "Referral forms" with wizard "Generate referral forms" for projects using the feature.
ii. Referral form generation updated in text and variable names not to refer to the SCAN-B project.
iii. Referral form generation updated to be compatible with the MeLuDI item name standard of project-specific prefix plus number.
iv. Referral form generation updated to use site prefixes from the configuration file.

  1. JSP file index.jsp in resources/ updated in personal information section by only adding entry for sub-section Referral forms with wizard "Generate referral forms" if the project uses the feature. Currently variable boolean isUsingReferralGeneration is set to true based on the name of the active project, but this should preferably be exchanged for use of configuration values for the project.
  2. JSP file generate-referral-forms.jsp in resources/personal/ updated in text and variable names not to refer to the SCAN-B project.
  3. Javascript file generate-referral-forms.js in resources/personal/ updated:BR}a. Code updated in text and variable names not to refer to the SCAN-B project.
    b. Function initPage() updated to call servlet ReferralGeneratorServlet with command "GetSites" to obtain a JSON object with options for the referral generation "Site" menu.
    c. New functions loadConfiguration() and onConfiguration(request) load MeLuDI configuration data for the project and set values for variables usesSitePrefix, sampleItemPrefix, and sampleItemNumDigits.
  4. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Code updated in text and variable names not to refer to the SCAN-B project.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetSites", that calls new method fetchJSONSites(...) to obtains a JSON object returned with JSON key "sites".
    c. New public static method JSONArray fetchJSONSites(Comparator<Site> comparator, int activeProjectId) added. It calls class Site to obtain an alphabetic list of all sites, and then uses the project configuration site key/site prefix hash map to return a JSON object with the site prefix as JSON key.
    d. A number of private methods for generating PDF referral files updated to fit requirements for the referral templates in the SCAN-B-rec project.

comment:20 by olle, 6 years ago

(In [4725]) Refs #1029. MeLuDI updated by adding sites "Halmstad" and "Jönköping":

  1. JSP file persinfo.jsp in resources/personal/ updated by adding options for new sites in site menu. Site menu options are now placed in alphabetical order to make it simpler to find a desired item.
  2. JSP file specimentube.jsp in resources/sampleproc/ updated by adding options for new sites in site menu. Site menu options are now placed in alphabetical order to make it simpler to find a desired item.
  3. Java class/file Site.java in src/net/sf/based/meludi/ updated by adding entries for new sites "Halmstad (member of "RCC syd") and "Jönköping" (not member of "RCC syd").
  4. Java servlet class/file InstallServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by including the new sites in value options for Annotationtype.SITE.

comment:21 by olle, 6 years ago

(In [4726]) Refs #1029. Referral generation updated in servlet by exchanging hard-coded site prefix length 2 for new private static variable int sitePrefixLength with default value set to 2. The change is a preparation for obtaining the site prefix length from the project configuration in the future.

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated by exchanging hard-coded site prefix length 2 for new static variable sitePrefixLength with default value set to 2.

comment:22 by olle, 6 years ago

(In [4727]) Refs #1029. MeLuDI updated in most wizards by specifying that a current "site" represents a hospital site, in order to simplify adding data for internal sites like metastasis sites in the future:

  1. JSP file persinfo.jsp in resources/personal/ updated by referring to currents sites as hospital sites.
  2. JSP file specimentube.jsp in resources/sampleproc/ updated by referring to currents sites as hospital sites.
  3. JSP file case_summary.jsp in resources/reports/ updated by referring to currents sites as hospital sites.
  4. JSP file meludi_quarter_month_report_generator.jsp in resources/reports/ updated by referring to currents sites as hospital sites.
  5. Javascript file samplereportgenerator.js in resources/reports/ updated by referring to currents sites as hospital sites.

comment:23 by olle, 6 years ago

(In [4729]) Refs #1029. MeLuDI updated by extending list of menu options for "Specimen input type" with "RNAlater" and "FFPE block". Also, description of previous FFPE options updated by adding Swedish notation in parenthesis:

  1. JSP file persinfo.jsp in resources/personal/ updated by adding options "RNAlater" and "FFPE block" to input menu for specimen input type. Also, description of previous FFPE options updated by adding Swedish notation in parenthesis.
  2. JSP file specimentube.jsp in resources/sampleproc/ updated by adding options "RNAlater" and "FFPE block" to input menu for specimen input type. Also, description of previous FFPE options updated by adding Swedish notation in parenthesis.
  3. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to include "rna_later" and "ffpe_block" in value options for annotation type SPECIMEN_INPUT_TYPE.
  4. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method fetchSpecimenInputType(String rawSpecimenInputType) by including support for options "RNAlater" and "FFPE block".

comment:24 by olle, 6 years ago

(In [4730]) Refs #1029. Specimen tube registration updated in the set of mutation analysis options by adding new option "TST170" (TruSight Tumor 170, a sequencing assay covering 170 genes). The new option should not be included in the set of options affected by the "Select all" button.

  1. JSP file specimentube.jsp in resources/sampleproc/ updated in check box options for mutation analysis to display the new option.
  2. Javascript file specimentube.js in resources/sampleproc/ updated in function streg.submit() to obtain the mutation analysis selection for the new option from the form in JSP file specimentube.jsp and transfer it to servlet SpecimenTubeServlet.
  3. JSP file persinfo.jsp in resources/personal/ updated in check box options for mutation analysis to display the new option.
  4. Javascript file persinfo.js in resources/personal/ updated in function persinfo.submit() to obtain the mutation analysis selection for the new option from the form in JSP file persinfo.jsp and transfer it to servlet PersonalRegistrationServlet.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) with new value option for Annotationtype.MUTATION_ANALYSIS.
  6. Java class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "CreateSpecimenTubes" to obtain a list of selected mutation analysis values, that includes the new value option.
  7. Java class/file PersonalRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "CreateCase" to obtain a list of selected mutation analysis values, that includes the new value option.

comment:25 by olle, 6 years ago

(In [4731]) Refs #1029. MeLuDI updated in sample report servlet code with debug output intended to help fix bug that causes sample report generation to crash, when obtaining site data. However, the bug that should be investigated, disappeared after the update!

  1. Java servlet class/file SampleReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "overviewreport" by adding debug output containing the sites obtained from call of Site.getAllReportSites().
Last edited 6 years ago by olle (previous) (diff)

comment:26 by olle, 6 years ago

(In [4732]) Refs #1029. Specimen tube registration updated in the case section with new menu "Metastasis site". The new menu is placed below the "Project focus" menu.

  1. JSP file specimentube.jsp in resources/sampleproc/ updated in case section with new menu "Metastasis site".
  2. Javascript file specimentube.js in resources/sampleproc/ updated in function streg.submit() to obtain the metastasis site selection from the form in JSP file specimentube.jsp and transfer it to servlet SpecimenTubeServlet.
  3. JSP file persinfo.jsp in resources/personal/ updated in case section with new menu "Metastasis site".
  4. Javascript file persinfo.js in resources/personal/ updated in function persinfo.submit() to obtain the metastasis site selection from the form in JSP file specimentube.jsp and transfer it to servlet PersonalRegistrationServlet. Also, for an already registered case, the new menu will be disabled.
  5. JSP file case_summary.jsp in resources/reports/ updated in case section with new data row for value of metastasis site.
  6. Javascript file case_summary.js in resources/reports/ updated in function cs.caseInfoLoaded(response) to enter the value for metastasis site obtained for the case from servlet CaseSummaryServlet and make it available for display in the case summary JSP page.
  7. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final Annotationtype METASTASIS_SITE.
  8. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add chack for new annotation type Annotationtype.METASTASIS_SITE.
  9. Java class/file SpecimenTubeServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "CreateSpecimenTubes" to obtain metastasis value from form, and set annotation type Annotationtype.METASTASIS_SITE to that value.
  10. Java class/file PersonalRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "CreateCase" to obtain metastasis value from form, and set annotation type Annotationtype.METASTASIS_SITE to that value.
  11. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to obtain report value of metastasis site from sample by calling new private method String fetchMetastasisSite(DbControl dc, SnapshotManager manager, Sample s), and then set annotation type Annotationtype.METASTASIS_SITE to that value.
    b. New private method String fetchMetastasisSite(DbControl dc, SnapshotManager manager, Sample s) added. It returns a report string to use for a metastasis site value.

comment:27 by olle, 6 years ago

Summary of changes to MeLuDI so far:

(To be added later)

comment:28 by olle, 6 years ago

(In [4733]) Refs #1029. Code fork introduced for case/sample registration in SCAN-B-rec project:

  1. JSP file index.jsp in resources/ updated to add links to alternative JSP files specimentube_alt_rec.jsp and persinfo_alt_rec.jsp when active project is SCAN-B-rec.
  2. New JSP file specimentube_alt_rec.jsp in resources/sampleproc/ added. It is based on specimentube.jsp, but refers to new Javascript file specimentube_alt_rec.js.
  3. New Javascript file specimentube_alt_rec.js in resources/sampleproc/ added. It is based on `
  4. New JSP file persinfo_alt_rec.jsp in resources/personal/ added. It is based on persinfo.jsp, but refers to new Javascript file persinfo_alt_rec.js.
  5. New Javascript file persinfo_alt_rec.js in resources/personal/ added. It is based on persinfo.js.

comment:29 by olle, 6 years ago

(In [4734]) Refs #1029. Case/sample registration in SCAN-B-rec project updated for mutation analysis to only show option "TST170" and "Other", where "TST170" should be selected by default:

  1. JSP file specimentube_alt_rec.jsp in resources/sampleproc/ updated for mutation analysis to only show option "TST170" and "Other".
  2. Javascript file specimentube_alt_rec.js in resources/sampleproc/ updated for mutation analysis to have "TST170" selected by default. Function projectFocusOnChange() update to not set default values for other mutation analysis options.
  3. JSP file persinfo_alt_rec.jsp in resources/personal/ updated for mutation analysis to only show option "TST170" and "Other".
  4. Javascript file persinfo_alt_rec.js in resources/personal/ updated for mutation analysis to have "TST170" selected by default. Function projectFocusOnChange() update to not set default values for other mutation analysis options.

comment:30 by olle, 6 years ago

(In [4736]) Refs #1029. Updates due to version number change to "1.6.0a1".

  1. Version number changed to "1.6.0a1":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:31 by olle, 6 years ago

(In [4756]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:32 by olle, 6 years ago

(In [4757]) Refs #1029. MeLuDI updated in error message to refer to the correct file, when the configuration file isn't found:

  1. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to refer to file meludi-config.xml instead of labenv-config.xml, when the configuration file isn't found.

comment:33 by olle, 6 years ago

Design update of referral form generation:

  • Referral form generation should be updated to suit new referral form template files.
  • Now all referral template forms belong to one of two main types, where all templates of the same type have barcodes at the same position:
    a. Barcode non-sticker forms. Barcodes at top right and left (at slightly different height).
    b. Barcode sticker forms. Barcodes at top right and left (at slightly different height), plus barcodes on nine sticker labels at bottom of form, intended to be placed on sample tubes. The stickers will also have the case ID printed on the top and bottom of the short side of the label.
  • The barcode non-sticker forms will no longer be created with an extra blank page after each form in the PDF file, since all forms are on a single page.
  • Some of the referral forms for which templates exist, should not be included in the forms sets created as a batch job.
  • In the current version, the referral form sets will contain the following forms:
    Form set 1 (with label stickers): Biopsy form, Whole blood form, Follow up form.
    Form set 2: Consent report form.
Last edited 6 years ago by olle (previous) (diff)

comment:34 by olle, 6 years ago

(In [4767]) Refs #1029. Referral form generator update:

Design update of referral form generation:

  • Referral form generation updated to suit new referral form template files.
  • Now all referral template forms belong to one of two main types, where all templates of the same type have barcodes at the same position:
    a. Barcode non-sticker forms. Barcodes at top right and left (at slightly different height).
    b. Barcode sticker forms. Barcodes at top right and left (at slightly different height), plus barcodes on nine sticker labels at bottom of form, intended to be placed on sample tubes. The stickers will also have the case ID printed on the top and bottom of the short side of the label.
  • The barcode non-sticker forms will no longer be created with an extra blank page after each form in the PDF file, since all forms are on a single page.
  • Some of the referral forms for which templates exist, should not be included in the forms sets created as a batch job.
  • In the current version, the referral form sets will contain the following forms:
    Form set 1 (with label stickers): Biopsy form, Whole blood form, Follow up form.
    Form set 2: Consent report form.
  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. New private static final Strings REF_FORM_TEMPLATE_WHOLE_BLOOD, REF_FORM_TEMPLATE_FOLLOW_UP, TEMPLATE_FILENAME_START_WHOLE_BLOOD, and TEMPLATE_FILENAME_START_FOLLOW_UP defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetReferralTemplateInfo" to call method fetchMultipleTemplateFiles(...) for REF_FORM_TEMPLATE_CLIN_CHEM_BIOPSY, REF_FORM_TEMPLATE_WHOLE_BLOOD, and REF_FORM_TEMPLATE_FOLLOW_UP.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateReferralForms" to call methods createBiopsyClinChemForm(...), createWholeBloodForm(...), and createFollowUpForm(...).
    d. Private method void initializeRefFormTemplNameStartHashMap() updated by adding key/values pairs REF_FORM_TEMPLATE_WHOLE_BLOOD/TEMPLATE_FILENAME_START_WHOLE_BLOOD and REF_FORM_TEMPLATE_FOLLOW_UP/TEMPLATE_FILENAME_START_FOLLOW_UP.
    e. Private method PdfUtil createConsentReportForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) updated to call new method createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList).
    f. Private method PdfUtil createPadReferralForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) updated to call new method createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList).
    g. Private method PdfUtil createBiopsyClinChemForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) updated to call new method createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, String formTemplateName, List<String> formTemplateFileList).
    h. New private method PdfUtil createWholeBloodForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) calls new method createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, String formTemplateName, List<String> formTemplateFileList).
    i. New private method PdfUtil createFollowUpForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) calls new method createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, String formTemplateName, List<String> formTemplateFileList).
    j. New private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) added. It calls new private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, List<String> formTemplateFileList).
    k. New private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, List<String> formTemplateFileList) added. It creates a referral form without label sticker barcodes.
    l. New private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, String caseId, List<String> formTemplateFileList) added. It calls new private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, List<String> formTemplateFileList).
    m. New private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, List<String> formTemplateFileList) added. It creates a referral form with label sticker barcodes.

comment:35 by olle, 6 years ago

(In [4768]) Refs #1029. Referral form generation updated by removing menu for selecting referral variant, since the default "Kit 1 - Standard" will always be used. Also, instruction text for printing updated to recommend one-page printing for both batch 1 & 2 PDF files:

  1. JSP file generate-referral-forms.jsp in resources/personal/ updated:
    a. Instruction text updated to recommend one-page printing for both batch 1 & 2 PDF files.
    b. Step 1 form updated by removing menu for selecting referral variant, since the default "Kit 1 - Standard" will always be used.
  2. Javascript file generate-referral-forms.js in resources/personal/ updated:
    a. New constant refVariantDefault defined, set to value "kit1_standard".
    b. Functions initPage(), siteAndVariantOnChange(), initializeStep2(response), initializeStep2a(response), and generateReferralForms() updated not to refer to menu for selecting referral variant, and to set the value to that of new constant refVariantDefault.

comment:36 by olle, 6 years ago

(In [4773]) Refs #1029. Support for consent coupled to case item added, based on that used in Reggie. Code compiles, but might need to be updated, before it can be considered OK:

  1. Data access object file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type CONSENT added. It is of type String and is a Sample annotation.
    b. New annotation type CONSENT_DATE added. It is of type Date and is a Sample annotation.
  2. Data access object file Case.java in src/net/sf/basedb/meludi/dao/ updated by adding new public method void verifyConsent(DbControl dc, Annotationtype consentType).
  3. New data access object file Consent.java in src/net/sf/basedb/meludi/dao/ added.
  4. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add checks for new annotation types Annotationtype.CONSENT and Annotationtype.CONSENT_DATE, as well as adding these in check for annotation type category for Subtype.CASE.

comment:37 by olle, 6 years ago

(In [4774]) Refs #1029. Referral form generator updated to create a fixed number of follow-up forms for each case ID. The default number of forms to create is 8.

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. New private static final constant int NUM_FOLLOW_UP_FORMS_DEFAULT defined, and set equal to 8.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateReferralForms" to create a fixed number of follow-up forms for each case ID. The default number of forms to create is initially equal to value of constant NUM_FOLLOW_UP_FORMS_DEFAULT.

comment:38 by olle, 6 years ago

(In [4775]) Refs #1029. Referral form generator updated for forms with sticker labels to use smaller font size for bold text under barcode at upper right, and to place the text closer to the barcode (same size and distance as for the barcode and text to the upper left, except that the text at upper right is bold):

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated in private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String formTemplateName, List<String> formTemplateFileList) to use smaller font size for bold text under barcode at upper right, and to place the text closer to the barcode (same size and distance as for the barcode and text to the upper left, except that the text at upper right is bold).

comment:39 by olle, 6 years ago

(In [4779]) Refs #1029. Bugs fixed in Javascript for sample registration for SCAN-B-rec project (references to removed mutation analysis options are now commented out):

  1. Javascript file specimentube_alt_rec.js in resources/sampleproc/ updated by commenting out references to removed mutation analysis options.
  2. Javascript file persinfo_alt_rec.js in resources/personal/ updated by commenting out references to removed mutation analysis options.

comment:40 by olle, 6 years ago

(In [4780]) Refs #1029. Case summary updated to show consent info after hospital site info for case:

  1. JSP file case_summary.jsp in resources/reports/ updated by adding a row for consent data after hospital site info for case.
  2. Javascript file case_summary.js in resources/reports/ updated:
    a. Function caseInfoLoaded(response) updated by adding info on consent for case.
    b. New function asConsent(consent, consentDate) added. It returns info on consent and consent date, or a warning if either is missing.
    c. New function logError(section, err) added. It handles reported errors.
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated in private method void loadCaseInfo(DbControl dc, Case theCase) by loading consent annotations.

comment:41 by olle, 6 years ago

(In [4783]) Refs #1029. Referral form generator updated for new form versions. Barcode and text at upper right moved upwards, to leave more space to printed text underneath. Referral/case name at upper short side of sticker labels moved downwards, to leave more padding to upper border of sticker label:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String formTemplateName, List<String> formTemplateFileList) updated to move barcode and text at upper right upwards, to leave more space to printed text underneath.
    b. Private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String formTemplateName, List<String> formTemplateFileList) updated to move barcode and text at upper right upwards, to leave more space to printed text underneath. Also, referral/case name at upper short side of sticker labels moved downwards, to leave more padding to upper border of sticker label.

comment:42 by olle, 6 years ago

(In [4784]) Refs #1029. Referral form generator updated for non-sticker forms to have text/barcode sizes and placement equal to that for forms sticker labels:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated in private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String formTemplateName, List<String> formTemplateFileList) to have text/barcode sizes and placement equal to that for forms sticker labels.

comment:43 by olle, 6 years ago

(In [4785]) Refs #1029. Import of code for consent support, taken from Reggie project, with minor modifications to allow it to be compiled in MeLuDI (full functionality requires more code changes):

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" with new sub-section "Case & consent registration" with entry "1. Consent form registration" with link to new JSP file consentform.jsp when active project is SCAN-B-rec.
  2. New JSP file consentform.jsp in resources/personal/ added. It is linked to new javascript file consentform.js in resources/personal/.
  3. New javascript file consentform.js in resources/personal/ added.
    a. Function initializeStep2(event) calls ConsentFormServlet with command "GetCaseInfo" to obtain information on the entered case, which is processed by function caseInfoLoaded(response).
    b. Function submit() calls ConsentFormServlet with command "RegisterConsent" to register consent info.
  4. New java servlet class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ added.
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) supports command "GetCaseInfo", that returns a JSONObject with case info.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) supports command "RegisterConsent", that retrieves case info and entered consent data, and creates or updates the case item. This code needs to be updated to desired functionality.
  5. XML configuration file servlets.xml in META-INF updated by adding new java servlet class ConsentFormServlet to the servlet list.
  6. Utility class/file JsonUtil.java in src/net/sf/basedb/meludi/ updated with new public static method JSONObject parseRequest(HttpServletRequest request).
  7. Data access object file Subtype.java in src/net/sf/basedb/meludi/dao/ updated by adding new consent related Subtype items NO, NOT_ASKED, RETRACT, and RETRO_NO.
  8. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add checks for new sub types Subtype.NO, Subtype.NOT_ASKED, Subtype.RETRACT, and Subtype.RETRO_NO.

comment:44 by olle, 6 years ago

(In [4786]) Refs #1029. Consent registration for active project SCAN-B-rec updated to use its own set of JSP and Javascript files, to allow for project specific changes in the future:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards", sub-section "Case & consent registration" to have entry "1. Consent form registration" link to new JSP file consentform_alt_rec.jsp when active project is SCAN-B-rec.
  2. New JSP file consentform_alt_rec.jsp in resources/personal/ added. It is linked to new javascript file consentform_alt_rec.js in resources/personal/. Apart from this, it is initially identical to consentform.jsp.
  3. New javascript file consentform_alt_rec.js in resources/personal/ added. It is initially identical to consentform_alt_rec.js, except that alert() messages refer to the name of the new file.

comment:45 by olle, 6 years ago

(In [4787]) Refs #1029. Support for a pre-entry of a PAD number coupled to case item added. As a PAD number is coupled to a specimen item, the new annotation will allow a PAD number to be entered together with the case consent, and be used as default value for later registration of the specimen PAD number:

  1. Data access object file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type PAD_PRE_ENTRY added. It is of type String and is a Sample (Case) annotation.
  2. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation type Annotationtype.PAD_PRE_ENTRY and adding this in check for annotation type category for Subtype.CASE.

comment:46 by olle, 6 years ago

(In [4788]) Refs #1029. Case summary for active project SCAN-B-rec updated to use its own set of JSP and Javascript files, to allow for project specific changes. Initially, a data row is added for PAD pre-entry annotation for Case items:

  1. JSP file index.jsp in resources/ updated in section "Statistics and reporting wizards", sub-section "Case summary" to have case summary input field coupled to new JSP file case_summary_alt_rec.jsp when active project is SCAN-B-rec.
  2. Javascript file index.js in resources/ updated by adding event and button click handlers for alternative case name input field and button when active project is SCAN-B-rec.
  3. New JSP file case_summary_alt_rec.jsp in resources/reports/ added. It is linked to new javascript file case_summary_alt_rec.js in resources/reports/. It has a new data row added for a PAD pre-entry in the Case section. The new entry is considered confidential, in analogy with PAD number for specimen, and requires Patient Curator or Administrator role to be shown.
  4. New javascript file case_summary_alt_rec.js in resources/reports/ added.
  5. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated in private method void loadCaseInfo(DbControl dc, Case theCase) by loading annotation Annotationtype.PAD_PRE_ENTRY.

comment:47 by olle, 6 years ago

(In [4789]) Refs #1029. Consent registration for active project SCAN-B-rec updated to update consent information for existing case. Also an optional PAD pre-entry value is now handled together with consent data for the above project. Note that part of the code is still unused, and may be removed in the future:

  1. JSP file consentform_alt_rec.jsp in resources/personal/ updated with input field for PAD pre-entry.
  2. Javascript file consentform_alt_rec.js in resources/personal/ updated:
    a. Function caseInfoLoaded(response) updated to enter PAD pre-entry value for existing case item in the PAD pre-entry input field, and disable the latter.
    b. Function submit() updated to include value entered in the PAD pre-entry nput field in the JSON info sent to ConsentFormServlet with JSON key "padPreEntry".
  3. Java servlet class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to load annotation Annotationtype.PAD_PRE_ENTRY for existing case to JSON data with JSON key "padPreEntry".
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterConsent" to update an existing case with entered data for consent and PAD pre-entry, and to add entered value for PAD pre-entry as value for annotation Annotationtype.PAD_PRE_ENTRY for a newly created case.

comment:48 by olle, 6 years ago

(In [4790]) Refs #1029. Consent registration for active project SCAN-B-rec updated by clarifying displayed text, when no consent information is found for a case:

  1. JSP file consentform_alt_rec.jsp in resources/personal/ updated by clarifying displayed text "There is currently no information about this case" to "There is currently no consent information about this case".

comment:49 by olle, 6 years ago

(In [4791]) Refs #1029. MeLuDI updated in sample registration JSP files by adding description of FFPE option "block" by adding Swedish notation in parenthesis.:

  1. JSP files persinfo.jsp and persinfo_alt_rec.jsp in resources/personal/ updated by adding description of FFPE option "block" by adding Swedish notation in parenthesis.
  2. JSP files specimentube.jsp and specimentube_alt_rec.jsp in resources/sampleproc/ updated by adding description of FFPE option "block" by adding Swedish notation in parenthesis.

comment:50 by olle, 6 years ago

(In [4792]) Refs #1029. Updates due to version number change to "1.6.0a2".

  1. Version number changed to "1.6.0a2":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:51 by olle, 6 years ago

(In [4793]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:52 by olle, 6 years ago

(In [4795]) Refs #1029. Support for blood items added, based on that used in Reggie. Code compiles, but might need to be updated, before it can be considered OK:

  1. Data access object file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type BLOOD_SAMPLING_DATETIME added. It is of type Timestamp and is a Sample annotation.
  2. New data access object file Blood.java in src/net/sf/basedb/meludi/dao/ added.
  3. New data access object file BloodDna.java in src/net/sf/basedb/meludi/dao/ added.
  4. Data access object file Subtype.java in src/net/sf/basedb/meludi/dao/ updated by adding new blood related Subtype items BLOOD and BLOOD_DNA, of type Item.SAMPLE and Item.EXTRACT, respectively.
  5. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add checks for new sub types Subtype.BLOOD and Subtype.BLOOD_DNA. Also updated by adding check for new annotation type Annotationtype.BLOOD_SAMPLING_DATETIME.

comment:53 by olle, 6 years ago

(In [4796]) Refs #1029. Case summary for active project SCAN-B-rec updated by reporting information on blood and blood DNA items:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated with new data sections for blood and blood DNA info.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by adding blood and blood DNA info.
  3. Data access object file Patient.java in src/net/sf/basedb/meludi/dao/ updated by adding new public static method Patient findByBlood(DbControl dc, Blood blood).
  4. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to add info for blood and blood DNA items.
    b. New private method void loadBloodInfo(DbControl dc, Blood blood) added.
    c. New private method void loadBloodDnaInfo(DbControl dc, BloodDna dna) added.

comment:54 by olle, 6 years ago

(In [4807]) Refs #1029. MeLuDI updated with new configuration flags uses-referral-creation and uses-site-specific-referral-templates, indicating if the project uses referral creation, and if so, uses site specific referral templates.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tags <uses-referral-creation> and <uses-site-specific-referral-templates>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static methods Boolean fetchUsesReferralCreation(int activeProjectId) and Boolean fetchUsesSiteSpecificReferralTemplates(int activeProjectId). They call private static methods ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration values are returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration values "uses-referral-creation" and "uses-site-specific-referral-templates" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variables and corresponding public accessor methods for new configuration values.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration values for flags indicating use of referral creation and site specific referral templates for active project in returned JSONObject for JSON keys "usesReferralCreation" and "usesSiteSpecificReferralTemplates", respectively.

comment:55 by olle, 6 years ago

(In [4808]) Refs #1029. Referral generation updated regarding in what BASE directory to look for referral form template files. Now the referral form template top directory is used, unless configuration flag uses-site-specific-referral-templates has value true, in which case sub-directory named after the site prefix is used:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated in private method List<File> fetchReferralFormTemplateFileList(DbControl dc, String caseIdDigits, String formTemplateName) to look for referral template files in the referral form template top directory, unless configuration flag uses-site-specific-referral-templates has value true, in which case it looks in a sub-directory named after the site prefix.

comment:56 by olle, 6 years ago

Design note:

  • The update in change set [4808] will drastically simplify the referral template file management for projects like SCAN-B-rec, that do not use site-specific referral templates. Now a template can be updated by only exchanging a single file in the template top directory in the BASE file system (directory ReferralFormTemplatesInUse/ for the active project), while you previously had to exchange one file per site sub-directory (as an example, project SCAN-B-rec currently has support for 14 hospital sites).

comment:57 by olle, 6 years ago

Design update for referral generation:

  • Requests have been made that it should be possible to manually write a date on the lower short side of the adhesive stickers on some of the referral forms. To simplify this, new referral form templates will be provided, with vertical sticker text moved 3-4 mm upwards, and a short horizontal line being added near the bottom of each sticker for the date entry. The following updates are desired for the generated bar code/text:
    a. The bar code and accompanying text should analogously be moved upwards to make room for the date entry.
    b. The horizontal referral/case ID on the top of the sticker should be moved a little upwards, in order to not lie too close to the vertical text on the sticker, after the former was moved upwards.
    c. Both the upper and lower horizontal referral/case ID strings on the sticker need to be moved about 2 mm to the left, in order to lie centered in relation to the added short line near the bottom of the sticker (the line lies about 1 mm above the referral/case ID string on the bottom of the sticker, so the former does not need to be moved downwards).
  • A fixed number of biopsy forms for each case ID should be created. The default number of forms to create is 2.
Last edited 6 years ago by olle (previous) (diff)

comment:58 by olle, 6 years ago

(In [4809]) Refs #1029. Referral form generator updated for new form versions. Barcode and text on sticker labels updated, in order to make room for a manually added date entry near the bottom of the sticker:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String formTemplateName, List<String> formTemplateFileList) updated to move sticker barcode and text upwards, to make room for a manual date entry. Also, referral/case name at upper short side of sticker labels moved upwards, to leave more padding to the new position of vertical text. Both upper and lower referral/case name at short side of sticker labels moved to the left, in order to lie centered in relation to the added short line near the bottom of the sticker.

comment:59 by olle, 6 years ago

(In [4810]) Refs #1029. Referral form generator updated to create a fixed number of biopsy forms for each case ID. The default number of forms to create is 2.

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. New private static final constant int NUM_BIOPSY_FORMS_DEFAULT defined, and set equal to 2.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateReferralForms" to create a fixed number of biopsy forms for each case ID. The default number of forms to create is initially equal to value of constant NUM_BIOPSY_FORMS_DEFAULT.

comment:60 by olle, 6 years ago

(In [4811]) Refs #1029. Consent registration updated when creating a new case item to check if the hospital site should be obtained from a site prefix in the case name, in which case the site annotation for the created case item will be set to this value:

  1. Java servlet class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterConsent" when creating a new case item to check if the hospital site should be obtained from a site prefix in the case name, in which case the site annotation for the created case item will be set to this value.

comment:61 by olle, 6 years ago

(In [4812]) Refs #1029. Updates due to version number change to "1.6.0a3".

  1. Version number changed to "1.6.0a3":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:62 by olle, 6 years ago

(In [4813]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:63 by olle, 6 years ago

(In [4822]) Refs #1029. MeLuDI updated with new configuration variables blood-box-prefix and blood-box-num-digits, specifying a prefix for blood storage boxes and number of digits in the serial number part of the name.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tags <blood-box-prefix> and <blood-box-num-digits>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static methods String fetchBloodBoxPrefix(int activeProjectId) and Integer fetchBloodBoxNumDigits(int activeProjectId). They call private static methods ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration values are returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration values "blood-box-prefix" and "blood-box-num-digits" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variables and corresponding public accessor methods for new configuration values.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration values for flags indicating use of referral creation and site specific referral templates for active project in returned JSONObject for JSON keys "bloodBoxPrefix" and "bloodBoxNumDigits", respectively.

comment:64 by olle, 6 years ago

Design discussion - Icon links to case summary from BASE pages:

  • In change set [4788] case summary for active project SCAN-B-rec was updated to use its own set of JSP and Javascript files, to allow for project specific changes. This was accomplished by letting JSP file index.jsp in resources/ select either JSP file case_summary.jsp or case_summary_alt_rec.jsp as the button target for the case summary input field, depending on whether the active project differed from "SCAN-B-rec" or not (this solution might be changed in the future for one using configuration settings). However, the icon link to case summary in some BASE tables and property tabs, currently link to the original case_summary.jsp JSP file. This should be updated to also select the proper case summary version, depending on the project name.

The following files are instrumental in 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
  • File src/net/sf/basedb/meludi/extensions/MeludiListColumnsFactory.java controls the case summary icon link in a column in BASE sample lists.
  • Files src/net/sf/basedb/meludi/extensions/CaseSummaryButtonFactory.java and resources/scripts/case-summary.js control the case summary icon link in tool bar in sample property tabs. The first sets values of named parameters, that are used by the second, that selects the case summary JSP file. By updating the extension to set the name of the active project to a new parameter, script case-summary.js can access this and select the case summary version depending on the project name.
  • File resources/reports/case_summary_hook.jsp controls the case summary link in sample overview tabs.
Last edited 6 years ago by olle (previous) (diff)

comment:65 by olle, 6 years ago

(In [4827]) Refs #1029. MeLuDI updated in case summary icon link in a column in BASE sample lists to open special version of case summary, if active project is SCAN-B-rec:

  1. Java extension class/file MeludiListColumnsFactory.java in src/net/sf/basedb/meludi/extensions/ updated in public method String getValue(DbControl dc, BioMaterial bm) to give link to JSP file case_summary_alt_rec.jsp in resources/reports/, if active project is SCAN-B-rec.

comment:66 by olle, 6 years ago

(In [4828]) Refs #1029. MeLuDI updated in case summary icon link in tool bar in BASE sample property tabs to open special version of case summary, if active project is SCAN-B-rec:

  1. Java extension class/file CaseSummaryButtonFactory.java in src/net/sf/basedb/meludi/extensions/ updated in public method ButtonAction[] getActions(InvokationContext context) to set value of new parameter "data-project-name" to name of active project.
  2. Javascript file case-summary.js in resources/scripts/ updated in function showCaseSummary(event) to obtain name of active project from value of parameter "data-project-name" (addressed as "project-name"), and give link to JSP file case_summary_alt_rec.jsp in resources/reports/, if active project is SCAN-B-rec.

comment:67 by olle, 6 years ago

(In [4829]) Refs #1029. MeLuDI updated to present correct project-specific info in hover text for case name input field for case summary in outermost JSP page. This functionality previously existed, but was broken for projects other than SCAN-B-rec, when support for a special case summary JSP file was added, when the latter project was active:

  1. Javascript file index.js in resources/ updated in function onConfiguration(request) to obtain name of active project from configuration information, and modify the hover text of correct case name input field.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static method String fetchActiveProjectName(int activeProjectId). It calls private static method String fetchProjectName(int activeProjectId) to obtain the name of the active project, which is then returned.
  3. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store name of active project in returned JSONObject for JSON key "name".

comment:68 by olle, 6 years ago

(In [4830]) Refs #1029. MeLuDI updated in case summary link in BASE sample overview tabs to open special version of case summary, if active project is SCAN-B-rec. The case summary information will open in the same pane as the original link:

  1. JSP file case_summary_hook.jsp in resources/reports/ updated to have case summary link coupled to JSP file case_summary_alt_rec.jsp instead of case_summary.jsp, when active project is SCAN-B-rec.
  2. Javascript file case_summary.js in resources/reports/ updated to check if Doc.element('caseName') differs from null, before referencing it.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated to check if Doc.element('caseName') differs from null, before referencing it.

comment:69 by olle, 6 years ago

(In [4831]) Refs #1029. Case summary for active project SCAN-B-rec updated to find blood info and what information is reported on blood items:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in data section for blood by adding row for storage box information.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by adding blood storage box info.
  3. Data access object file Blood.java in src/net/sf/basedb/meludi/dao/ updated:
    a. Public static method List<Blood> findAllByCaseName(DbControl dc, String name) updated to not restrict the length of the input case name, before using it in a database query for related blood items.
    b. Protected method void initJSON(JSONObject json) and public method JSONObject loadBioPlateLocation() added, in order to obtain storage box info for a blood item.
  4. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to call public static method List<Blood> findAllByCaseName(DbControl dc, String name) in data access object class Blood to obtain information on blood items related to the case item.
    b. Private method void loadBloodInfo(DbControl dc, Blood blood) updated to call public method JSONObject loadBioPlateLocation() in data access object class Blood to obtain storage box information on the blood item. Also obtaining value of sampling date annotation.

comment:70 by olle, 6 years ago

Base-line registration wizard - Functional specification:

  • The Base-line registration wizard should be placed in the section for "Personal information wizards", as patient information and PAD numbers will be used. The wizard will be based on the personal registration wizard, with the following modifications:

    a. Instead of specimen tubes, a number of tubes with whole blood (default 2) will be expected, with arrival and sampling dates to be stored with it.
    b. The tubes will be assigned locations in a blood box.
    c. The created blood items will inherit the consent of the case item.
    d. Two check boxes for existing CTC (circulating tumor cells) and ctDNA (circulating tumor DNA) will be present. At the time of writing, it has not been decided if the annotations for these Boolean variables should be connected to the case item or the blood items, or both.
    e. A check box indicating that a referral for FFPE sections will be created.
    f. A PAD input field for the FFPE referral should exist, pre-filled with the value of the PAD pre-entry annotation for the case, if existing.

comment:71 by olle, 6 years ago

(In [4832]) Refs #1029. First version of the Base-line registration wizard, based on the personal registration wizard. Currently no annotations are created for the CTC/ctDNA values, and no FFPE referral form is created:

  1. JSP file index.jsp in resources/ updated:
    a. Section "Personal information wizards" in sub-section "Case & consent registration" updated with new entry "Base-line registration" with link to new JSP file baseline_alt_rec.jsp when active project is SCAN-B-rec.
    b. Section "Sample processing wizards" updated in sub-section "Case registration" by exchanging wizard links with information text referring to the personal registration wizards.
  2. New JSP file baseline_alt_rec.jsp in resources/personal/ added. It is linked to new javascript file baseline_alt_rec.js in resources/personal/.
  3. New javascript file baseline_alt_rec.js in resources/personal/ added. It calls BaseLineRegistrationServlet.
  4. New java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ added. It is based on PersonalRegistrationServlet.java.
  5. XML configuration file servlets.xml in META-INF updated by adding new java servlet class BaseLineRegistrationServlet to the servlet list.

comment:72 by olle, 6 years ago

(In [4833]) Refs #1029. Base-line registration wizard updated to create FFPE referral form at registration:

  1. Javascript file baseline_alt_rec.js in resources/personal/ updated:
    a. Function submit() updated by placing most of the code in new function submit2(). If check box for FFPE referral is checked, ReferralGeneratorServlet is called with command "GenerateFfpeReferralForm" with start case name set equal to current case name, number of form sets set equal to 1, PAD number equal to value in "PAD" input field, and callback function to submit2(), otherwise function submit2() is called directly.
    b. New function submit2() added, containing bulk of the code previously in function submit().
  2. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New private static final constant String REF_FORM_TEMPLATE_FFPE_REFERRAL set equal to "ffpe-referral".
    b. New private static final constant String TEMPLATE_FILENAME_START_FFPE_REFERRAL set equal to "SCAN-B-rec_FFPE".
    c. Private method void initializeRefFormTemplNameStartHashMap() updated to updated hash map refFormTemplNameStartHM with key REF_FORM_TEMPLATE_FFPE_REFERRAL and value TEMPLATE_FILENAME_START_FFPE_REFERRAL.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GenerateFfpeReferralForm". It calls new private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, String caseId, String pad, List<String> formTemplateFileList).
    e. New private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, String caseId, String pad, List<String> formTemplateFileList) added. It calls new private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String pad, List<String> formTemplateFileList).
    f. New private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String pad, List<String> formTemplateFileList). It is based on private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, List<String> formTemplateFileList), but also adds the chosen PAD number under the case number bar code and text.

comment:73 by olle, 6 years ago

(In [4834]) Refs #1029. Updates due to version number change to "1.6.0a4".

  1. Version number changed to "1.6.0a4":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:74 by olle, 6 years ago

(In [4835]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:75 by olle, 6 years ago

(In [4836]) Refs #1029. Base-line registration wizard updated with bug-fix to set correct default values for number of tubes and PAD also when the case item has no specimens:

  1. Javascript file baseline_alt_rec.js in resources/personal/ updated in function initializeStep3() to set correct default values for number of tubes and PAD also when the case item has no specimens.

comment:76 by olle, 6 years ago

(In [4837]) Refs #1029. Updates due to version number change to "1.6.0a5".

  1. Version number changed to "1.6.0a5":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:77 by olle, 6 years ago

(In [4838]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:78 by olle, 6 years ago

Design update:

  • At SCAN-B-rec/MeLuDI meeting 2018-06-07 a number of decisions were made, that affect the MeLuDI software. In order to simplify access to other researchers in the future, without revealing the original patient/sample keys, it was decided to try a new item identification model in the LIMS system:
  1. The current referral ID, "Studielöpnummer" ("Study serial number") will be printed on the referrals, and entered in the consent registration wizard, but the created case ID will be created independently. The latter will not have a site ID as part of the name. New configuration variables for the referral ID prefix and number of digits will be needed, but the values will be set the current ones for the case item, while the case name prefix and number of digits will be modified (keeping the case item configuration variables is preferable from a programming view, since the latter are referenced at several places in the existing code).
  2. The consent registration wizard will now include personal number, family name, and all first names of the patient. The patient item will be registered in this wizard, instead of in the baseline registration wizard.
  3. Since the case name now can be different from the referral ID, the former will have to keep track of the latter. Access to the referral ID for a case should be coupled to a more restrictive user role, e.g. patient curator.
  4. Since the case name now won't include a site prefix, while the case item still contains a site annotation, the latter might also have to be coupled to a more restrictive user role, e.g. patient curator.
  5. Not directly related to the non-disclosure of the patient/sample keys, it has been discussed that samples of different types, e.g. specimen and blood, should differ in names by a prefix, instead of the current practice of a suffix to the case name (".1", ".2", etc. for specimen; ".b", ".b2", etc. for blood). The reason this is that it would simplify communication between researchers, according the type of sample was discussed. The specimen can still be identified by a suffix to the case name, while blood samples will have a new prefix (and number series).
Last edited 6 years ago by olle (previous) (diff)

comment:79 by olle, 6 years ago

(In [4839]) Refs #1029. MeLuDI updated with new configuration variables referral-prefix and referral-num-digits, specifying a prefix for referral ID and number of digits in the serial number part of the name.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tags <referral-prefix> and <referral-num-digits>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static methods String fetchReferralPrefix(int activeProjectId) and Integer fetchReferralNumDigits(int activeProjectId). They call private static methods ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration values are returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration values "referral-prefix" and "referral-num-digits" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variables and corresponding public accessor methods for new configuration values.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration values for referral prefix and number of digits for active project in returned JSONObject for JSON keys "referralPrefix" and "referralNumDigits", respectively.

comment:80 by olle, 6 years ago

(In [4840]) Refs #1029. Support for a referral ID coupled to case item added. The new annotation allows the case item to have a name unrelated to the referral ID:

  1. Data access object file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type REFERRAL_ID added. It is of type String and is a Sample (Case) annotation.
  2. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation type Annotationtype.REFERRAL_ID and adding this in check for annotation type category for Subtype.CASE. The new annotation will be coupled to the Patient Curator role.

comment:81 by olle, 6 years ago

(In [4841]) Refs #1029. Case summary for active project SCAN-B-rec updated by adding a data row for a referral ID annotation for Case items:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated by adding a new data row for a referral ID in the Case section. The new entry is considered confidential, and requires Patient Curator or Administrator role to be shown.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) to add value for JSON key "referralId" to the data row for this Case annotation.
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated in private method void loadCaseInfo(DbControl dc, Case theCase) by loading annotation Annotationtype.REFERRAL_ID and couple the value to JSON key "referralId".

comment:82 by olle, 6 years ago

(In [4842]) Refs #1029. Case summary updated in the Case section to place data row for hospital site below row for consent, and for active project equal to SCAN-B-rec to regard the information as confidential, requiring Patient Curator role to inspect it:

  1. JSP file case_summary.jsp in resources/reports/ to place data row for hospital site below row for consent.
  2. JSP file case_summary_alt_rec.jsp in resources/reports/ to place data row for hospital site below row for consent, and to regard the information as confidential, requiring Patient Curator role to inspect it.

comment:83 by olle, 6 years ago

(In [4860]) Refs #1029. Consent registration for active project SCAN-B-rec updated to use independent referral ID and case name, and to support simultaneous registration of patient data:

  1. JSP file consentform_alt_rec.jsp in resources/personal/ updated:
    a. Step 1 updated to expect input of a referral ID.
    b. Step 2 updated with fields for corresponding case name and personal number, as well as calendar link for entering consent data.
    c. New step 3 will allow input of patient data.
  2. Javascript file consentform_alt_rec.js in resources/personal/ updated:
    a. Function initPage() updated with event handlers for new input fields and wizard steps.
    b. Function onConfiguration(request) updated to call servlet ConsentFormServlet instead of LabelGenerationServlet with command "CountCases".
    c. Function caseInfoLoadedStep1(response) updated to expect input of referral ID separate from case name.
    d. Function validateStep1(event) updated to check valid input of referral ID instead of case name.
    e. New function referralIdOnChange() added. It checks that input referral ID is valid, after it calls servlet ConsentFormServlet with command "GetCaseInfo".
    f. Function initializeStep2(event) updated to send referral ID with call of servlet ConsentFormServlet with command "GetCaseInfo".
    g. Function caseInfoLoaded(response) updated to get case name from response instead of input field, and to add case and patient data into input fields, if the former are obtained from the response.
    h. New function personalNumberOnChange() added. It checks and processes the input personal number.
    i. New function initializeStep3(event) added. It calls servlet ConsentFormServlet with command "GetPatientInfo".
    j. New function patientInfoLoaded(response) added. It enters obtained patient data into input fields.
    k. New function nameOnChange(event) added.
    l. New function validateStep3(event) added.
    m. Function submit() updated to obtain referral ID and patient data and transfer those when calling servlet ConsentFormServlet with command "RegisterConsent".
  3. Data access object file Case.java in src/net/sf/basedb/meludi/dao/ updated with new public static method Case findByReferralId(DbControl dc, String referralId).
  4. Java servlet class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with command "CountCases".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated in command "GetCaseInfo" to get case info from referral ID and to include patient info.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with command "GetPatientInfo".
    d. New private method String fetchNewCaseName(DbControl dc) added. It calls new private method String fetchHighestCaseName(DbControl dc) to get the current highest case name, after which it returns a new case name with incremented serial number.
    e. New private method String fetchHighestCaseName(DbControl dc) added. It returns the highest case name for the active project.
    f. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterConsent" to call new private method BioSource getOrCreatePatient(DbControl dc, JSONObject jsonPat, JSONArray jsonMessages) to obtain a new patient item, if needed. Also, a new case item is updated with the referral ID as annotation, and the hospital site value is set from the value of the latter.
    g. New private method BioSource getOrCreatePatient(DbControl dc, JSONObject jsonPat, JSONArray jsonMessages) added. It creates a patient item from the given patient data.

comment:84 by olle, 6 years ago

(In [4861]) Refs #1029. Link to already existing label generation wizard re-activated:

  1. JSP file index.jsp in resources/ updated in section "Sample processing wizards" in sub-section "Case registration" with entry "Create label file for a number of new cases" with link to JSP file labelgeneration.jsp in resources/sampleproc/.

comment:85 by olle, 6 years ago

(In [4862]) Refs #1029. Base-line registration wizard updated to obtain info on blood samples:

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to obtain info on blood samples related to the case item, among other methods by calling new private method void loadBloodInfo(DbControl dc, Blood blood).
    b. New private method void loadBloodInfo(DbControl dc, Blood blood) added. It adds blood sample data as annotations to the blood item.

comment:86 by olle, 6 years ago

(In [4865]) Refs #1029. Referral generation updated for input of a referral ID instead of a case ID. Also, patient data is now entered in the generated FFPE referral form:

  1. JSP file generate-referral-forms.jsp in resources/personal/ updated in input text to refer to a referral ID instead of a case ID. Also change of a variable name, in order not to refer to the SCAN-B project.
  2. Javascript file generate-referral-forms.js in resources/personal/ updated to to process the input referral ID using configurations for prefix and number of digits for referrals, instead of sample items.
  3. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated with new public static method String fetchReferralDigits(String referralId, int activeProjectId). It obtains the digit part of a referral ID by removing the optional referral prefix.
  4. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated. Note that in most cases, old variable names referring to a case ID has been retained, although the actual value is now a referral ID. This choice was made, in order to highlight the critical code changes; change of variable names might be performed at a later time:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "UpdateUsedCaseIdDigitsList", "GenerateReferralForms", "GenerateFfpeReferralForm", and "DownloadFormBatchFile" for input of a referral ID instead of a case ID.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeReferralForm" to obtain patient data from patient related to case related to input referral ID, and transfer the patient data as arguments when calling updated private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, String caseId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList).
    c. Private method void updateReferralFormLogFile(DbControl dc, String referralVariant, String startcaseIdDigits, int nofFormSets, List<String> formTemplateFileList) updated to expect input of a referral ID instead of a case ID.
    d. Private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, String caseId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) updated with new arguments for patient data, and to expect input of a referral ID instead of a case ID, as well as to transfer the argument patient data to arguments in call of updated private method private PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList).
    e. Private method private PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) updated with new arguments for patient data, and to expect input of a referral ID instead of a case ID. Also, personal number, family name, and all first names are printed in the upper right section of the created referral form.
    f. Several other private methods updated to expect input of a referral ID instead of a case ID.

comment:87 by olle, 6 years ago

(In [4866]) Refs #1029. Referral generation updated for generation of FFPE referral form to print personal number with bold text, and with a hyphen "-" before the last four digits:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeReferralForm" to add a hyphen "-" before the last four digits in the personal number.
    b. Private method private PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) updated to print personal number with bold text.

comment:88 by olle, 6 years ago

(In [4867]) Refs #1029. MeLuDI updated with new configuration variable blood-item-prefix, specifying a specific prefix for a blood item (previously the sample item prefix was used also for the latter).

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tag <blood-item-prefix>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static method String fetchBloodItemPrefix(int activeProjectId). It calls private static method ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration value is returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration value "blood-item-prefix" for each project from the meludi-config.xml configuration file, and store the value in new instance variable in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variable and corresponding public accessor methods for the new configuration value.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration value for blood item prefix for active project in returned JSONObject for JSON key "bloodItemPrefix".

comment:89 by olle, 6 years ago

(In [4868]) Refs #1029. Data access object file Blood.java updated in case-related methods to replace sample item prefix with blood item prefix before performing database search:

  1. Data access object file Blood.java in src/net/sf/basedb/meludi/dao/ updated:
    a. Public static method Blood findByCaseName(DbControl dc, String name, boolean useBloodSampleAnnotation) updated to replace sample item prefix with blood item prefix before performing database search.
    b. Public static method List<Blood> findAllByCaseName(DbControl dc, String name) updated to replace sample item prefix with blood item prefix before performing database search.

comment:90 by olle, 6 years ago

(In [4869]) Refs #1029. Label generation updated to optionally create labels for blood tubes:

  1. JSP file labelgeneration.jsp in resources/sampleproc/ updated by adding a menu for tube content type, with options "Specimen" or "Blood". The default option is "Specimen".
  2. Javascript file labelgeneration.js in resources/sampleproc/ updated in function doExport(preview) to add value for tube content type selection in the data set sent to servlet LabelGenerationServlet with command "GetLabelFile".
  3. Java servlet class/file LabelGenerationServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "CountCases" by adding value of blood item prefix for JSON key "bloodItemPrefix".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetLabelFile" by checking value of parameter "tubeContentType", and if it equals "Blood" exchange sample item prefix for blood item prefix, and add suffix ".b" for sample tubes (not printing digit "1" for the first tube) for the text on the labels.

comment:91 by olle, 6 years ago

(In [4870]) Refs #1029. Base-line registration wizard updated by removing patient registration (now performed during consent registration) and using new name prefix for blood samples:

  1. JSP file baseline_alt_rec.jsp in resources/personal/ updated by removing fields for patient registration.
  2. Javascript file baseline_alt_rec.js in resources/personal/ updated:
    a. New global variable bloodItemPrefix added.
    b. Function initPage() updated by removing references to the removed patient registration step.
    c. Function onConfiguration(request) updated by setting values of global variables for sample itme prefix, sample item number of digits, and blood item prefix. Call of LabelGenerationServlet exchanged for call of function caseNameOnChange().
    d. Function caseInfoLoadedStep1(response) updated to set value of blood item prefix from response, in case this function should be used again.
    e. Function onCaseInfoLoaded(response) updated by commenting out code related to hospital site and personal number.
    f. Function validateStep1(event) updated by removing references to personal number.
    g. Function initializeStep3() renamed initializeStep2() and commenting out code related to patient info.
    h. Function validateStep3(event) renamed validateStep2(event).
    i. Function initializeStep4(event) renamed initializeStep3(event).
    j. Function fetchTubeName(tubeContentType, caseInfo, tubeIndex) updated when tube content type is blood to exchange sample item prefix for blood item prefix in the tube name.
    k. Function submit() updated to use referral ID when calling ReferralGeneratorServlet to create an FFPE referral form, and to skip patient info.
  3. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to add referral ID for case from annotation value.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "CreateCase" to create link to existing patient item.
    c. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "UpdateCase" to create link to patient item related to case.

comment:92 by olle, 6 years ago

(In [4871]) Refs #1029. Referral generation updated for generation of FFPE referral form to print patient names with bold text, and to place them closer to the printed line on the referral template. Also, in order to fit new header locations on the updated referral template, the personal number and referral ID with bar code are moved downwards:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method private PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String caseId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) updated to print patient names with bold text, and to place them closer to the printed line on the referral template. Also, in order to fit new header locations on the updated referral template, the personal number and referral ID with bar code are moved downwards.

comment:93 by olle, 6 years ago

(In [4872]) Refs #1029. Updates due to version number change to "1.6.0a6".

  1. Version number changed to "1.6.0a6":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:94 by olle, 6 years ago

Design update:

  • A number of modifications of the MeLuDI software has been decided at SCAN-B-rec/MeLuDI meeting 2018-06-26:
  1. The wizard for referral form generation should be placed first in the section for "Personal information wizards", since it is normally the first to be used.
  2. Referral form generation should be extended to create multi-paged PDF forms with patient information. The printing should normally be double-sided on as many standard paper sheets as is necessary.
    a. If the number of pages in the form is odd, an extra blank page will be added at the end of each form, to make sure that no sheet contains pages belonging to forms for different patients.
    b. To allow automatic stapling of sheets belonging to a single patients, these forms should be stored in a separate PDF file, and not included in the PDF file for generated consent forms, that is also to be printed on standard paper.
  3. Blood item names should not have suffix "b", when a unique prefix is used to identify the sample as a blood sample.
    a. Since this configuration might differ between different projects, suffix "b" should only be omitted, when the blood and sample item prefixes differ.
    b. By convention, the first blood sample name previously only had suffix ".b" with an implicit "1" at the end (following blood sample names have suffixes ".b2", ".b3", etc.). If suffix "b" should be omitted, the first blood sample should have suffix ".1", i.e. the previously implicit "1" should now be shown.
  4. Consent registration should be updated with a checkbox for "Diagnosis confirmed".
Last edited 6 years ago by olle (previous) (diff)

comment:95 by olle, 6 years ago

(In [4873]) Refs #1029. Section "Personal information wizards" updated by placing the wizard for referral form generation first, since it is normally the first to be used:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by placing the wizard for referral form generation first.

comment:96 by olle, 6 years ago

(In [4874]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:97 by olle, 6 years ago

(In [4875]) Refs #1029. MeLuDI updated with public convenience method to check if configuration values for blood and sample item prefixes differ:

  1. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static method boolean bloodAndSampleItemPrefixesDiffer(int activeProjectId). It obtains the blood and sample item prefixes from the configuration, and checks if they differ. For this comparison, a null value for a prefix is considered equal to an empty string.

comment:98 by olle, 6 years ago

(In [4876]) Refs #1029. Label generation updated to use same suffix for blood and sample item names, if blood and sample item prefixes differ:

  1. Java servlet class/file LabelGenerationServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetLabelFile" by using same suffix for blood and sample item names, if blood and sample item prefixes differ.

comment:99 by olle, 6 years ago

(In [4877]) Refs #1029. Data access object file Blood.java updated by omitting "b" in item name suffix, when performing a database search for blood samples. and blood and sample item prefixes differ:

  1. Data access object file Blood.java in src/net/sf/basedb/meludi/dao/ updated in public static method Blood findByCaseName(DbControl dc, String name, boolean useBloodSampleAnnotation) by omitting "b" in item name suffix, when performing a database search for blood samples. and blood and sample item prefixes differ.

comment:100 by olle, 6 years ago

(In [4878]) Refs #1029. Base-line registration wizard updated by omitting "b" and showing otherwise implicit "1" in item name suffix for blood samples, if blood and sample item prefixes differ:

  1. Javascript file baseline_alt_rec.js in resources/personal/ updated in function fetchTubeName(tubeContentType, caseInfo, tubeIndex) by omitting "b" and showing otherwise implicit "1" in item name suffix for blood samples, if blood and sample item prefixes differ.

comment:101 by olle, 6 years ago

(In [4879]) Refs #1029. Consent registration for active project SCAN-B-rec updated with checkbox for "Diagnosis confirmed", which value is stored in a new Boolean annotation for the Case item.

  1. JSP file consentform_alt_rec.jsp in resources/personal/ updated with new checkbox "Diagnosis confirmed" below consent details. Default is for the checkbox to not be checked.
  2. Javascript file consentform_alt_rec.js in resources/personal/ updated in function submit() to obtain the value of checkbox "Diagnosis confirmed" from the form in JSP file consentform_alt_rec.jsp and transfer it to servlet ConsentFormServlet.
  3. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in case section with new data row for value of "Diagnosis confirmed" checkbox, below row for consent information.
  4. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) to enter the value for the "Diagnosis confirmed" checkbox obtained for the case from servlet CaseSummaryServlet and make it available for display in the case summary JSP page.
  5. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final Annotationtype.DIAGNOSIS_CONFIRMED entry. It is a Boolean annotation for sample (Case) items.
  6. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation type Annotationtype.DIAGNOSIS_CONFIRMED. Also, the annotation type is added to annotation type category "Case".
  7. Java class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to load annotation value for Annotationtype.DIAGNOSIS_CONFIRMED for the case item.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterConsent" to obtain value of "Diagnosis confirmed" from form, and set annotation type Annotationtype.DIAGNOSIS_CONFIRMED to that value for the case item.
  8. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadCaseInfo(DbControl dc, Case theCase) to load value for Annotationtype.DIAGNOSIS_CONFIRMED and couple the value to JSON key "diagnosisConfirmed".

comment:102 by olle, 6 years ago

Design update:

  • As the result of discussions after the SCAN-B-rec/MeLuDI meeting 2018-06-26, further modifications to the item identification model in MeLuDI, that was started after the SCAN-B-rec/MeLuDI meeting 2018-06-07, were decided:
  1. The referral ID, "Studielöpnummer" ("Study serial number") that will be printed on the referrals, and entered in the consent registration wizard, will be independent of the case ID, that will be created independently. The latter will not have a site ID as part of the name.
  2. As previously, the patient ID will be independent of the referral and case ID values, but a link between a patient ID and the case ID will exist.
  3. A blood item will have an ID independent of the case ID, but a link between a blood item ID and the case ID will exist. The blood item ID will not include a dot.
  4. An FFPE block ("Kloss") item (new) will have an ID independent of the case ID, but a link between an FFPE block item ID and the case ID will exist. The FFPE block item ID will not include a dot.
  5. An FFPE section ("Snitt") from an FFPE block item will be identified by the FFPE block name plus a suffix (".1" for the first section, ".2" for the second, etc.).
  6. A DNA or RNA extract from a blood or FFPE section will be identified by the sample name plus extra suffix (".d" or ".r" for the first DNA or RNA extract, respectively, ".d2" or ".r2" for the second, etc.).

The decisions above strike at the core of previous MeLuDI naming conventions, but will hopefully avoid problems with the latter.

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

comment:103 by olle, 6 years ago

(In [4899]) Refs #1029. New string annotation type CASE_ID added for samples, It will be used to specify a connection between blood or FFPE block items and a parent case item, even if the base name differs.

  1. Data access object file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New annotation type CASE_ID added. It is of type String and is a Sample annotation.
  2. Data access object file Blood.java in src/net/sf/basedb/meludi/dao/ updated:
    a. Public static method List<Blood> findAllByCaseName(DbControl dc, String name) updated to call convenience method boolean Meludi.bloodAndSampleItemPrefixesDiffer(int activeProjectId) to determine if the old or new item name convention is used, and call either new private static method List<Blood> findAllByCaseNameOldConvention(DbControl dc, String name) or private static method List<Blood> findAllByCaseNameNewConvention(DbControl dc, String name).
    b. New private static method List<Blood> findAllByCaseNameOldConvention(DbControl dc, String name) added. It basically consists of code in old version of public static method List<Blood> findAllByCaseName(DbControl dc, String name).
    c. New private static method List<Blood> findAllByCaseNameNewConvention(DbControl dc, String name) added. It performs a database query for all blood items having value of new annotation type CASE_ID equal to the name of the current case item.
  3. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add checks for new annotation type CASE_ID. Also updated by including it in new annotation type category for Subtype.BLOOD.

comment:104 by olle, 6 years ago

(In [4901]) Refs #1029. MeLuDI updated with new configuration variables blood-item-num-digits, ffpe-block-item-prefix, and ffpe-block-item-num-digits, specifying number of digits in the serial part of the name for blood items, a prefix for FFPE block item ID and number of digits in the serial number part of the name for FFPE block items.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tags <blood-item-num-digits>, <ffpe-block-item-prefix> and <ffpe-block-item-num-digits>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static methods Integer fetchBloodItemNumDigits(int activeProjectId), String fetchFfpeBlockItemPrefix(int activeProjectId), and Integer fetchFfpeBlockItemNumDigits(int activeProjectId). They call private static methods ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration values are returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration values "blood-item-num-digits", "ffpe-block-item-prefix", and "ffpe-block-item-num-digits" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variables and corresponding public accessor methods for new configuration values.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration values for referral prefix and number of digits for active project in returned JSONObject for JSON keys "bloodItemNumDigits", "ffpeBlockItemPrefix", and "ffpeBlockItemNumDigits", respectively.

comment:105 by olle, 6 years ago

(In [4903]) Refs #1029. Support for FFPE block items added:

  1. New data access object file FfpeBlock.java in src/net/sf/basedb/meludi/dao/ added.
  2. Data access object file Subtype.java in src/net/sf/basedb/meludi/dao/ updated by adding new FFPE block related Subtype item FFPE_BLOCK of type Item.SAMPLE.
  3. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add checks for new sub type Subtype.FFPE_BLOCK and corresponding annotation type category.

comment:106 by olle, 6 years ago

Design discussion:

  • Allowing different prefixes and number of digits for FFPE block and blood items might complicate things, when obtaining the root digits in an item name. As an example, with FFPE block item prefix = "FB" plus number of items = 5 and blood item prefix = "BLD" plus number of items = 4, items named FB00124.1.d and BLD0023.d might be DNA extracts connected to the same case item. In the old MeLuDI naming scheme, the part of the name before the first dot would equal the case name. Care must be taken to minimize the risk of errors caused by code assuming that the lengths of prefixes and number of digits are equal for different subtypes.
Last edited 6 years ago by olle (previous) (diff)

comment:107 by olle, 6 years ago

(In [4904]) Refs #1029. MeLuDI updated in class Meludi with new public static convenience methods for obtaining root names, root number of digits, prefixes, and number of digits for different subtypes. Also a method for obtaining the main subtype from the item name.

  1. Java class/file Meludi.java in src/net/sf/based/meludi/ updated:
    a. New public static method fetchRootItemName(String itemName, Subtype subtype, int activeProjectId) added. It obtains root item name by removing part of name after prefix + digit characters.
    b. New public static method String fetchRootDigits(String itemName, Subtype subtype, int activeProjectId) added. It obtains root digits by removing item prefix and part of name after prefix + digit characters.
    c. New public static method String fetchItemPrefix(Subtype subtype, int activeProjectId) added. It obtains item prefix for a subtype. Returns null if no item prefix defined for the subtype.
    d. New public static method Integer fetchItemNumDigits(Subtype subtype, int activeProjectId) added. It obtains item number of digits for a subtype. Returns null if no item number of digits defined for the subtype.
    e. New public static method Subtype fetchMainSubtypeFromItemName(String itemName, int activeProjectId) added. It obtains main subtype for an item from the item name. Returns null if no main subtype can be found for the item name. The "main" subtype is the one corresponding to the item name prefix, while a suffix might indicate another subtype, e.g. for DNA the main subtype might be Subtype.CASE and the item subtype Subtype.EXTRACT.

comment:108 by olle, 6 years ago

(In [4908]) Refs #1029. Referral form generation wizards and servlets updated in names of input fields, parameters, and variables to either reflect the current data types or be more generic (type "itemName"), in order not to be misleading in user interface or source code. For parameters and variables, generic names have often been preferred, if the values of the former are to be used as is, e.g. numbers and text strings:

  1. Javascript file baseline_alt_rec.js in resources/personal/ updated in functions submit() and downloadFormBatch(batchType) to use generic variable and parameter names.
  2. JSP file generate-referral-forms.jsp in resources/personal/ updated to use generic variable and parameter names.
  3. Javascript file generate-referral-forms.js in resources/personal/ updated in several functions to use generic variable and parameter names. Some functions used to manage updated values for specific input fields have also been renamed, in order to reflect new names of the corresponding input fields.
  4. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated to use names of variables and parameters, that either reflect the current data types or are more generic.

comment:109 by olle, 6 years ago

(In [4909]) Refs #1029. Main page layout updated in section "Personal information wizards" to have sub-sections "Referral forms", "Case & consent registration", and "Sample compilation and registration" (new sub-section, but with existing wizard "BASE-line registration"), since this often (but not always) reflect the order in which the corresponding wizards are used for a specific case. Also, new referral form generation wizard for creating an FFPE section order form for a sequential number of FFPE block names:

  1. JSP file index.jsp in resources/ updated:
    a. Section "Personal information wizards" updated to have sub-sections "Referral forms", "Case & consent registration", and "Sample compilation and registration" (new sub-section, but with existing wizard "BASE-line registration"), since this often (but not always) reflect the order in which the corresponding wizards are used for a specific case.
    b. Section "Personal information wizards" updated in sub-section "Referral forms" with new entry "FFPE section order form - sequential FFPE block names" with link to new JSP file ffpe_section_order_form_sequential.jsp in resources/personal/.
  2. New JSP file ffpe_section_order_form_sequential.jsp in resources/personal/ added. It is linked to new javascript file ffpe_section_order_form_sequential.js in resources/personal/, and allows input of start FFPE block name and number of sequential block names to include in the FFPE block order form (a form allows entries for eight FFPE blocks). Curremtly it is assumed, that no more than eight FFPE block names are chosen. Note that this wizard expects FFPE block items to exist for the chosen names, as the PAD number to be added to the form for each FFPE block is obtained form the PAD annotation for the latter.
  3. Javascript file ffpe_section_order_form_sequential.js in resources/personal/ added. It calls servlet ReferralGeneratorServlet with new command "GenerateFfpeSectionOrderForm".
  4. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New private static final constants REF_FORM_TEMPLATE_FFPE_SECTION_ORDER_FORM and TEMPLATE_FILENAME_START_FFPE_SECTION_ORDER_FORM added.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "UpdateUsedItemIdDigitsList" to obtain number of items from parameter with correct name for FFPE block order form generation. However, it has currently not been decided, if the latter wizard should be allowed to update the used item list, since it relates to FFPE block names instead of referral names.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GenerateFfpeSectionOrderForm". It creates a list of FFPE block names from parameter data, and then calls new private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, List<String> itemIdList, List<String> formTemplateFileList) to create the order form.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "DownloadFormBatchFile" to obtain number of items from parameter with correct name for FFPE block order form generation. This is needed for the filename to reflect the number of items included in the form.
    e. Private method void initializeRefFormTemplNameStartHashMap() updated to include FFPE section order forms in the hash map.
    f. New method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, List<String> itemIdList, List<String> formTemplateFileList) added. It obtains the referral template file to use and then calls new private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList).
    g. New private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) added. It creates the FFPE section order form for the given data.

comment:110 by olle, 6 years ago

(In [4910]) Refs #1029. FFPE section order form generation updated to create a new form page, when the current page is filled with entries:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, List<String> itemIdList, List<String> formTemplateFileList) to create a new FFPE section order form page, when the current one is filled with entries. Private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) is called the necessary number of times with a temporary list of FFPE block item names, that never contains more names than entries allowed on a single FFPE section order form page.

comment:111 by olle, 6 years ago

(In [4911]) Refs #1029. Main page layout updated in section "Personal information wizards", sub-section "Referral forms", by adding new wizard "FFPE block order form". The original creation of the FFPE block order form was part of the base-line registration wizard, but if the user missed to download the referral form PDF file, or has lost it, this wizard allows creation of a new FFPE block order form, without having to redo the base-line registration (the latter would require several items to be deleted before the registration could be performed again). This wizard allows the user to first select the hospital site, and then the complete referral ID. If one has a printout of a previous referral form, with the referral ID as bar code, one might prefer a wizard, where the latter could be input directly. Also note that this wizard expects a case item to exist for the chosen referral ID, as the patient data connected to the latter will be used on the referral form. Also, the default PAD number is the PAD pre-entry annotation for the case item.

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards", sub-section "Referral forms", by adding new wizard "FFPE block order form" with link to new JSP file ffpe_block_order_form.jsp in resources/personal/.
  2. New JSP file ffpe_block_order_form.jsp in resources/personal/ added. It is linked to new javascript file ffpe_block_order_form.js in resources/personal/, and allows input of a referral ID and PAD value to be used on the form.
  3. New javascript file ffpe_block_order_form.js in resources/personal/ added. It calls servlet ReferralGeneratorServlet with existing command "GenerateFfpeReferralForm" to generate a referral form. However, in order to obtain the PAD pre-entry valaue from the case item corresponding to the input referral ID, servlet ReferralGeneratorServlet is called with new command "GetReferralCaseInfo".
  4. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetReferralCaseInfo". It obtains value of referral ID from parameter and calls new private method JSONObject fetchReferralCaseInfo(DbControl dc, String referralId) to obtain a JSON object containing the PAD pre-entry for the corresponding case item (if any).
    b. New private method JSONObject fetchReferralCaseInfo(DbControl dc, String referralId) added. It returns a JSONObject containing the PAD pre-entry for the corresponding case item, or null, if no corresponding case item exists.

comment:112 by olle, 6 years ago

(In [4912]) Refs #1029. Case summary for active project SCAN-B-rec updated to find FFPE block info for the current case and report it below info on blood-related items. As for other items, PAD annotation values are treated as confidential, and requires PatientCurator role to be displayed:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated by adding data section for FFPE block information.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by adding FFPE block info.
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to call public static method List<FfpeBlock> findAllByCaseName(DbControl dc, String name) in data access object class FfpeBlock to obtain information on FFPE block items related to the case item.
    b. New private method void loadFfpeBlockInfo(DbControl dc, FfpeBlock ffpeBlock) added. It loads FFPE block annotation values.

comment:113 by olle, 6 years ago

Design discussion regarding FFPE block items:

  • An FFPE block item is a subtype of Sample, and as such has the possibility of having many types of annotation values, but only a few might be of use in most projects. Case summary currently reports values for name (item ID), registration date, consent, PAD (if user has PatientCurator role), sampling date, and other path note. Is e.g. "other path note" relevant? It was included because the latter is used for case items, and FFPE blocks are strongly coupled to the former. The list of supported values might need to be modified both by excluding unused data, and adding new data of interest.
Last edited 6 years ago by olle (previous) (diff)

comment:114 by olle, 6 years ago

Design update:

  • Case Summary have previously allowed a personal number to be used as input, instead of a case name, if the user had PatientCurator role, which resulted in display of data for the first case item for the corresponding patient. With the new naming scheme, connections between items of different kinds might be more obscure than before. Case Summary for project SCAN-B-rec should therefore be updated to also allow input of patient ID, referral ID, blood item ID, or FFPE block item ID. In fact, any sample or extract ID should be allowed input, as removal of the suffix part should result in a blood and FFPE block item ID.

comment:115 by olle, 6 years ago

(In [4913]) Refs #1029. Case summary for active project SCAN-B-rec updated to allow input of personal number, patient ID, referral ID, blood item ID, or FFPE block item ID instead of case ID. Of these, input of personal number and referral ID will only work for users with PatientCurator role. Input of any sample or extract ID will be stripped of the suffix part, and then treated as a blood or FFPE block item ID, depending on the prefix:

  1. Data access object file Patient.java in src/net/sf/basedb/meludi/dao/ updated by adding new public static methods Patient getById(DbControl dc, int patientId), List<Patient> toPatient(Collection<BioSource> biosources), and Patient findByName(DbControl dc, String name).
  2. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetCaseInfo" to allow input of personal number, patient ID, referral ID, blood item ID, or FFPE block item ID instead of case ID. Of these, input of personal number and referral ID will only work for users with PatientCurator role. Input of any sample or extract ID will be stripped of the suffix part, and then treated as a blood or FFPE block item ID, depending on the prefix.

comment:116 by olle, 6 years ago

(In [4914]) Refs #1029. In preparation for an FFPE section order form wizard allowing the user to select FFPE block items in non-sequential order, the servlet command for current version is renamed:

  1. Javascript file ffpe_section_order_form_sequential.js in resources/personal/ updated in function generateReferralForms() to call ReferralGeneratorServlet with command "GenerateFfpeSectionOrderFormSequential" instead of "GenerateFfpeSectionOrderForm".
  2. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) by renaming command "GenerateFfpeSectionOrderForm" to "GenerateFfpeSectionOrderFormSequential".

comment:117 by olle, 6 years ago

(In [4915]) Refs #1029. Main page layout updated in section "Personal information wizards", sub-section "Referral forms", by adding new wizard "FFPE section order form - selected FFPE blocks" with counter of total number of FFPE blocks after it. The new wizard differs from the previous "FFPE section order form - sequential FFPE block names" in that the new one allows the user to select more freely what FFPE block items to include in the FFPE section order form. The FFPE block names will still be in ascending order, but may have gaps in the number sequence.

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards", sub-section "Referral forms", by adding new wizard "FFPE section order form - selected FFPE blocks" with link to new JSP file ffpe_section_order_form.jsp in resources/personal/.
  2. New JSP file ffpe_section_order_form.jsp in resources/personal/ added. It is linked to new javascript file ffpe_section_order_form.js in resources/personal/, and allows selection of what FFPE block items to include in the order form.
  3. New javascript file ffpe_section_order_form.js in resources/personal/ added. It calls servlet ReferralGeneratorServlet with new command "GenerateFfpeSectionOrderForm" to generate an FFPE section form. A JSONArray of selected FFPE block item data is transferred as value of parameter "ffpeblocklist". When servlet ReferralGeneratorServlet is called with command "DownloadFormBatchFile" in function downloadFormBatch(batchType), the end item name in the selected list of FFPE block items is transferred to the servlet as value of parameter "enditemname".
  4. Java servlet class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated:
    a. Package private method void count() updated by calling new private method void countFfpeBlocks(DbControl dc, JSONObject json).
    b. New private method void countFfpeBlocks(DbControl dc, JSONObject json) added. It counts the number of FFPE block items in the current project and adds the result to the JSON argument for JSON key "ffpeblocks-all".
  5. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GenerateFfpeSectionOrderForm". It obtains a JSONArray of the FFPE block list from parameter "ffpeblocklist", which is then converted to a simple list of FFPE block item names, efter which private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, List<String> itemIdList, List<String> formTemplateFileList) is called to create the FFPE order form.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "DownloadFormBatchFile" to get end item name from value of parameter "enditemname". If this vale is null, the end item name is constructed from the start item name and the number of items, assuming a continuous sequence without gaps.

comment:118 by olle, 6 years ago

(In [4916]) Refs #1029. Main page layout updated in section "Personal information wizards" by moving entries for wizards creating FFPE block and section order forms from sub-section "Referral forms" to "Sample compilation and registration", since they are used together with other wizards in the latter sub-section:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by moving entries for wizards creating FFPE block and section order forms from sub-section "Referral forms" to "Sample compilation and registration", since they are used together with other wizards in the latter sub-section.

comment:119 by olle, 6 years ago

(In [4951]) Refs #1029. Referral form generation updated to support generation of patient info referral forms. The patient info referral forms are intended to be printed on regular paper with two-sided printing, and will therefore be included in PDF batch file 2. Due to the intended two-sided printing, an extra blank page will be added to every form, where the template consists of an odd number of pages:

  1. JSP file generate-referral-forms.jsp in resources/personal/ updated in instruction text to specify two-sided printing for PDF batch file 2.
  2. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private static final String TEMPLATE_FILENAME_START_PATIENT_INFO updated with extra prefix "SCAN-B-rec_".
    b. Private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, List<String> formTemplateFileList) updated to add extra blank page, as the form template is one-sided, but the printing is now intended to be two-sided.
    c. Private method PdfUtil createPatientInfoForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, List<String> formTemplateFileList) updated to put referral ID directly below label "Initialer:" ("Initials:").

comment:120 by olle, 6 years ago

(In [4954]) Refs #1029. Updates needed for display of FFPE blocks in selection menu of wizard "FFPE section order form - selected FFPE blocks". This should have been part of change set [4915]:

  1. Data access object file FfpeBlock.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New public static method List<FfpeBlock> findAll(DbControl dc) added. It returns a list of FFPE block items for current project.
  2. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetFfpeBlocks". It obtains a list of FFPE block items by calling public static method List<FfpeBlock> findAll(DbControl dc) in data access object file FfpeBlock.java. The list is returned in a JSONArray with JSON key "items".

comment:121 by olle, 6 years ago

(In [4958]) Refs #1029. Base-line registration wizard updated for new blood samples to use names, that are independent of the related Case item:

  1. Javascript file baseline_alt_rec.js in resources/personal/ updated:
    a. Function onConfiguration(request) updated to obtain configuration value of number of digits in blood item name.
    b. Function fetchTubeName(tubeContentType, caseInfo, tubeIndex) updated to get highest blood item number from Case info, and add (tubeIndex + 1) to get the new tube name (tubeIndex is zero-based).
    c. Function submit() updated to use names of item variables and parameters independent of "Case".
    d. Function downloadFormBatch(batchType) updated to use names of item variables and parameters independent of "Case".
  2. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to obtain value of highest used blood item number from new private method int fetchHighestBloodItemNumber(DbControl dc) and add it to case JSON object with JSON key "highestBloodItemNumber". New command "GetNewBloodItemName" added, that obtains value of new blood item name from new private method String fetchNewBloodItemName(DbControl dc) and return it as JSON object with JSON key "newBloodItemName".
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "UpdateCase" to set value of new sample annotation string annotation CASE_ID to value of original case name.
    c. New private method String fetchNewBloodItemName(DbControl dc) added. It fetches new blood item name for the active project, equal to the one following the currently highest blood item name.
    d. New private method int fetchHighestBloodItemNumber(DbControl dc) added. It fetches highest blood item number for the active project, equal to the number of the currently highest blood item name.
    e. New private method String fetchHighestBloodItemName(DbControl dc) added. It fetches the highest blood item name for the active project, or null, if no blood items exist.

comment:122 by olle, 6 years ago

(In [4960]) Refs #1029. Label generation updated:

  1. JSP file labelgeneration.jsp in resources/sampleproc/ updated:
    a. Menu for tube content type (with options "Specimen" or "Blood") moved before selection of max number of tubes.
    b. Max number of tubes selection changed from menu to input field, to simplify setting default value depending on tube content type.
  2. Javascript file labelgeneration.js in resources/sampleproc/ updated:
    a. Function initPage() updated to couple event handler for tube content type to new function tubeContentTypeOnChange().
    b. New function tubeContentTypeOnChange() added. It sets default value of max number of tubes to 1 for specimens and 2 for blood items.

    Note: Setting default value of max number of tubes depending on tube content type does not currently function satisfactorily (input field must be clicked for the new default value to appear). Also, and more important, the generated labels for blood tubes do not correspond to the new independent name scheme for blood items.

comment:123 by olle, 6 years ago

(In [4965]) Refs #1029. Base-line registration wizard updated by removing check boxes for ctDNA and CTC circulating tumor DNA and cells). The code is not removed, but commented out, in order to simplify its future use:

  1. JSP file baseline_alt_rec.jsp in resources/personal/ updated by commenting out code related to check boxes for ctDNA and CTC.
  2. Javascript file baseline_alt_rec.js in resources/personal/ updated by commenting out code related to check boxes for ctDNA and CTC.

comment:124 by olle, 6 years ago

(In [4966]) Refs #1029. Updates due to version number change to "1.6.0a7".

  1. Version number changed to "1.6.0a7":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:125 by olle, 6 years ago

(In [4967]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:126 by olle, 6 years ago

(In [4968]) Refs #1029. Subtype for FFPE block item updated by exchanging name "FfpeBlock" for "FFPEBlock", since "FFPE" is an abbreviation that is commonly written with all uppercase letters:

  1. Data access object file Subtype.java in src/net/sf/basedb/meludi/dao/ updated for FFPE block related Subtype item FFPE_BLOCK of type Item.SAMPLE by exchanging name "FfpeBlock" for "FFPEBlock".

comment:127 by olle, 6 years ago

Design update:

  • As the result of discussions after the SCAN-B-rec/MeLuDI meeting 2018-09-06, some modifications of the MeLuDI software were decided. The following list is not complete, as some modifications require further discussion:
  1. Text in wizards should use notation similar to that used in referral forms and other documentation, in order to avoid misunderstandings. Also, standard conventions regarding hyphenation and use of spaces should be adhered to, e.g. a space should separate a number from unit or percent sign.
  2. The current Base Line wizard for registration of blood samples should be replaced by one importing a tab-separated file exported from a spreadsheet, where each row represents a referral form and contains referral ID, blood item ID for first tube, position of first tube in blood box, blood item ID for second tube, position of second tube in blood box, blood box name, and possibly other data (the exact number of fields still has to be decided). Sticker labels printed in advance for the blood tubes should be supplied, allowing referral ID and blood item ID values to be scanned from bar codes on the referral form and blood tube labels, respectively, only requiring the blood box name and tube positions to be added manually.
    a. Currently three sticker labels on the BASE-line referral form is unused, and will be used for the blood tubes (normally two tubes are used, while a third tube might be used in some cases). These three sticker labels will have text and bar codes equal to the referral ID plus suffix ".b1", ".b2", and ".b3", respectively.
    b. A new wizard for registering blood items from an input file should be developed. Blood item ID values should consist of a base part consisting of the blood item prefix plus a serial number of fixed length (with initial zeroes when needed), plus a suffix consisting of a dot "." plus a number. The base part for a blood item should be unique for a referral ID, while the suffix should equal the suffix of the sticker label on the blood tube minus the letter "b", e.g. blood tube suffix ".b2" will correspond to a blood item with suffix ".2".
Last edited 6 years ago by olle (previous) (diff)

comment:128 by olle, 6 years ago

(In [4969]) Refs #1029. Base-line registration wizard updated in message text for blood tubes to not hyphenate "whole blood":

  1. Javascript file baseline_alt_rec.js in resources/personal/ updated in message text for blood tubes to not hyphenate "whole blood".

comment:129 by olle, 6 years ago

(In [4971]) Refs #1029. Referral form generator updated for BASE-line forms to add suffices ".b1", ".b2", and ".b3" to referral ID text and bar codes on the three rightmost sticker labels:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated in private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) to add suffices ".b1", ".b2", and ".b3" to referral ID text and bar codes on the three rightmost sticker labels for BASE-line forms.

comment:130 by olle, 5 years ago

(In [4986]) Refs #1029. Support added for blood annotations "Tube label" and "Whole blood", where values are stored for the Blood item in new String and Boolean annotations, respectively:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in blood section with new data rows for values of "Tube label" and "Whole blood", where the "Tube label" data is set to belong to class "confidential", requiring a Patient Curator or Administrator for inspection.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) to enter the values for "Tube label" and "Whole blood" obtained for the case from servlet CaseSummaryServlet and make it available for display in the case summary JSP page in the blood section.
  3. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. New public static final Annotationtype.TUBE_LABEL entry added. It is a String annotation for sample (Blood) items, with value logging disabled.
    b. New public static final Annotationtype.WHOLE_BLOOD entry added. It is a Boolean annotation for sample (Blood) items.
  4. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" to add check for new annotation types Annotationtype.TUBE_LABEL and Annotationtype.WHOLE_BLOOD, where Annotationtype.TUBE_LABEL is restricted to Patient Curator use. Also, the annotation types are added to annotation type category "Blood".
  5. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadBloodInfo(DbControl dc, Blood blood) to load values for Annotationtype.TUBE_LABEL and Annotationtype.WHOLE_BLOOD and couple the values to JSON keys "tubeLabel" and "wholeBlood", respectively.

comment:131 by olle, 5 years ago

(In [4987]) Refs #1029. Case summary for active project SCAN-B-rec updated for input of blood item ID to not remove suffix, since the new item name convention for blood items uses integer suffices ".1, ".2", etc. to name blood samples connected to the same case item:

  1. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetCaseInfo" to not remove suffix, when testing for input blood item ID.

comment:132 by olle, 5 years ago

(In [4988]) Refs #1029. Case summary for active project SCAN-B-rec updated to allow input of blood tube label name instead of case ID. Since the tube label name contains the referral ID plus a suffix, it will only work for users with PatientCurator role:

  1. Java servlet class/file CaseSummaryServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetCaseInfo" to allow input of blood tube label name instead of case ID. Since the tube label name contains the referral ID plus a suffix, it will only work for users with PatientCurator role. The check for referral ID input is updated by removing any suffix.

comment:133 by olle, 5 years ago

(In [4999]) Refs #1029. Boolean annotation "Whole blood" moved from Blood item to Case item:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated by moving data row for value of "Whole blood" from blood section to case section.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) to enter the value "Whole blood" obtained for the case from servlet CaseSummaryServlet and make it available for display in the case summary JSP page in the case section.
  3. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated:
    a. Public static final Annotationtype.WHOLE_BLOOD entry updated from being an annotation for sample (Blood) items to being an annotation for sample (Case) items.
  4. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" to move annotation from type category "Blood" to type category "Case".
  5. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Private method void loadBloodInfo(DbControl dc, Blood blood) updated to not load values Annotationtype.WHOLE_BLOOD and couple the values to JSON keys "tubeLabel" and "wholeBlood".
    b. Private method void loadCaseInfo(DbControl dc, Case theCase) updated to load values Annotationtype.WHOLE_BLOOD and couple the values to JSON keys "tubeLabel" and "wholeBlood".

comment:134 by olle, 5 years ago

Design update:

  • Base line registration wizard should be updated to ask user for a tab-separated CSV file containing the following headers (headers in Swedish, English equivalent here given in parenthesis):
    a. "Studielöpnummer" ("Study serial number")
    b. "Ankomstdatum" ("Arrival date")
    c. "Helblod - yes/no" ("Whole blood - yes/no")
    d. "Bankat helblod position rör x.1" ("Stored whole blood position tube x.1")
    e. "Bankat helblod position rör x.2" ("Stored whole blood position tube x.2")
Last edited 5 years ago by olle (previous) (diff)

comment:135 by olle, 5 years ago

(In [5000]) Refs #1029. Base-line registration wizard updated to ask user for a tab-separated CSV file to get blood tube information from, and to use the new blood item naming scheme with integer suffices to a common blood item base name for blood item relat4ed to the same Case item:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by coupling base-line registration to new JSP file baseline_from_file_alt_rec.jsp in resources/personal/ .
  2. New JSP file baseline_from_file_alt_rec.jsp in resources/personal/ added. It is coupled to new Javascript file baseline_from_file_alt_rec.js in resources/personal/.
  3. New javascript file baseline_from_file_alt_rec.js in resources/personal/ added. It parses a given input tab-separated CSV file and presents the found values in dedicated fields in the JSP file. If the "Register" button is pressed, data is sent to command "RegisterBloodSamples" in servlet BaseLineRegistrationServlet.
  4. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "RegisterBloodSamples". It obtains values from the parsed input file from the request, and creates new blood items for case items found from the referral ID values. If value of "Whole blood" flag is false, no blood item is created, but the Case item is updated by setting annotation WHOLE_BLOOD to false.
    b. Private method String fetchNewBloodItemName(DbControl dc) updated to the new blood item naming scheme with integer suffices to a common blood item base name for blood item relat4ed to the same Case item.

comment:136 by olle, 5 years ago

(In [5002]) Refs #1029. Base-line registration wizard updated to check if any blood tube entry for non-whole blood has a storage position, in which case an error message is displayed for that tube, and registration is blocked for the input file:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated to check if any blood tube entry for non-whole blood has a storage position, in which case an error message is displayed for that tube, and registration is blocked for the input file.

comment:137 by olle, 5 years ago

(In [5004]) Refs #1029. Wizard "FFPE block order form" in section "Personal information wizards", sub-section "Sample compilation and registration", updated by removing initial step for selecting hospital site. The wizard now expects a referral ID to be entered in the first step (if a PAD pre-entry number is registered for the related Case item, the former will be entered in the second "PAD" input field, after it is put in focus):

  1. JSP file ffpe_block_order_form.jsp in resources/personal/ updated by removing initial step for selecting hospital site.
  2. Javascript file ffpe_block_order_form.js in resources/personal/ updated by removing initial step for selecting hospital site.

comment:138 by olle, 5 years ago

(In [5006]) Refs #1029. Referral generation updated for generation of FFPE referral form to print family name separated from all first names by a comma, instead of printing the two name sections at different positions:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) updated to print family name separated from all first names by a comma, instead of printing the two name sections at different positions.

comment:139 by olle, 5 years ago

(In [5007]) Refs #1029. Updates due to version number change to "1.6.0a8".

  1. Version number changed to "1.6.0a8":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:140 by olle, 5 years ago

(In [5008]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:141 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2018-10-04, some modifications of the MeLuDI software were decided:
  1. Consent form registration:
    a. Input field title "Date" exchanged for "Consent date".
    b. PAD pre-entry input field removed (see point 3a for reason).
  2. BASE-line registration:
    a. Input file will no longer contain a "Whole blood" check box, so there is no need for a corresponding annotation WHOLE_BLOOD.
    b. Input field/column "Sampling date" added.
    c. Support for separate column for box name.
    d. Input field/column for third extra blood tube added.
    e. Annotation "Arrival date" added to Blood Category.
    f. Contents in field/column "Kommentar" ("Comment") will be set as description for the created blood items, which in "Case summary" will be displayed under header "Comment".
    g. Contents in field/column "Namn" ("Name") will be set as new annotation ARRIVAL_OPERATOR for the created blood items, which in "Case summary" will be displayed under header "Arrival operator".
  3. FFPE block order form:
    a. A PAD number will no longer be printed on the form, as the form recipient will instead note PAD numbers of supplied blocks on the form. There is therefore also no need for a PAD pre-entry number registered for the Case item.
    b. The bar codes with referral ID should be replaced with bar codes of the patient personal number. The locations of the bar codes will not be changed.
  4. FFPE block registration:
    a. A number of FFPE blocks should be allowed for one Case item.
    b. Each FFPE block should have a PAD number registered with it.
    c. One of the FFPE blocks should be selected for further processing. This FFPE block should be identified as being related to a "Yellow label" in Reggie nomenclature. However, this selection can not always be made until some pre-checks have been made.
  5. Label creation wizard[s] for:
    a. Labels for FFPE sections ("snitt") for 1.5 ml safe-lock tubes. An FFPE section have a name consisting of <FFPE block name> + ".s", where suffix "s" indicates "section" or "specimen", since it will be the source of extracts.
    b. Labels for H&E glass slides, one for the start slide and one for the end slide (these slides contain tumor sections before the first section used for analysis and after the last one).
  6. FFPE section order form:
    a. The selection list of FFPE blocks should only include blocks not previously used in an FFPE section order form.
    b. The selection list of FFPE blocks should indicate "Yellow label" FFPE blocks with a yellow asterisk as used in Reggie, plus a yellow background.
    c. Glass slide items should have names consisting of the FFPE block item name + suffix ".he-F" or ".he-E", where "F" and "E" indicate "Före" and "Efter" (Swedish for "Before" and "After"), respectively. Abbreviation "he" refers to hematoxylin and eosin stain or haematoxylin and eosin stain (H&E stain or HE stain).
  7. FFPE section registration:
    a. Each FFPE section entry should include glass slide number, number of sections, and percentage of tumor cells.
  8. Returned FFPE block registration:
    a. The selection list of FFPE blocks should include blocks not previously marked as being returned. A return date and operator name should be registered.

Other items:

  • Glass slide items are needed.
Last edited 5 years ago by olle (previous) (diff)

comment:142 by olle, 5 years ago

(In [5013]) Refs #1029. Support for PAD pre-entry removed. Also, title of consent date input field changed from "Date" to the more clear "Consent date":

  1. JSP file consentform_alt_rec.jsp in resources/personal/ updated:
    a. Consent date input field title "Date" exchanged for "Consent date".
    b. PAD pre-entry field removed.
  2. Javascript file consentform_alt_rec.js in resources/personal/ updated:
    a. Function caseInfoLoadedStep1(response) updated by removing reference to PAD pre-entry input field.
    b. Function caseInfoLoaded(response) updated by removing reference to PAD pre-entry and PAD values for Case item.
  3. JSP file case_summary_alt_rec.jsp in resources/reports/ updated by removing PAD pre-entry section for Case item.
  4. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by removing code for PAD pre-entry for Case item.
  5. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated by removing public static final Annotationtype.PAD_PRE_ENTRY String annotation type for sample (Case) items.
  6. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" by removing reference to PAD pre-entry.
  7. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadCaseInfo(DbControl dc, Case theCase) by removing reference to PAD pre-entry.
  8. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated in private method JSONObject fetchReferralCaseInfo(DbControl dc, String referralId) by removing reference to PAD pre-entry.
  9. Java servlet class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" by removing reference to PAD pre-entry.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterConsent" by removing reference to PAD pre-entry.
  10. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" by removing reference to PAD pre-entry.

comment:143 by olle, 5 years ago

(In [5016]) Refs #1029. Support for "Whole blood" Boolean annotation for Case item removed:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated:
    a. Function parseBaseLineFile(data) updated by removing reference to PAD pre-entry input field.
    b. Function caseInfoLoaded(response) updated by removing reference to "Whole blood" Boolean annotation for Case item.
  2. JSP file case_summary_alt_rec.jsp in resources/reports/ updated by removing "Whole blood" section for Case item.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by removing code for "Whole blood" for Case item.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated by removing public static final Annotationtype.WHOLE_BLOOD Boolean annotation type for sample (Case) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" by removing reference to Annotationtype.WHOLE_BLOOD.
  6. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "UpdateCase" by removing reference to "Whole blood".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterBloodSamples" by removing reference to "Whole blood".
  7. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadCaseInfo(DbControl dc, Case theCase) by removing reference to "Whole blood".

comment:144 by olle, 5 years ago

(In [5027]) Refs #1029. Base-line registration wizard for input from a tab-separated CSV file updated to new format for the file: The box name is now given in its own column, instead of being combined with the tube position. Support is added for a sampling date in addition to the arrival date, as well as an optional third blood tube:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated:
    a. Function parseBaseLineFile(data) updated to obtain data from the added columns. Also updated to get data from columns in any order, which is used to ensure that the registered tube label suffix corresponds to the input column, e.g. if for some reason tube labels ".b2" and ".b3" have been used instead of ".b1" and ".b2", the correct tube labels should now be registered, provided that the entries have been made in the correct input columns. Sampling date now also shown in preview.
    b. Function submit() updated to send data for the new input fields to command "RegisterBloodSamples" in servlet BaseLineRegistrationServlet.
  2. JSP file case_summary_alt_rec.jsp in resources/reports/ updated with new entry for arrival date for blood items.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) to add data for arrival date for blood samples. Also, warning for missing freezer date for blood samples removed.
  4. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterBloodSamples" by adding support for sampling date. Also, an input blood item comment is set as description for the blood item.
  5. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadBloodInfo(DbControl dc, Blood blood) to add value for Annotationtype.ARRIVAL_DATE to JSON object with key "arrivalDate".
  6. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to include Annotationtype.ARRIVAL_DATE in annotation category "Blood".

comment:145 by olle, 5 years ago

(In [5028]) Refs #1029. FFPE block order form wizard updated to print bar codes with personal number instead of referral ID, and to no longer print any PAD number on the form:

  1. JSP file ffpe_block_order_form.jsp in resources/personal/ updated by removing input field for PAD number.
  2. Javascript file ffpe_block_order_form.js in resources/personal/ updated:
    a. Function initPage() updated to enable button "Next" when a referral ID has been entered.
    Function initializeStep1a(response) updated by commenting out code related to PAD number.
    Function initializeStep1b(response) updated by commenting out code related to PAD number.
    Function generateReferralForms() updated by commenting out code related to PAD number.
  3. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) to print bar codes with personal number instead of referral ID, and to no longer print any PAD number on the form.

comment:146 by olle, 5 years ago

(In [5031]) Refs #1029. Support for a "Yellow label" annotation on sample items added, indicating items selected for further processing. The implementation closely follows that in extension Reggie, plus modification for variable item name lengths and allowing FFPE block items to have a yellow label:

  1. CSS file case_summary.css in resources/css/ updated by adding rules for table column header layout for class "yellow-specimen" (large yellow asterisk prefix and yellow background).
  2. New images yellow-label.png and yellow-label-small.png added in resources/images/.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated:
    a. New global variable sampleItemNameLength added. It equals the name length of specimens with suffixes ".1" - ".9".
    b. New global variable defaultColClass added.
    c. Function caseInfoLoaded(response) updated to calculate value of global variable sampleItemNameLength from configuration values for project. FFPE block and specimen related items updated to have value of variable defaultColClass set to "yellow-specimen", if the item or one of its parent items has this annotation set.
    d. Function cs.addColumn(id, value, className) updated with new argument className. If the value of className is null, value of class name for the table column is set to that of defaultColClass.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final YELLOW_LABEL String annotation type and COMPLETED_DATE Date annotation type for sample (Specimen) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" to add check for new annotation types Annotationtype.YELLOW_LABEL and Annotationtype.COMPLETED_DATE. Also, both annotation types are added to annotation type category "Specimen", and Annotationtype.YELLOW_LABEL to annotation type category "FFPE block".
  6. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private methods void loadSpecimenInfo(DbControl dc, SnapshotManager manager, SpecimenTube specimen) and void loadFfpeBlockInfo(DbControl dc, FfpeBlock ffpeBlock) to load value of Annotationtype.YELLOW_LABEL and couple it to JSON key "YellowLabel".

comment:147 by olle, 5 years ago

(In [5034]) Refs #1029. Support for an "Arrival operator" annotation on sample items added, primarily intended for blood items. Base-line registration from CSV file already reads value in column "Namn" and includes it in JSON data with JSON key "operator" sent to BaseRegistrationServlet, when data is submitted:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated with new entry for arrival operator for blood items.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) updated to couple value of String annotation Annotationtype.ARRIVAL_OPERATOR to JSON object with JSON key "arrivalOperator".
  3. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final ARRIVAL_OPERATOR String annotation type for sample (Blood) items.
  4. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" to add check for new annotation type Annotationtype.ARRIVAL_OPERATOR. Also, the annotation type is added to annotation type category "Blood".
  5. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadBloodInfo(DbControl dc, Blood blood) to load value of Annotationtype.ARRIVAL_OPERATOR and couple it to JSON key "arrivalOperator".
  6. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp)for command "RegisterBloodSamples" to set value of annotation Annotationtype.ARRIVAL_OPERATOR for blood sample to that of JSON key "operator".

comment:148 by olle, 5 years ago

Design update:

  • The first version of the FFPE block registration wizard will consist of three steps:
  1. Input of personal number for patient. This was chosen as the FFPE block order form received back with the FFPE blocks contains bar code with the patient personal number.
  2. The case name corresponding to the input patient personal number is presented. Input of number of FFPE blocks (default is 4) and arrival date.
  3. Input for each FFPE block includes PAD number, check box for selecting the FFPE block for processing ("Yellow label"), and optional operator delivery comment. A PAD number is required for each FFPE block.

As the FFPE block registration code resembles that of the one for blood item registration in the Base-line registration wizard, it was decided to expand BaseLineRegistrationServlet with new command "RegisterFFPEBlocks", instead of creating a separate servlet. (However, that might be changed in the future.)

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

comment:149 by olle, 5 years ago

(In [5044]) Refs #1029. First version of FFPE block registration wizard added:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by added link for FFPE block registration coupled to new JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/.
  2. New JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ added. It is coupled to new Javascript file ffpe_block_registration_alt_rec.js in resources/personal/.
  3. New Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ added. Function submit() sends input data as a JSON object to new command "RegisterFFPEBlocks" in BaseLineRegistrationServlet.
  4. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in the FFPE block section by exchanging sampling date for arrival date and "Other path note" for "Operator delivery comment".
  5. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by exchanging sampling date for arrival date and "Other path note" for "Operator delivery comment" for FFPE block items.
  6. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "Validate" and "Install" by adding Annotationtype.ARRIVAL_DATE and Annotationtype.OPERATOR_DELIVERY_COMMENT to FFPE block category.
  7. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadFfpeBlockInfo(DbControl dc, FfpeBlock ffpeBlock) by loading annotations Annotationtype.ARRIVAL_DATE and Annotationtype.OPERATOR_DELIVERY_COMMENT.
  8. Java servlet class/file ConsentFormServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to get input personal number and from that obtain the case name via the patient item. If more than one case item is related to the patient, the first case item is used.
  9. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated with new command "RegisterFFPEBlocks", based on code for command "RegisterBloodSamples".
    b. Private method String fetchNewBloodItemName(DbControl dc)exchanged for generic private method String fetchNewItemName(DbControl dc, Subtype subtype, String itemPrefix, int itemNumDigits).
    c. Private method int fetchHighestBloodItemNumber(DbControl dc)exchanged for generic private method int fetchHighestItemNumber(DbControl dc, Subtype subtype, String itemPrefix, int itemNumDigits).
    d. Private method String fetchHighestBloodItemName(DbControl dc)exchanged for generic private method String fetchHighestItemName(DbControl dc, Subtype subtype).

comment:150 by olle, 5 years ago

(In [5047]) Refs #1029. FFPE block registration wizard updated by fixing bug in registration of "yellow label" items:

  1. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated in function submit() by checking if a "yellow label" check box is checked, instead of checking its value, and then transferring that to a String value for the parameter sent as input data as JSON object to command "RegisterFFPEBlocks" in BaseLineRegistrationServlet.
  2. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterFFPEBlocks" to obtain value of String variable "yellowLabel" directly from value of input JSON object with JSON key "yellowLabel".

comment:151 by olle, 5 years ago

(In [5048]) Refs #1029. FFPE section order form wizard updated to show PAD number and yellow label annotations for FFPE block items in selection list:

  1. CSS file meludi-2.css in resources/css/ updated with entries for yellow label support in selection lists, based on design in Reggie.
  2. JSP file ffpe_section_order_form.jsp in resources/personal/ updated in HTML select tag to set class to "yellow-label-support".
  3. Javascript file ffpe_section_order_form.js in resources/personal/ updated in function initializeStep1(response) to set class equal to "yellow" for items with annotation YELLOW_LABEL set to "yellow".
  4. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetFfpeBlocks" to load annotations Annotationtype.PAD and Annotationtype.YELLOW_LABEL before creating JSON object of item to return.

comment:152 by olle, 5 years ago

Design update for FFPE section order form:

  1. A new Boolean annotation USED_FOR_FFPE_SECTIONS is added for Samples (FFPE blocks). When an FFPE block is used in an FFPE section order form, the new annotation is set to true for the FFPE block item.
  2. The initial FFPE block selection list will only include blocks, not already used for FFPE sections.
  3. The counter value shown for the link to the "FFPE section order form wizard" should be updated to only count unused FFPE blocks.
  4. The FFPE section order form will now print names of glass slides for each selected FFPE block, equal to the names on labels delivered with the order form. Two glass slides will be used, containing residues before and after the part used for the FFPE sections. The residues are stained with hematoxylin and eosin, in order to be able to count the tumor cell percentage, so the glass slide names will be <FFPE block name> + ".he-F" and <FFPE block name> + ".he-E", where "F" and "E" indicate "Före" and "Efter" (Swedish for "Before" and "After"), respectively.

comment:153 by olle, 5 years ago

(In [5052]) Refs #1029. FFPE section order form wizard updated to keep track of what FFPE blocks have been used for sections, and only include unused FFPE blocks in selection list. Also, glass slide names for FFPE residues before and after the part used for sections are now printed on the form for each FFPE block:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by using counter "ffpeblocks-unused" at link for FFPE section order form.
  2. Javascript file ffpe_section_order_form.js in resources/personal/ updated in function initPage() to call ExtractionServlet with command "GetUnusedFfpeBlocks" to obtain list of FFPE blocks for selection list.
  3. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countFfpeBlocks(DbControl dc, JSONObject json) to count number of FFPE block items not having new annotation Annotationtype.USED_FOR_FFPE_SECTIONS set to true, and return the result in a JSON object with JSON key "ffpeblocks-unused".
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final USED_FOR_FFPE_SECTIONS Boolean annotation type for sample (FFPE block) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by adding checks for Annotationtype.USED_FOR_FFPE_SECTIONS and adding it to FFPE block category.
  6. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to support new command "GetUnusedFfpeBlocks" by returning all FFPE block items not having annotation Annotationtype.USED_FOR_FFPE_SECTIONS set to true.
  7. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeSectionOrderForm" to set value of annotation Annotationtype.USED_FOR_FFPE_SECTIONS to true for FFPE blocks selected for FFPE section order form.
    b. Private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) updated to print glass slide names for FFPE residues before and after the section part on the form for each FFPE block.

comment:154 by olle, 5 years ago

Design update for FFPE section order form:

  1. The FFPE section order form updated for "Yellow label" FFPE blocks to insert a large asterisk as prefix before the FFPE block name below the bar code with the name (the bar code is unchanged).
Last edited 5 years ago by olle (previous) (diff)

comment:155 by olle, 5 years ago

(In [5053]) Refs #1029. FFPE section order form updated for "Yellow label" FFPE blocks to insert a large asterisk as prefix before the FFPE block name below the bar code with the name (the bar code is unchanged).:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) to obtain value for Annotationtype.YELLOW_LABEL for FFPE block item, and if the annotation is set to "yellow" insert a large asterisk as prefix before the FFPE block name below the bar code with the name (the bar code is unchanged).

comment:156 by olle, 5 years ago

Design update:

  • The first version of the FFPE section registration wizard will consist of two steps:
  1. The initial FFPE block selection list will only include blocks, already used for FFPE section order forms.
  2. Input for each FFPE block/section includes number of sections, percentage of viable tumour cells, and optional operator delivery comment.

    An FFPE section will be identified with a specimen at registration, and will have a name equal to the FFPE block name + suffix ".s".

    Servlet BaseLineRegistrationServlet will be extended with new command "RegisterFFPESections".
  • Items not included in the first version of the FFPE section registration wizard, but that will probably have to be added before deployment:
  1. Box position for the specimen should be registered.
  2. As described in Ticket #768, change set [3276], extract items should also be created together with the specimen, with their own box positions.
Last edited 5 years ago by olle (previous) (diff)

comment:157 by olle, 5 years ago

(In [5060]) Refs #1029. First version of FFPE section (specimen) registration wizard added:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by added link for FFPE section registration coupled to new JSP file ffpe_section_registration_alt_rec.jsp in resources/personal/.
  2. New JSP file ffpe_section_registration_alt_rec.jsp in resources/personal/ added. It is coupled to new Javascript file ffpe_section_registration_alt_rec.js in resources/personal/.
  3. New Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ added. Function submit() sends input data as a JSON object to new command "RegisterFFPESections" in BaseLineRegistrationServlet.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final RETURNED_DATE Date annotation type for sample (FFPE block) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation type Annotationtype.RETURNED_DATE. Also, the annotation type is added to annotation type category "FFPE block".
  6. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countFfpeBlocks(DbControl dc, JSONObject json) to count number of FFPE block items having annotation Annotationtype.USED_FOR_FFPE_SECTIONS set to true, as well as the number have new annotation Annotationtype.RETURNED_DATE not set or set to a date, and return the result in JSON objects with JSON keys "ffpeblocks-used", "ffpeblocks-unreturned", and "ffpeblocks-returned", respectively. Also, now a non-set value of Annotationtype.RETURNED_DATE is required for an FFPE block to be included in either "ffpeblocks-unused" or "ffpeblocks-used".
  7. Java data access object (dao) file SpecimenTube.java in src/net/sf/basedb/meludi/dao/ updated in public static method List<SpecimenTube> findByCaseName(DbControl dc, String name) when no specimen items are found using the standard name convention, to check if specimens can be found having the input case name as value for Annotationtype.CASE_ID, which is used when the base name (name without suffix) differs for case and specimen items (new name convention).
  8. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetUnusedFfpeBlocks" to only include unreturned FFPE blocks.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetUsedFfpeBlocks" to return used unreturned FFPE blocks.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetUnreturnedFfpeBlocks" to return unreturned FFPE blocks.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetReturnedFfpeBlocks" to return returned FFPE blocks.
  9. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) with new command "RegisterFFPESections".

comment:158 by olle, 5 years ago

Design update:

  • Annotations for keeping track of where in the normal pipeline an FFPE block is, need to be updated for increased specificity and clarity:
  1. Boolean annotation Annotationtype.USED_FOR_FFPE_SECTIONS exchanged for Annotationtype.USED_FOR_FFPE_SECTION_ORDER_FORM, set when an FFPR block is used in an FFPE section order form.
  2. New Boolean annotation Annotationtype.USED_FOR_FFPE_SECTION added, set when an FFPE section is registered for an FFPE block.

comment:159 by olle, 5 years ago

(In [5061]) Refs #1029. FFPE section block/section wizards updated for new/changed Boolean annotations:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by updated counter links for FFPE section order form and FFPE section registration wizards, that now use "ffpeblocks-unused-for-section-order-form" and "ffpeblocks-unused-for-section", respectively.
  2. Javascript file ffpe_section_order_form.js in resources/personal/ updated to call ExtractionServlet with new command "GetFfpeBlocksUnusedForSectionOrderForm" to obtain selection list.
  3. Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ updated to call ExtractionServlet with new command "GetFfpeBlocksUnusedForSection" to obtain selection list.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final USED_FOR_FFPE_SECTION_ORDER_FORM (replaces USED_FOR_FFPE_SECTIONS) and USED_FOR_FFPE_SECTION String annotation types for sample (FFPE block) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation types Annotationtype.USED_FOR_FFPE_SECTION_ORDER_FORM and Annotationtype.USED_FOR_FFPE_SECTION. Also, the annotation types are added to annotation type category "FFPE block".
  6. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countFfpeBlocks(DbControl dc, JSONObject json) to return numbers for JSON keys "ffpeblocks-unused-for-section-order-form" and "ffpeblocks-unused-for-section". Note that these sets are considered distinct for the purpose of determining step in the standard pipeline.
  7. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated by exchanging command "GetUnusedFfpeBlocks" for "GetFfpeBlocksUnusedForSectionOrderForm" and "GetUsedFfpeBlocks" for "GetFfpeBlocksUnusedForSection", together with use of new Boolean annotations Annotationtype.USED_FOR_FFPE_SECTION_ORDER_FORM (replaces Annotationtype.USED_FOR_FFPE_SECTIONS) and Annotationtype.USED_FOR_FFPE_SECTION.
  8. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "RegisterFFPESections" to set value of Boolean annotation Annotationtype.USED_FOR_FFPE_SECTION to true for FFPE block.
  9. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeSectionOrderForm" to set value of Boolean annotation Annotationtype.USED_FOR_FFPE_SECTION_ORDER_FORM to true for FFPE block.

comment:160 by olle, 5 years ago

Design update:

  • The first version of the registration wizard for returned FFPE blocks will consist of a single step, with the following components:
  1. An FFPE block selection list with unreturned blocks that have not been registered with a returned date.
  2. A returned date input.

Servlet BaseLineRegistrationServlet will be extended with new command "RegisterReturnedFFPEBlocks".

comment:161 by olle, 5 years ago

(In [5062]) Refs #1029. First version of registration wizard for returned FFPE blocks added:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by added link for FFPE block returnal registration coupled to new JSP file ffpe_block_returnal_alt_rec.jsp in resources/personal/.
  2. New JSP file ffpe_block_returnal_alt_rec.jsp in resources/personal/ added. It is coupled to new Javascript file ffpe_block_returnal_alt_rec.js in resources/personal/.
  3. New Javascript file ffpe_block_returnal_alt_rec.js in resources/personal/ added. Function submit() sends input data as a JSON object to new command "RegisterReturnedFFPEBlocks" in BaseLineRegistrationServlet.
  4. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) with new command "RegisterReturnedFFPEBlocks". It sets annotation Annotationtype.RETURNED_DATE to the specified date for selected FFPE blocks.

comment:162 by olle, 5 years ago

(In [5068]) Refs #1029. Data access object file SpecimenTube.java in src/net/sf/basedb/meludi/dao/ updated in comment concerning creation of extract items at specimen registration. Change set [3276] in Ticket #768 is now also referenced:

  1. Data access object file SpecimenTube.java in src/net/sf/basedb/meludi/dao/ updated in public static method List<SpecimenTube> findUnProcessedTubes(DbControl dc, Boolean withExtracts) by extending comment concerning creation of extract items at specimen registration with information that change involves Ticket #768 and change set [3276] (previously the change set was not specified).

comment:163 by olle, 5 years ago

(In [5069]) Refs #1029. FFPE section order form wizard updated to create label files for FFPE sections and FFPE H&E glass slides for unused material. The final stage of the wizard is extended with two new buttons for downloading the label files. These buttons will be placed beside the button for downloading the FFPE section order form PDF file. The latter button is renamed to better describe that it is an FFPE section order form that is to be downloaded:

  1. JSP file ffpe_section_order_form.jsp in resources/personal/ updated by renaming button for downloading FFPE section order form to "Download FFPE section order form", and by adding two new buttons, "Download FFPE section labels file" and "Download HE glass labels file".
  2. Javascript file ffpe_section_order_form.js in resources/personal/ updated:
    a. Function initPage() updated with click handlers for buttons to download labels for FFPE sections and FFPE H&E glass slides, coupled to new functions downloadFfpeSectionLabelFile() and downloadHeGlassLabelFile(), respectively.
    b. Function initializeStep2(response) updated to show buttons to download labels for FFPE sections and FFPE H&E glass slides.
    c. New function downloadFfpeSectionLabelFile() added. It calls LabelGenerationServlet with new command "GetFfpeSectionLabelFile", supplying a list of selected FFPE blocks.
    d. New function downloadHeGlassLabelFile() added. It calls LabelGenerationServlet with new command "GetHeGlassLabelFile", supplying a list of selected FFPE blocks.
  3. Java servlet class/file LabelGenerationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetFfpeSectionLabelFile" to created a label file for FFPE sections. The name for an FFPE section consists of the FFPE block name plus suffix ".s".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetHeGlassLabelFile" to created a label file for FFPE H&E glass slides. Two FFPE H&E glass slide labels will be created for each FFPE block, with names consisting of the FFPE block name plus suffix ".he-F" and ".he-E", respectively, where "F" and "E" indicate rest material at the front and end of the sectioned block (historically, the letters indicate the Swedish words "Före" and "Efter", meaning "Before" and "After").
Last edited 5 years ago by olle (previous) (diff)

comment:164 by olle, 5 years ago

(In [5070]) Refs #1029. FFPE block order form wizard updated by renaming button for downloading an FFPE block order form to "Download FFPE block order form":

  1. JSP file ffpe_block_order_form.jsp in resources/personal/ updated by renaming button for downloading FFPE form order form to "Download FFPE block order form".

comment:165 by olle, 5 years ago

(In [5071]) Refs #1029. Updates due to version number change to "1.6.0a9".

  1. Version number changed to "1.6.0a9":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:166 by olle, 5 years ago

(In [5072]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:167 by olle, 5 years ago

(In [5073]) Refs #1029. FFPE block registration wizard updated by fixing typo:

  1. JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ updated in step 1 header by fix of typo.

comment:168 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2018-11-05, some modifications of the MeLuDI software were decided:
  1. BASE-line registration:
    a. Input CSV file should be imported to BASE file system before contents parsed for BASE-line registration.
    b. Data parsed from the input file should be presented for the user before registration, but the data should not be editable. If something is wrong, the input file has to be corrected, or a new input file supplied, thus ensuring that the contents of the input file corresponds to the registered data.
  2. FFPE block order form:
    a. Input should be updated to be from a multiple-choice list with referral numbers where consent has been given, and where the referral numbers have not previously been used on an FFPE block order form.
    b. Several FFPE order forms should be included in a created PDF file.
    c. MeLuDI should keep track of what referral numbers have been used in FFPE block order forms.
    d. The final step should include a new button "Form OK" to register current referral numbers as having been used in FFPE block order forms.
    e. The FFPE block order form updated to only have the personal number printed with bar code in the upper left and medium right positions, while the personal number without bar code in the upper right position should be removed.
  3. FFPE block registration form:
    a. Typo should be fixed in step 1 of the wizard (see change set [5073]).
    b. Each FFPE block should have input fields for PAD, material number (block number), and localization.
  4. FFPE section order form:
    a. Form should be updated to print H&E glass names on separate lines.
    b. Form should be updated to print material number instead of PAD number.
    c. H&E glass names should consist of FFPE block name plus suffix ".F" or ".E" (for "Före"/"Front" and "Efter"/"End", respectivly), i.e. string "he-" is removed from suffix.
    d. The FFPE section name should be printed as bar code and text, in addition to FFPE block name.
    e. The offset for printed text and bar codes between adjacent FFPE block entries has to be adjusted, as the height of the frame for each has been increased, in order to accompany more information/input lines.
    f. The final step should include a new button "Form OK" to register current FFPE block items as having been used in FFPE section order forms.
    g. Label file for H&E glass items should be updated to use names consisting of FFPE block name plus suffix ".F" or ".E" (for "Före"/"Front" and "Efter"/"End", respectivly), i.e. string "he-" is removed from suffix.
    h. Clicking on a button to download a label file should not result in a dialog asking if the user wants to leave the current page (this works with the previous label generation wizard).
  5. FFPE section (specimen) registration:
    a. A new annotation for "% Tumor cells" is needed, in addition to the one for "% Viable tumor cells".
    b. String "Viable" removed in "% Viable tumor cells".
    c. PAD exchanged for material number (FFPE block number).
    d. Two H&E glass items should be created for each FFPE section, with names consisting of FFPE block name plus suffix ".F" or ".E" (for "Före"/"Front" and "Efter"/"End", respectivly). Each H&E glass item should have the value of % tumor cells saved in an annotation.
    e. Specimens should be created without box storage data, as all section material will be used for extraction.
    f. DNA and RNA extract items with predetermined box positions should be created for each specimen, in order to adhere to the standard MeLuDI extraction pipeline.
  6. Case Summary:
    a. Support for new FFPE block annotations should be added.
    b. Support for H&E glass items should be added, with report rows for annotation values for % tumor cells.
    c. Related item highlight feature should be imported from Reggie (when an item is clicked, downstream items with same beginning of name are shown with green background).
  7. General/Other:
    a. MeLuDI should be updated for use with BASE version 10 before deployment (currently BASE version 7 is used).
Last edited 5 years ago by olle (previous) (diff)

comment:169 by olle, 5 years ago

(In [5074]) Refs #1029. FFPE block registration wizard updated for new input fields and annotations:

  1. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated:
    a. Function initializeStep3() updated by adding input fields for material number and localization.
    b. Function submit() updated by obtaining values from input fields for material number and localization and including the former in JSON object sent to BaseLineRegistrationServlet for command "RegisterFFPEBlocks".
  2. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in FFPE block section by adding rows for material number and localization.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by reporting values for material number and localization.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final MATERIAL_NUMBER and LOCALIZATION String annotation types for sample (FFPE block) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation types Annotationtype.MATERIAL_NUMBER (requiring Patient Curator permission) and Annotationtype.LOCALIZATION. Also, the annotation types are added to annotation type category "FFPE block".
  6. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadFfpeBlockInfo(DbControl dc, FfpeBlock ffpeBlock) to add values for Annotationtype.MATERIAL_NUMBER and Annotationtype.LOCALIZATON to returned JSON object for JSON keys "materialNumber" and "localization", respectively.

comment:170 by olle, 5 years ago

(In [5075]) Refs #1029. Annotation type Annotationtype.LOCALIZATION updated to not disable logging, as the value is not restricted information:

  1. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated for public static final LOCALIZATION String annotation type for sample (FFPE block) items to not disable logging, as the value is not restricted information.

comment:171 by olle, 5 years ago

(In [5082]) Refs #1029. FFPE section order form generation updated for new PDF template to:
i. Print material number (block number) instead of PAD number.
ii. Print H&E glass names on separate lines.
iii. H&E names updated to consist of FFPE block name plus suffix ".F" or ".E", respectively.
iv. Print FFPE section name as bar code and text, in addition to FFPE block name.
v. Offset for printed text and bar codes between adjacent FFPE block entries adjusted to new height of the frame for each section.

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) updated to:
    ii. Print H&E glass names on separate lines.
    iii. H&E names updated to consist of FFPE block name plus suffix ".F" or ".E", respectively.
    iv. Print FFPE section name as bar code and text, in addition to FFPE block name.
    v. Offset for printed text and bar codes between adjacent FFPE block entries adjusted to new height of the frame for each section.

comment:172 by olle, 5 years ago

(In [5083]) Refs #1029. FFPE section order form wizard updated when creating label files for FFPE H&E glass slides for unused material to use H&E glass names consisting of FFPE block name plus suffix ".F" or ".E", respectively:

1 Java servlet class/file LabelGenerationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetHeGlassLabelFile" when creating label files for FFPE H&E glass slides for unused material to use H&E glass names consisting of FFPE block name plus suffix ".F" or ".E", respectively.

comment:173 by olle, 5 years ago

(In [5084]) Refs #1029. FFPE section order form wizard updated to show material number instead of PAD numbers in initial FFPE block selection list. Also, clicking on a button to download a label file updated to not result in a dialog asking if the user wants to leave the current page:

  1. Javascript file ffpe_section_order_form.js in resources/personal/ updated:
    a. Function initializeStep1(response) updated to show material number instead of PAD numbers in initial FFPE block selection list.
    b. Function downloadFfpeSectionLabelFile() updated to use command window.open(url) instead of "window.location = url" to open a download dialog for a label file.
    c. Function downloadHeGlassLabelFile() updated to use command window.open(url) instead of "window.location = url" to open a download dialog for a label file.

comment:174 by olle, 5 years ago

(In [5092]) Refs #1029. Support for showing connected "chained" items in Case Summary added, indicating items, where the connection is detectable in the names. The implementation closely follows that in extension Reggie, plus modification for variable item name lengths and including FFPE block items:

  1. CSS file case_summary.css in resources/css/ updated by adding rules for table column header layout for classes "chained" and "chained.rootitem" (background color).
  2. New image parent-child.png added in resources/images/.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated:
    a. New global JSONArray chainedItems added.
    b. Function caseInfoLoaded(response) updated with new variables maxItemsInLeftCol and maxItemsInRightCol. Calls of function asLink(itemType, item, maxLength, chainable) updated to set maxLength to 0 and chainable to true for FFPE block, specimen, RNA, DNA, mRNA, cDNA, and library items. Chained items are added to event handler coupled to new function chainedItemOnClick(event).
    c. Function asLink(itemType, item, maxLength, chainable) updated with new arguments maxLength and chainable. If the value of chainable is true, a link is added to new image parent-child.png.
    d. New function chainedItemOnClick(event) added. It obtains a target list of chained items and calls new function highlightChainedItems(targetList, scrollTo) and adds class 'rootitem' to the parent node.
    e. New function highlightChainedItems(targetList, scrollTo) added. It highlights all items that share part of the name with the target that was clicked. Note that parent items have a shorter name and child items have a longer name so two tests are needed.
    f. New function hasCommonElement(list1, list2) added. It is used by function highlightChainedItems(...) and checks if the two lists have at least a pair of elements where one is a substring of the other.
    g. New function getDefaultColClass(item, yellowPrefixes) added. It sets the default color class from the base name of the items.

comment:175 by olle, 5 years ago

(In [5093]) Refs #1029. Basic support for Histology and H&E glass items added. The implementations are based on the corresponding items in Reggie, but with only a subset of features:

  1. JSP file case_summary_alt_rec.jsp in resources\reports\ updated with section for histology items.
  2. Javascript file case_summary_alt_rec.js in resources\reports\ updated in function caseInfoLoaded(response) by adding support for histology items.
  3. New data access object file HeGlass.java in src/net/sf/basedb/meludi/dao/ added.
  4. New data access object file Histology.java in src/net/sf/basedb/meludi/dao/ added. Public static method List<Histology> findByCaseName(DbControl dc, String name) updated to use String annotation Annotationtype.CASE_ID to check if a histology item is connected to a case item.
  5. Data access object file Subtype.java in src/net/sf/basedb/meludi/dao/ updated by adding new histology related Subtype item HISTOLOGY of type Item.SAMPLE.
  6. Java servlet class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add checks for new sub type Subtype.HISTOLOGY and corresponding annotation type category.
  7. Java servlet CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetCaseInfo" to find histology items and add the results to JSON object with JSON key "histology".
    b. New private method void loadHistologyInfo(DbControl dc, Histology his) added.

comment:176 by olle, 5 years ago

(In [5094]) Refs #1029. MeLuDI updated with new configuration variables he-glass-box-prefix and he-glass-box-num-digits, specifying a prefix for H&E glass box names and number of digits in the serial number part of the name for H&E glass boxes.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> with new XML tags <he-glass-box-prefix> and <he-glass-box-num-digits>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated with new public static methods String fetchHeGlassBoxPrefix(int activeProjectId) and Integer fetchHeGlassBoxNumDigits(int activeProjectId). They call private static methods ProjectConfig fetchProjectConfig(int activeProjectId) to obtain a ProjectConfig object, from which the desired configuration values are returned.
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to obtain new configuration values "he-glass-box-prefix" and "he-glass-box-num-digits" for each project from the meludi-config.xml configuration file, and store the values in new instance variables in ProjectConfig objects for the projects.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated with new private instance variables and corresponding public accessor methods for new configuration values.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" to store new configuration values for H&E glass name prefix and number of digits for active project in returned JSONObject for JSON keys "heGlassBoxPrefix" and "heGlassBoxNumDigits".

comment:177 by olle, 5 years ago

(In [5095]) Refs #1029. Updates needed for FFPE blocks in selection menus to show value of material number (FFPE block number):

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "GetFfpeBlocks", "GetFfpeBlocksUnusedForSectionOrderForm", "GetFfpeBlocksUnusedForSection", "GetUnreturnedFfpeBlocks", and "GetReturnedFfpeBlocks" to add value of material number for JSON key "materialNumber".

comment:178 by olle, 5 years ago

(In [5110]) Refs #1029. Support for showing connected "chained" items in Case Summary updated with new image of small right-pointing triangle/arrow, used to identify the selected root item, in addition to a bright yellow background:

  1. New image marked.png added in resources/images/.

comment:179 by olle, 5 years ago

(In [5111]) Refs #1029. FFPE section registration wizard prepared for new sample subtypes and annotations:

  1. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final TUMOUR_CELLS_PERCENT integer annotation type for sample (Stained) items. This annotation type is a supplement to existing annotation type VIABLE_TUMOUR_CELLS_PERCENT, which is not always appropriate due to the specification "Viable" in the name.
  2. Java class/file BioplateType.java in src/net/sf/basedb/meludi/dao/ updated with new public static final BioplateType HE_GLASS for the "HE stain glass" plate type.
  3. Java class/file Subtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final Subtype STAINED for sample items.
  4. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new subtypes Subtype.STAINED and Subtype.HISTOLOGY, bioplate type BioplateType.HE_GLASS, and annotation types Annotationtype.TUMOUR_CELLS_PERCENT and Annotationtype.IHC. Also, annotation type Annotationtype.TUMOUR_CELLS_PERCENT was added to annotation type category Subtype.STAINED.

comment:180 by olle, 5 years ago

(In [5114]) Refs #1029. FFPE section (specimen) registration wizard updated:

  1. Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ updated:
    a. Function initializeStep2() updated to support input of material number (FFPE block number), creation of DNA and RNA extracts with storage locations, as well as H&E glass items. Servlet BaseLineRegistration is called with command "FindStoragePositions" to find various storage positions.
    b. New functions storagePositionsLoaded(response), boxOnKeyUp(event), wellOnChange(event), onBoxValidated(response, boxType, index), and nofSectionsOnChange(event) added to manage new input alternatives.
    c. Function submit() updated to send new input data to servlet BaseLineRegistration with command "RegisterFFPESections".
  2. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "FindStoragePositions" to find storage positions for DNA and RNA extracts, as well as H&E glass items.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterFFPESections" to store material number as annotation on specimen, create DNA and RNA extracts with storage locations, as well as for each specimen create a histology item coupled to two Stained sample items for "F" ("Front") and "E" ("End") residual material from the sectioning. Each Stained sample item is placed on a H&E glass item, which is given a storage position in a glass slide box (the bioplate Tray and Position parameters are used for box name and position in box, respectively).

comment:181 by olle, 5 years ago

(In [5115]) Refs #1029. Case summary updated to support new naming scheme for DNA and RNA extracts, as well as histology, H&E glass, and Stained sample items:

  1. JSP file case_summary_alt_rec.jsp in resources\reports\ updated in histology section with support for "F" and "E" H&E glass items and tumour cell percentages for the corresponding Stained samples.
  2. Javascript file case_summary_alt_rec.js in resources\reports\ updated in function caseInfoLoaded(response) by adding support for "F" and "E" H&E glass items and tumour cell percentages for the corresponding Stained samples.
  3. Data access object file Dna.java in src/net/sf/basedb/meludi/dao/ updated in public static method List<Dna> findByCaseName(DbControl dc, String name) when no extract items are found from the input case name, to first try to find specimen items with value of annotation type Annotationtype.CASE_ID equal to the input case name, in which case the extract search is repeated with each specimen name as input, instead of the case name. The update was designed not to break working functionality for MeLuDI projects using the original naming scheme, while also work with the new scheme.
  4. Data access object file Rna.java in src/net/sf/basedb/meludi/dao/ updated in public static method List<Rna> findByCaseName(DbControl dc, String name) when no extract items are found from the input case name, to first try to find specimen items with value of annotation type Annotationtype.CASE_ID equal to the input case name, in which case the extract search is repeated with each specimen name as input, instead of the case name. The update was designed not to break working functionality for MeLuDI projects using the original naming scheme, while also work with the new scheme.
  5. Java servlet CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadHistologyInfo(DbControl dc, Histology his) to get information for Stained child sample items to input histology item. If Stained items are found, values of annotation type Annotationtype.TUMOUR_CELLS_PERCENT are obtained, as well as the ID, name, and bioWell of the item (the bioWell will always be "A1" for these items, as only one stained item is plced on each H&E glass slide).

comment:182 by olle, 5 years ago

  • Known issues with current FFPE section (specimen) registration wizard:
  1. Routine for finding a storage box for a H&E glass item currently only works, when no existing box exists. The existing name that is obtained is that of the stained item, not the "Tray" item, that should be used.
  2. Routine for finding a storage box should move to a new box, when the current one is filled. This functionality is currently missing.

It is essential that these issues are fixed before deployment.

comment:183 by olle, 5 years ago

(In [5116]) Refs #1029. FFPE block order form wizard updated to no longer write personal number without bar code in the upper right part of the form, since it is printed with bar code in the upper left and medium right positions:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String pad, String personalNumber, String familyName, String allFirstNames, List<String> formTemplateFileList) to no longer write personal number without bar code in the upper right part of the form, since it is printed with bar code in the upper left and medium right positions.

comment:184 by olle, 5 years ago

(In [5119]) Refs #1029. FFPE section (specimen) registration wizard updated by fixing problems in code for finding H&E glass box names and positions in boxes to work when some positions already have been assigned, and when a box is filled:

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "FindStoragePositions" by fixing problems in code for finding H&E glass box names and positions in boxes to work when some positions already have been assigned, and when a box is filled.

comment:185 by olle, 5 years ago

(In [5121]) Refs #1029. FFPE section (specimen) registration wizard updated with bug fix when finding H%E glass box position, when no box exists. Also marking registered items as used, so as not to appear in selections list for FFPE section registration wizard again:

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "FindStoragePositions" with bug fix when finding H%E glass box position, when no box exists.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterFFPESections" by marking registered items as used, so as not to appear in selections list for FFPE section registration wizard again.

comment:186 by olle, 5 years ago

(In [5126]) Refs #1029. FFPE section (specimen) registration wizard updated to base H&E glass item name on FFPE block name instead of FFPE section name (no ".s" in name):

  1. Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ updated in function initializeStep2() to base H&E glass item name on FFPE block name instead of FFPE section name (no ".s" in name).
  2. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterFFPESections" to to base H&E glass item name on FFPE block name instead of FFPE section name (no ".s" in name).

comment:187 by olle, 5 years ago

(In [5127]) Refs #1029. FFPE section order form wizard updated with new button "Form[s] OK" in final step. FFPE sections will now only be registered as used for FFPE section order form if the button is pressed:

  1. JSP file ffpe_section_order_form.jsp in resources/personal/ updated in final step with new button "Form[s] OK" with id "formsok".
  2. Javascript file ffpe_section_order_form.js in resources/personal/ updated:
    a. Function initPage() updated with click handler for button "Form[s] OK" with id "formsok", coupled to new function formsOk().
    b. Function initializeStep2(response) updated to show button "Form[s] OK" with id "formsok".
    c. New function formsOk() added. It calls ReferralGeneratorServlet with new command "RegisterFfpeSectionOrderFormsAsOk", supplying a list of selected FFPE blocks.
  3. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeSectionOrderForm" to no longer set value of Boolean annotation Annotationtype.USED_FOR_FFPE_SECTION_ORDER_FORM to true for processed FFPE block items.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "RegisterFfpeSectionOrderFormsAsOk" to set value of Boolean annotation Annotationtype.USED_FOR_FFPE_SECTION_ORDER_FORM to true for processed FFPE block items.

comment:188 by olle, 5 years ago

(In [5128]) Refs #1029. Updates due to version number change to "1.6.0a10".

  1. Version number changed to "1.6.0a10":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:189 by olle, 5 years ago

(In [5129]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:190 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2018-11-21, some modifications of the MeLuDI software were decided:
  1. BASE-line registration:
    a. Blood tube boxes should have names consisting of the storage box prefix and number of digits configured for the project, plus suffix "_bl" (for "blood" or "base-line").
    b. Blood store boxes are 10x10, not 9x9 as previously assumed
  2. FFPE block registration:
    a. Parameter/annotation type "Localization" should be renamed "Localisation".
  3. FFPE section order form:
    a. The asterisk prefix for "Yellow label" samples should be the yellow star image used in Case Summary.
  4. FFPE section registration:
    a. When storage is discussed, "located" should be changed to "placed" in help text.
  5. Wizards in general:
    a. Date input fields and calendar icon buttons should be supplemented by a "Today" button.
  6. Case summary:
    a. FFPE block section should be updated with entry for returned date.
  • Items decided at the SCAN-B-rec/MeLuDI meeting 2018-11-05, that still have to be implemented:
  1. BASE-line registration:
    a. Input CSV file should be imported to BASE file system before contents parsed for BASE-line registration.
    b. Data parsed from the input file should be presented for the user before registration, but the data should not be editable. If something is wrong, the input file has to be corrected, or a new input file supplied, thus ensuring that the contents of the input file corresponds to the registered data.
  2. FFPE block order form:
    a. Input should be updated to be from a multiple-choice list with referral numbers where consent has been given, and where the referral numbers have not previously been used on an FFPE block order form.
    b. Several FFPE order forms should be included in a created PDF file.
    c. MeLuDI should keep track of what referral numbers have been used in FFPE block order forms.
    d. The final step should include a new button "Form OK" to register current referral numbers as having been used in FFPE block order forms.
  3. Case Summary:
    a. Support for new FFPE block annotations should be added.
  4. General/Other:
    a. MeLuDI should be updated for use with BASE version 10 before deployment (currently BASE version 7 is used).
Last edited 5 years ago by olle (previous) (diff)

comment:191 by olle, 5 years ago

(In [5135]) Refs #1029. Case summary updated in FFPE block section by adding row for "Returned" date:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in FFPE block section by adding row for "Returned" date.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by reporting value for date an FFPE block was returned.
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadFfpeBlockInfo(DbControl dc, FfpeBlock ffpeBlock) to add value for Annotationtype.RETURNED_DATE to returned JSON object for JSON key "returnedDate".

comment:192 by olle, 5 years ago

(In [5137]) Refs #1029. FFPE section registration wizard updated in help text by changing "located" to "placed", when referring to storage:

  1. Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ updated in function initializeStep2() by changing "located" to "placed", when referring to storage in help text.

comment:193 by olle, 5 years ago

(In [5149]) Refs #1029. BASE-line registration from file updated to support CSV input file on BASE file system:

  1. Javascript file meludi-2.js in resources/ updated:
    a. Function wizard.initFileSelectionField(element) updated by exchanging call meludi.getSubtypeInfo(subtype) for Meludi.getSubtypeInfo(subtype). This change is more important than it looks, as it is essential for the current code to work.
    b. New functions wizard.getSubtypeInfo(subtype), wizard.getDataFileTypeInfo(filetype), and wizard.setCurrentDirectory(path) added.
  2. JSP file baseline_from_file_alt_rec.jsp in resources/personal/ updated in step 1 to exchange a file input field for a text input field with data-subtype="BASE_LINE_CSV", data-name-filter="%.csv", and data-directory="/home/SCAN-B-rec/BaselineFiles", plus a BASE button "Browse..." with id equal to "baseLineFile.btn".
  3. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated*:
    a. Function initPage() updated with initial call Wizard.initFileSelectionField('baseLineFile').
    b. Function validateStep1(event) updated to value of variable file from frm.baseLineFile.value instead of frm.baseLineFile.files[0], due the change of type of input field baseLineFile.
    c. Function baseLineFileOnChange() updated to get value of variable file from frm.baseLineFile.value, after which BaseLineRegistrationServlet is called with new command "ImportBaseLineFile" to extract the lines from the input file and send them in a JSONArray to function parseBaseLineFile(data).
    d. Function parseBaseLineFile(data) updated to obtain text lines from servlet response in JSONArray with JSON key "baseLineData" and assume a "tab" separator for columns. Also, help text for box storage updated to use "placed" instead of "located". Call Doc.show('goregister') added at end to show "Register" button.
  4. Java data access object (DAO) class/file Subtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final Subtype BASE_LINE_CSV for file items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new subtype Subtype.BASE_LINE_CSV.
  6. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) by adding new command "ImportBaseLineFile". It obtains value of file path in BASE file system from input parameter "csvPath", after which it reads lines from the file and returns them in JSONArray with JSON key "baseLineData".

comment:194 by olle, 5 years ago

(In [5152]) Refs #1029. BASE-line registration from file updated to use 10x10 blood boxes instead of 9x9, as previously assumed:

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Private method BioWell fetchBioWell(DbControl dc, JSONObject jsonSpec, HashMap<String, BioPlate> bioPlateNamePlateHashMap, String boxType) updated for box type equal to "Blood" to call new private method BioPlate createStorageBox(DbControl dc, String plateName, String geometryString) with argument geometryString equal to "100-well (10x10)", when creating a new storage box item.
    b. Private method BioPlate createStorageBox(DbControl dc, String plateName) updated to call new private method BioPlate createStorageBox(DbControl dc, String plateName, String geometryString) with argument geometryString equal to "81-well (9 x 9)", when creating a new storage box item.
    c. New private method BioPlate createStorageBox(DbControl dc, String plateName, String geometryString) added. It is based on previous private method BioPlate createStorageBox(DbControl dc, String plateName), but uses the geometryString argument when specifying the plate geometry, instead of assuming that it is "81-well (9 x 9)".

    Note that the solution above expects that a plate geometry "100-well (10x10)" already exists on the used BASE installation.

comment:195 by olle, 5 years ago

(In [5154]) Refs #1029. FFPE section order form generation updated to use a yellow asterisk image to mark a "Yellow label" item, instead of a printed asterisk:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) to use a yellow asterisk image to mark a "Yellow label" item, instead of a printed asterisk.

comment:196 by olle, 5 years ago

(In [5155]) Refs #1029. BASE-line registration from file updated for 10x10 blood boxes to use correct standard for plate geometry name with spaces inside parenthesis:

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method BioWell fetchBioWell(DbControl dc, JSONObject jsonSpec, HashMap<String, BioPlate> bioPlateNamePlateHashMap, String boxType) for box type equal to "Blood" to call private method BioPlate createStorageBox(DbControl dc, String plateName, String geometryString) with argument geometryString equal to "100-well (10 x 10)", when creating a new storage box item, instead of "100-well (10x10)", as was initially used.

comment:197 by olle, 5 years ago

(In [5158]) Refs #1029. FFPE block order form wizard:
i. Input should be from a selection list of case items not registered as used for FFPE block order forms.
ii. An FFPE block order form PDF file should be able to contain several FFPE block order forms.
iii. The final step should contain a new button "Form[s] OK". Cases will be registered as used for FFPE block order form if the button is pressed:

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by updated counter links for FFPE block order form wizard, that uses "cases-unused-for-ffpe-block-order-form".
  2. JSP file ffpe_block_order_form.jsp in resources/personal/ updated in step 1 to allow input from a selection list with id "extractSourceItems". Final step updated with new button "Form[s] OK" with id "formsok".
  3. Javascript file ffpe_block_order_form.js in resources/personal/ updated:
    a. Function initPage() updated by coupling event handler for "extractSourceItems" to new function sourceItemsOnChange(). Button click handler for "formsok" coupled to new function formsOk(). ExtractionServlet called with new command "GetCasesUnusedForFfpeBlockOrderForm" and callback function initializeStep1().
    b. Function initializeStep1(response) updated to populate input selection list extractSourceItems with data from servlet response.
    c. New function sourceItemsOnChange() added. It checks that at least one list item is selected.
    d. Function generateReferralForms() updated to obtain list of selected case items by calling new function getSelectedItemsList(), after which it calls ReferralGeneratorServlet with new command "GenerateFfpeBlockOrderForm" and supplying selected case item list with new parameter "caselist".
    e. Function initializeStep2(response) updated to show new button with id formsok.
    f. Function downloadFormBatch(batchType) updated to get start item name from referral ID of first item in selected case list.
    g. New function formsOk() added. It obtains list of selected case items by calling new function getSelectedItemsList(), after which it calls ReferralGeneratorServlet with new command "RegisterFfpeBlockOrderFormsAsOk".
    h. New function getSelectedItemsList() added. It obtains a list of selected case items from extractSourceItems and returns it as a JSONArray.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated with new public static final USED_FOR_FFPE_BLOCK_ORDER_FORM Boolean annotation type for sample (Case) items.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" to add check for new annotation type Annotationtype.USED_FOR_FFPE_BLOCK_ORDER_FORM. Also, the annotation type is added to annotation type category "Case".
  6. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countCases(DbControl dc, JSONObject json) to return numbers for JSON key "cases-unused-for-ffpe-block-order-form".
  7. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetCasesUnusedForFfpeBlockOrderForm". It returns a JSONArray of case items, that have non-null consent dates and do not have value true for Boolean annotation Annotationtype.USED_FOR_FFPE_BLOCK_ORDER_FORM. Referral ID and personal number for related patient item are returned with each case item.
  8. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GenerateFfpeBlockOrderForm". It generates a PDF file with FFPE block order forms for case items in input list for parameter ""caselist"".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "RegisterFfpeBlockOrderFormsAsOk" to set value of Boolean annotation Annotationtype.USED_FOR_FFPE_BLOCK_ORDER_FORM to true for case items obtained from input parameter "caselist".

comment:198 by olle, 5 years ago

(In [5159]) Refs #1029. BASE-line registration from file updated by disabling input fields showing data from parsed input file, thus ensuring that registered values are those in the parsed file:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated in function parseBaseLineFile(data) to set value of variable disabledAttribute to "disabled", thus disabling input fields showing data from parsed input file.

comment:199 by olle, 5 years ago

(In [5160]) Refs #1029. Annotation type LOCALIZATION renamed LOCALISATION, FFPE block registration wizard updated to fix bugs when registering material number and localisation, and fix of bugs in Case Summary support for material number and localisation:

  1. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated:
    a. Function initializeStep3() updated by exchanging materialNo and localization for materialNumber and localisation, respectively.
    b. Function submit() updated by exchanging materialNo and localization for materialNumber and localisation, respectively.
  2. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in FFPE block section by exchanging localization for localisation.
  3. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by exchanging localization for localisation.
  4. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated for public static final LOCALIZATION String annotation type for sample (FFPE block) items by renaming it LOCALISATION.
  5. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by exchanging Annotationtype.LOCALIZATION for Annotationtype.LOCALISATION.
  6. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated with bug fix in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterFFPEBlocks" to obtain values for material number and localisation from input JSON object and store them in FFPE block annotations Annotationtype.MATERIAL_NUMBER and Annotationtype.LOCALISATION, respectively.
  7. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method void loadFfpeBlockInfo(DbControl dc, FfpeBlock ffpeBlock) by exchanging localization and Annotationtype.LOCALIZATON for localisation and Annotationtype.LOCALISATON, respectively.

comment:200 by olle, 5 years ago

(In [5162]) Refs #1029. Case summary in section "Statistics and reporting wizards" updated for the SCAN-B-rec project with link to new auxiliary wizard "Case summary shortcut", allowing case for Case summary to be selected from a list of registered cases for the current project. The cases are listed in reverse order, with the newest first, and if the user has administrator or patient curator privileges, the referral ID and patient personal number is shown for each case:

  1. JSP file index.jsp in resources/ updated in section "Statistics and reporting wizards" with new auxiliary wizard "Case summary shortcut" linked to new JSP file case_summary_shortcut_alt_rec.jsp in resources/reports/.
  2. New JSP file case_summary_shortcut_alt_rec.jsp in resources/reports/ added. It is linked to new javascript file case_summary_shortcut_alt_rec.jsp.js in resources/reports/.
  3. Javascript file case_summary_shortcut_alt_rec.jsp.js in resources/reports/ added. It is based on javascript file ffpe_block_order_form.js in resources/personal/, but in function initPage() calls ExtractionServlet with new command "GetCases", in function initializeStep1(response) adds referral ID and personal number to case name, if any of the former variables have values, in function validateStep1(event) at end calls function caseSummary(), and in function caseSummary() sets url to case_summary_alt_rec.jsp and supplies the selected case name.
  4. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) with new command "GetCases". It returns a JSONArray of case items for the current project, adding referral ID and personal number of related patient, if the user has appropriate privileges.
Last edited 5 years ago by olle (previous) (diff)

comment:201 by olle, 5 years ago

(In [5167]) Refs #1029. Updates due to update of BASE version to "3.13.1".

  1. Updates due to update of BASE version to "3.13.1":
    a. Class path file .classpath in / updated.
    b. Outermost Ant XML build file build.xml in / updated.
    c. Extensions XML configuration file extensions.xml in META-INF/ updated.

comment:202 by olle, 5 years ago

(In [5168]) Refs #1029. Updates due to update of BASE version to "3.13.1".

  1. Updates due to update of BASE version to "3.13.1":
    a. README file in / updated in Requirements section to state that BASE 3.13 or later is needed.

comment:203 by olle, 5 years ago

(In [5169]) Refs #1029. MeLuDI updated by removing configuration variables blood-box-prefix, blood-box-num-digits, he-glass-box-prefix, and he-glass-box-num-digits, since names for blood and H&E glass boxes will be based on the standard storage box settings for the project, plus a suffix defining the contents in the box.

  1. MeLuDI configuration XML file template meludi-config.xml in config/ updated in XML block <projects> by removing XML tags <blood-box-prefix>, <blood-box-num-digits>, <he-glass-box-prefix>, and <he-glass-box-num-digits>.
  2. Java class/file Meludi.java in src/net/sf/based/meludi/ updated by removing public static methods String fetchBloodBoxPrefix(int activeProjectId), Integer fetchBloodBoxNumDigits(int activeProjectId), String fetchHeGlassBoxPrefix(int activeProjectId), and Integer fetchHeGlassBoxNumDigits(int activeProjectId).
  3. Java class/file MeludiConfiguration in src/net/sf/based/meludi/ updated in private method void fetchConfiguration() to by removing entries related to configuration values "blood-box-prefix", "blood-box-num-digits", "he-glass-box-prefix", and "he-glass-box-num-digits" for each project from the meludi-config.xml configuration file.
  4. Java data access object class/file ProjectConfig.java in src/net/sf/based/meludi/dao/ updated by removing private instance variables and corresponding public accessor methods for removed configuration values.
  5. Java servlet class/file SessionServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetConfiguration" by removing entries to removed configuration values for blood and H&E glass box names for active project in returned JSONObject for JSON keys "bloodBoxPrefix", "bloodBoxNumDigits", "heGlassBoxPrefix", and "heGlassBoxNumDigits".

comment:204 by olle, 5 years ago

(In [5171]) Refs #1029. Registration wizard for returned FFPE blocks updated with "Today" button for returned date field:

  1. New image file today.png in images/ added.
  2. JSP file ffpe_block_returnal_alt_rec.jsp in resources/personal/ updated with new button with ID "today" to the right of calendar icon for input field for returned date.
  3. Javascript file ffpe_block_returnal_alt_rec.js in resources/personal/ updated:
    a. Function initPage() updated by adding click handler for button "today" coupled to new function returnedDateToday().
    b. New help function Date.prototype.yyyymmdd() added. It returns a date in YYYYMMDD format (taken from https://stackoverflow.com/questions/3066586/get-string-in-yyyymmdd-format-from-js-date-object).
    c. New function returnedDateToday() added. It inserts today's date in input field with id "returnedDate".

comment:205 by olle, 5 years ago

(In [5172]) Refs #1029. BASE-line servlet updated to use project standard storage box settings for names of blood boxes, instead of dedicated configuration values (the code in question is currently unused, and requires more updates to be fully compatible with the new name standard for boxes using a suffix to determine box contents):

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method JSONArray findFreeBloodWells(DbControl dc, Integer nofTubes, String storageBoxSuffix, Boolean fillGaps) for box type equal to "Blood" to no longer use dedicated configuration values for blood box names.

comment:206 by olle, 5 years ago

(In [5173]) Refs #1029. Updates due to version number change to "1.6.0b1".

  1. Version number changed to "1.6.0b1":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:207 by olle, 5 years ago

(In [5174]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:208 by olle, 5 years ago

(In [5175]) Refs #1029. Plate geometry for 10 x 10 wells added:

  1. Java data access object class/file Geometry.java in src/net/sf/basedb/meludi/dao/ updated with new plate geometry public static final Geometry.TEN_BY_TEN for "100-well (10 x 10)" plates/boxes.
  2. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by checking if plate geometry Geometry.TEN_BY_TEN exists, and otherwise create it.

comment:209 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2018-12-04, some modifications of the MeLuDI software were decided:
  1. Referral form generation:
    a. Patient info forms should be removed.
    b. As a result of the removed patient info forms, there is no need to add a blank page after each consent form, the other form in the PDF file to be printed on regular paper, since single-sided printing can now be used.
    c. Names of generated PDF files should be updated by exchanging "meludi" for the project name.
  2. FFPE block order form and FFPE section order form generation:
    a. The generated PDF file should get a name, that makes the content of the file clearer.
  3. FFPE block registration:
    a. Input should be from a list.
    b. A counter should display the number of items in the current list.
    c. A "Today" button should be available for the Arrival date input field.
    d. Individual (shipping) date.
  4. Wizards with a "Form[s] OK" button should display the message below the buttons.
  5. Specimen registration:
    a. Number of sections should not have a default value.
  6. Convenience methods for discriminating between MeLuDI items and extra items in extraction wizards should be updated to support the new naming scheme for items.
Last edited 5 years ago by olle (previous) (diff)

comment:210 by olle, 5 years ago

(In [5201]) Refs #1029. Referral form generation updated to exchange initial string "meludi" in names of generated PDF files for name of active project:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Constant final String REF_FORM_BATCH_BASE_FILENAME updated by removing initial "meludi_".
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateReferralForms" to obtain name of active project and use it as argument, when calling String fetchReferralFormBatchFilePath(int batchType, String projectName).
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeReferralForm" to obtain name of active project and use it as argument, when calling String fetchReferralFormBatchFilePath(int batchType, String projectName).
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeBlockOrderForm" to obtain name of active project and use it as argument, when calling String fetchReferralFormBatchFilePath(int batchType, String projectName).
    e. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeSectionOrderFormSequential" to obtain name of active project and use it as argument, when calling String fetchReferralFormBatchFilePath(int batchType, String projectName).
    f. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateFfpeSectionOrderForm"" to obtain name of active project and use it as argument, when calling String fetchReferralFormBatchFilePath(int batchType, String projectName).
    g. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "DownloadFormBatchFile"" to obtain name of active project and use it as argument, when calling String fetchReferralFormBatchFilePath(int batchType, String projectName) and fetchReferralFormBatchFileName().
    h. Private method String fetchReferralFormBatchFilePath(int batchType, String projectName) updated with new argument String projectName, which is used as new argument when calling fetchReferralFormBatchFileName()
    i. Private method String fetchReferralFormBatchFileName(int batchType, String projectName) updated with new argument String projectName, which is used as new argument when calling private method String fetchReferralFormBatchFileName(int batchType, String startItemIdDigits, String endItemIdDigits, String projectName).
    j. Private method String fetchReferralFormBatchFileName(int batchType, String startItemIdDigits, String endItemIdDigits, String projectName) updated with new argument String projectName, which is used when creating the referral form batch filename.

comment:211 by olle, 5 years ago

Design update:

  • Referral form generation is updated to not include patient info forms by removing the corresponding referral form template PDF file from BASE directory ReferralFormTemplatesInUse in the project directory.

comment:212 by olle, 5 years ago

(In [5202]) Refs #1029. Referral form generation updated to no longer add a blank page after each consent form, since now one-sided printing is to be used also for forms in PDF batch file type 2:

  1. JSP file generate-referral-forms.jsp in resources/personal/ updated in header with instruction text to specify one-sided printing for both PDF batch files.
  2. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) updated to no longer add a blank page after each form.

comment:213 by olle, 5 years ago

(In [5203]) Refs #1029. Registration wizard for FFPE blocks updated with "Today" button for arrival date field:

  1. JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ updated with new button with ID "today" to the right of calendar icon for input field for arrival date.
  2. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated:
    a. Function initPage() updated by adding click handler for button "today" coupled to new function arrivalDateToday().
    b. New help function Date.prototype.yyyymmdd() added. It returns a date in YYYYMMDD format (taken from https://stackoverflow.com/questions/3066586/get-string-in-yyyymmdd-format-from-js-date-object).
    c. New function arrivalDateToday() added. It inserts today's date in input field with id "arrivalDate".

comment:214 by olle, 5 years ago

(In [5204]) Refs #1029. FFPE block order form generation updated to use a name of the downloaded PDF batch file, that makes the content of the file clearer:

  1. Javascript file ffpe_block_order_form.js in resources/personal/ updated in function downloadFormBatch(batchType) to add new parameter altfilename set to string "FFPE_Block_Order_Form", when calling ReferralGeneratorServlet with command "DownloadFormBatchFile".
  2. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "DownloadFormBatchFile" to obtain name of alternative filename from new parameter altfilename, and to use it as new argument when calling private method String fetchReferralFormBatchFileName(int batchType, String startItemIdDigits, String endItemIdDigits, String projectName, String altFilename).
    b. Private method String fetchReferralFormBatchFileName(int batchType, String projectName) updated to call private method String fetchReferralFormBatchFileName(int batchType, String startItemIdDigits, String endItemIdDigits, String projectName, String altFilename) with new argument String altFilename having value null.
    c. Private method String fetchReferralFormBatchFileName(int batchType, String startItemIdDigits, String endItemIdDigits, String projectName, String altFilename) updated with new argument String altFilename. If the latter has a non-null value other than an empty string, the alternative filename is used instead of standard batch base filename and batch type.

comment:215 by olle, 5 years ago

(In [5212]) Refs #1029. Referral form generation updated to not include patient info forms, even if a corresponding PDF template file exists in BASE directory ReferralFormTemplatesInUse in the project directory. This allows the current versions of the patient info PDF template file to be stored together with current version of other PDF template files in the same directory, although the patient info forms will not be generated by the MeLuDI software:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateReferralForms" to no longer call private method PdfUtil createPatientInfoForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList).

comment:216 by olle, 5 years ago

Design discussion regarding the desire that wizards with a "Form[s] OK" button should display the message below the buttons:

  • Since all wizards use the generic Javascript function call Wizard.showFinalMessage(response.messages); to show messages returned in JSON format from servlets, it is not easy to implement a special case, where more than one tag is reserved in the JSP file for messages. Therefore, the next best thing will be chosen: Clicking on a "Form[s] OK" button will add another step named "Form[s] OK" to the wizard, indicating to the user that the button action has been executed, with the result shown in the message tag for the new step.

comment:217 by olle, 5 years ago

(In [5213]) Refs #1029. FFPE block order form and FFPE section order form wizards updated to add another step named "Form[s] OK" to the wizard, when the "Form[s] OK" button is clicked:

  1. JSP file ffpe_block_order_form.jsp in resources/personal/ updated with div tag for new step named "Form[s] OK", after the step for form download.
  2. Javascript file ffpe_block_order_form.js in resources/personal/ updated in function formsOk() to set callback function to servlet request to function advancing to a new step in the wizard.
  3. JSP file ffpe_section_order_form.jsp in resources/personal/ updated with div tag for new step named "Form[s] OK", after the step for form download.
  4. Javascript file ffpe_section_order_form.js in resources/personal/ updated in function formsOk() to set callback function to servlet request to function advancing to a new step in the wizard.

comment:218 by olle, 5 years ago

(In [5214]) Refs #1029. FFPE section (specimen) registration updated to not set a default value for the number of sections (previously a default value of 1 was used):

  1. Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ updated in function initializeStep2() to not set a default value for the number of sections (previously a default value of 1 was used).

comment:219 by olle, 5 years ago

(In [5215]) Refs #1029. FFPE section order form generation updated to use a name of the downloaded PDF batch file, that makes the content of the file clearer:

  1. Javascript file ffpe_section_order_form.js in resources/personal/ updated in function downloadFormBatch(batchType) to add new parameter altfilename set to string "FFPE_Section_Order_Form", when calling ReferralGeneratorServlet with command "DownloadFormBatchFile".

comment:220 by olle, 5 years ago

(In [5216]) Refs #1029. Convenience method boolean itemIsMeludiItem(String itemName, int activeProjectId) in Java class/file Meludi.java updated to support new naming scheme:

  1. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated in public static convenience method boolean itemIsMeludiItem(String itemName, int activeProjectId) updated to support new naming scheme. If blood and sample item prefixes differ (indicating new naming scheme), specimen names are assumed to start with FFPE block item prefix.

comment:221 by olle, 5 years ago

(In [5217]) Refs #1029. Updates due to version number change to "1.6.0b2".

  1. Version number changed to "1.6.0b2":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:222 by olle, 5 years ago

(In [5224]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:223 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-01-10, some modifications of the MeLuDI software were decided:
  1. FFPE block order form generation:
    a. When the "Form[s] OK" button is pressed, a new annotation on the case item should store the current date as the FFPE block order date (it is assumed that the FFPE block order forms are sent the same day as the forms are generated).
  2. FFPE block registration:
    a. Input should be from a list of case items, where FFPE block order forms have been sent, but no FFPE blocks received.
    b. A counter should display the number of items in the current list.
  3. Lab tracking protocol for FFPE extraction:
    a. No QIAcube position or NanoDrop plate position is reported for specimens using the new naming scheme for items. This has to be fixed for the extraction wizards to work.
Last edited 5 years ago by olle (previous) (diff)

comment:224 by olle, 5 years ago

(In [5225]) Refs #1029. Lab tracking protocol for FFPE extraction wizard problems with new name convention for specimen fixed by updating Javascript convenience function isSpecimen(item) in file extraction_utils.js:

  1. Javascript file extraction_utils.js in resources/sampleproc/ updated in function isSpecimen(item) to test new name convention (item name ends with single dot "." followed by a natural number > 0 followed by ".s"), if the input item is not identified as a specimen according to the original name convention (item name ends with single dot "." followed by a natural number > 0)).

comment:225 by olle, 5 years ago

(In [5232]) Refs #1029. Updates due to version number change to "1.6.0b3".

  1. Version number changed to "1.6.0b3":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:226 by olle, 5 years ago

(In [5233]) Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:227 by olle, 5 years ago

(In [5235]) Refs #1029. Counter for number of FFPE blocks unused for section updated with bug fix to hopefully get desired result:

  1. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countFfpeBlocks(DbControl dc, JSONObject json) with bug fix for returned number for JSON key "ffpeblocks-unused-for-section".

comment:228 by olle, 5 years ago

(In [5237]) Refs #1029. FFPE block registration wizard updated to use input from a list of cases with unprocessed FFPE blocks. A counter at the wizard link will display the number of cases for selection:

  1. JSP file index.jsp in resources/ updated in section "Sample compilation and registration" for wizard "FFPE block registration" by adding link to counter with JSON key "cases-with-unprocessed-ffpe-block-orders".
  2. JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ updated to support input from a list of case items. The list has id = "extractSourceItems".
  3. Javascript file ffpe_block_registration_alt_rec.js in resources/reports/ updated:
    a. Function initPage() updated with event handler for field "extractSourceItems" set to function sourceItemsOnChange(). Also, ExtractionServlet called with command "GetCasesWithUnprocessedFfpeBlockOrders" and callback function initializeStep1.
    b. Function initializeStep1(response) added. It obtains a list of case items from the servlet response and populates the selection list.
    c. Function sourceItemsOnChange() checks that one item is selected.
    d. Function getSelectedItemsList() retrieves the list of selected items (here: one item).
    e. Function initializeStep2(event) updated to obtain the case name of the selected case items and call ConsentFormServlet with command "GetCaseInfo", giving the case name as parameter.
  4. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) with new command "GetCasesWithUnprocessedFfpeBlockOrders". It returns a JSONArray of case items for the current project, which have been used for FFPE order forms, but where no FFPE blocks with the case name in question has been registered.
  5. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countFfpeBlocks(DbControl dc, JSONObject json) to return number for JSON key "cases-with-unprocessed-ffpe-block-orders".
Last edited 5 years ago by olle (previous) (diff)

comment:229 by olle, 5 years ago

(In [5243]) Refs #1029. Approving a created FFPE block order form now stored the date of the approval in the case item in new annotation type FFPE_BLOCK_ORDER_DATE, which replaces Boolean annotation type USED_FOR_FFPE_BLOCK_ORDER_FORM:

  1. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated in function initializeStep1(response) by obtaining value of FFPE block order date from JSON date for case item and displaying it in selection info instead of the personal number of the patient.
  2. Java class/file Annotationtype.java in src/net/sf/basedb/meludi/dao/ updated by exchanging public static final USED_FOR_FFPE_BLOCK_ORDER_FORM Boolean annotation type for sample (Case) for FFPE_BLOCK_ORDER_DATE Date annotation type.
  3. Java class/file InstallServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by exchanging USED_FOR_FFPE_BLOCK_ORDER_FORM Boolean annotation type for FFPE_BLOCK_ORDER_DATE Date annotation type.
  4. Java class/file CounterService.java in src/net/sf/basedb/meludi/counter/ updated in private method void countCases(DbControl dc, JSONObject json) to use Annotationtype.FFPE_BLOCK_ORDER_DATE instead of Annotationtype.USED_FOR_FFPE_BLOCK_ORDER_FORM to determine number of cases unused for FFPE block order forms and cases with unprocessed FFPE block orders.
  5. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "GetCasesUnusedForFfpeBlockOrderForm" and "GetCasesWithUnprocessedFfpeBlockOrders" to use Annotationtype.FFPE_BLOCK_ORDER_DATE instead of Annotationtype.USED_FOR_FFPE_BLOCK_ORDER_FORM. Also, for command "GetCasesWithUnprocessedFfpeBlockOrders", the FFPE block order date is added to the JSON case info with JSON key "ffpeBlockOrderDate".
  6. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "RegisterFfpeBlockOrderFormsAsOk" to set value of Annotationtype.FFPE_BLOCK_ORDER_DATE to current date, instead of setting value of Annotationtype.USED_FOR_FFPE_BLOCK_ORDER_FORM to true.

comment:230 by olle, 5 years ago

(In [5249]) Refs #1029. Case summary updated in Case section by adding row for "FFPE block order" date:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated in Case section by adding row for "FFPE block order" date.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by reporting value for date an FFPE block was ordered.
  3. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetCaseInfo" to add value for Annotationtype.FFPE_BLOCK_ORDER_DATE to returned JSON object for JSON key "ffpeBlockOrderDate".

comment:231 by olle, 5 years ago

(In [5251]) Refs #1029. Java class path file updated for new jre version jre1.8.0_201:

  1. Java class path file .classpath in / updated for new jre version jre1.8.0_201.

comment:232 by olle, 5 years ago

(In [5253]) Refs #1029. New convenience method String fetchSpecimenItemPrefix(int activeProjectId) added in Java class/file Meludi.java to support new naming scheme:

  1. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated with new public static convenience method String fetchSpecimenItemPrefix(int activeProjectId) supporting the original and new naming scheme. If sample and FFPE block item prefixes differ (indicating new naming scheme), specimen names are assumed to start with FFPE block item prefix, otherwise sample item prefix.

comment:233 by olle, 5 years ago

(In [5254]) Refs #1029. Convenience method String fetchSpecimenItemPrefix(int activeProjectId) in Java class/file Meludi.java updated by fixing typo in Java Doc:

  1. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated in public static convenience method String fetchSpecimenItemPrefix(int activeProjectId) by fixing typo in Java Doc.

comment:234 by olle, 5 years ago

(In [5255]) Refs #1029. Sample report servlet updated to support the new naming convention:

  1. Java servlet class/file SampleReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private methods JSONObject createSampleCountReport(DbControl dc, JSONObject json, Date startDate, Date endDate, String viewType, String sampleType, String tableAlternatives, String projectFocusFilter), JSONObject createPatientCountReport(DbControl dc, JSONObject json, Date startDate, Date endDate, String viewType), and JSONObject createOverviewReport(DbControl dc, JSONObject json, Date startDate, Date endDate, String projectFocusFilter) to call new static convenience method String Meludi.fetchSpecimenItemPrefix(int activeProjectId) to obtain specimen item prefix.

comment:235 by olle, 5 years ago

(In [5257]) Refs #1029. FFPE block registration updated to display personal number instead of referral ID for items in initial selection list:

  1. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated in function initializeStep1(response) to display personal number instead of referral ID in selection info.

comment:236 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-01-21, some modifications of the MeLuDI software were decided:
  1. Referral form generation:
    a. A button should be added to download a CSV file with data for use with a bar code label printer for printing labels for serum tubes. For each referral ID, 32 lines of data should be added, consisting of "SC2798-" + referral ID without prefix + "-" + numbers 1 to 8 + "-" + numbers 1 to 4. Example for referral ID REC1100001: SC2798-1100001-1-1, ... , SC2798-1100001-1-4, SC2798-1100001-2-1, ... , SC2798-1100001-8-4.
    Update: Due to the label string being too long for printing on the tube levels, the string layout was changed to "2798-" + referral ID without prefix + "-" + numbers 1 to 8 + numbers 1 to 4, i.e. "SC" was removed from the label prefix and the hyphen "-" between the two last digits was removed.
  2. FFPE block registration:
    a. The initial selection list should display the personal number instead of the referral ID for each item in the list.
    b. The first step of the wizard should be supplemented with an input field for an optional personal number, which should be used as the default entry in the list, if entered.
  3. Case summary should be updated for case items to display the FFPE block order date with hyphens separating year, month, and day.
  4. Installation wizard should check that needed directories exist, and if not, try to create them.
  5. Wizard "Add new library preparation kit" in section "Library preparation wizards" refuses to accept project specific prefixes for library preparation kits. This is a bug also in version 1.5, and is not related to introduction of a new name convention.
Last edited 5 years ago by olle (previous) (diff)

comment:237 by olle, 5 years ago

(In [5259]) Refs #1029. Case summary updated in Case section by displaying "FFPE block order" date in format "YYYY-MM-DD":

  1. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function caseInfoLoaded(response) by applying function cs.asDate() on value for date an FFPE block was ordered.
  2. Java servlet class/file CaseSummaryServlet.java in src/net/sf/basedb/meludi/servlet/ updated by adding value for Annotationtype.FFPE_BLOCK_ORDER_DATE to returned JSON object for JSON key "ffpeBlockOrderDate" in private method void loadCaseInfo(DbControl dc, Case theCase), instead of in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetCaseInfo". This modification does not change the resulting output, bu leads to simpler code.

comment:238 by olle, 5 years ago

(In [5264]) Refs #1029. Referral form generation updated with new button to download file with serum labels:

  1. JSP file generate-referral-forms.jsp in resources/personal/ updated by adding new button with ID "downloadlabelfile" and title "Download serum label file".
  2. Javascript file generate-referral-forms.js in resources/personal/ updated:
    a. Function initPage() updated for step 3 by adding click handler for button with ID "downloadlabelfile" coupled to new function downloadLabelFile().
    b. Functions initializeStep3(response) and initializeStep3a(response) updated to show button with ID "downloadlabelfile".
    c. New function downloadLabelFile() added. It calls LabelGenerationServlet with command "GetSerumLabelFile" and submits values for start item name and number of form sets.
  3. Java servlet class/file LabelGenerationServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. New private static constant int sitePrefixLength set to 2.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated with new command "GetSerumLabelFile". It obtains values for start item name and number of form sets, after which it calls new private method String nextItemIdDigits(String itemIdDigits) to obtain the digit part of the referral item names, and uses that to construct label strings for each referral item in question (8 x 4 = 32 labels strings for each referral item). The label strings are added to a file, one line at time, which is then prepared for download.
    c. New private method String nextItemIdDigits(String itemIdDigits) added. It calls new private method String nextItemIdDigits(String itemIdDigits, Integer incr) with argument incr set to 1.
    d. New private method String nextItemIdDigits(String itemIdDigits, Integer incr) added. It constructs the next item digit string with increment incr and returns it.

comment:239 by olle, 5 years ago

(In [5265]) Refs #1029. FFPE block registration updated in step 1:
i. Initial selection list now displays personal number with hyphen "-" for clarity.
ii. Input field for optional personal number added. If a personal number is entered, the corresponding entry in the selection list is selected, if such an entry exists. Personal number with hyphens "-" are supported, in order to allow scanning of personal number from bar code on FFPE block order forms.

  1. JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ updated for step 1 by adding input field for optional personal number with ID "personalNumber".
  2. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated:
    a. Function initPage() updated by adding event handler for input field with ID "personalNumber" coupled to new function personalNumberOnChange().
    b. Function initializeStep1(response) updated to obtain optionl personal number from input field with ID "personalNumber", remove any hyphen, and mark a list entry with the same personal number as selected (if no optional personal number is entered, the first list item is selected by default). Also, the personal number displayed in the selection list is shown with hyphen for clarity. The input field for optional personal number is put in focus at the end of the routine.
    c. Function personalNumberOnChange() updated to remove any hyphen in the input personal number and call ExtractionServlet with command "GetCasesWithUnprocessedFfpeBlockOrders" and callback function initializeStep1(response).

comment:240 by olle, 5 years ago

(In [5266]) Refs #1029. FFPE block registration updated in step 1 by correcting section title:

  1. JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ updated for step 1 by correcting section title to refer to FFPE block registration instead of FFPE block order form generation.

comment:241 by olle, 5 years ago

(In [5271]) Refs #1029. MeLuDI installation wizard updated to check that needed directories exist, and if not, try to create them:

  1. Java class/file Meludi.java in src/net/sf/based/meludi/ updated:
    a. New public static method String fetchReferralFormTemplatesDir(String projectName) added.
    b. Public static method String fetchReferralFormTemplatesDir(int activeProjectId) updated to call new method String fetchReferralFormTemplatesDir(String projectName).
    c. New public static method String fetchReferralFormTemplatesOldDir(String projectName) added.
    d. Public static method String fetchReferralFormTemplatesOldDir(int activeProjectId) updated to call new method String fetchReferralFormTemplatesOldDir(String projectName).
    e. New public static method String fetchBaselineFilesDir(String projectName) added.
    f. Public static method String fetchBaselineFilesDir(int activeProjectId) updated to call new method String fetchBaselineFilesDir(String projectName).
    g. New private static method ProjectConfig fetchProjectConfig(String projectName) added.
    h. Private static method ProjectConfig fetchProjectConfig(int activeProjectId) updated to call new method ProjectConfig fetchProjectConfig(String projectName).
    i. New public static method String fetchSitePrefixHashList(String projectName) added.
    j. New public static method HashMap<String,String> fetchSiteKeySitePrefixHashMap(String projectName) added.
    k. Public static method HashMap<String,String> fetchSiteKeySitePrefixHashMap(int activeProjectId) updated to call new method HashMap<String,String> fetchSiteKeySitePrefixHashMap(String projectName).
  2. Java servlet class/file InstallServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" updated to check that needed directories exist, and if not, try to create them.
    b. New public method Directory createDirectory(SessionControl sc, Path path, PermissionOptions... permissions) added.
    c. New public method JSONObject checkDirectory(DbControl dc, String name, boolean createIfMissing, PermissionOptions... permissions) added.

comment:242 by olle, 5 years ago

(In [5272]) Refs #1029. Wizard "Add new library preparation kit" in section "Library preparation wizards" updated to accept project specific prefixes for library preparation kits:

  1. JSP file add_new_libprep_kit.jsp in resources/libprep/ updated for kit name input field to have static help text replaced by <div> tag with ID "kitNameText".
  2. Javascript file add_new_libprep_kit.js in resources/libprep/ updated in function nextKitNameLoaded(response) to obtain values for kit name prefix and number of digits in name from JSON response and use them in help text <div> tag with ID "kitNameText". Also, function kitNameOnChange() is called at end of routine to check if kit name is valid.
  3. Java servlet class/file LabelGenerationServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetNextAutoGeneratedKitName" to return kit name prefix and number of digits in name in JSON response for JSON keys "kitNamePrefix" and "numDigitsInName", respectively.

comment:243 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-02-14, some modifications of the MeLuDI software were decided:
  1. Referral form generation:
    a. The BASE-line referral form sticker label, that previously had added text and bar code consisting of <referral-ID> + ".b3", should only have added text and bar code consisting of <referral-ID> only, since this label will be put on a paper form.
  2. BASE-line registration:
    a. When navigating to a BASE directory for the input CSV file, MeLuDI should start in the default directory.
    b. Column identification in the routine should desirably not use information on the column headers, since these contain national characters, that depend on a specific character set being used to be identified correctly.

comment:244 by olle, 5 years ago

In 5311:

Refs #1029. Referral generation updated for BASE-line referral form in sticker label, that previously had added text and bar code consisting of <referral-ID> + ".b3", to now only have added text and bar code consisting of <referral-ID> only, since this label will be put on a paper form:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) for sticker label, that previously had added text and bar code consisting of <referral-ID> + ".b3", to now only have added text and bar code consisting of <referral-ID> only.

comment:245 by olle, 5 years ago

In 5312:

Refs #1029. BASE-line registration wizard updated to assume fixed known column positions in the input file:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated in function parseBaseLineFile(data) to assume fixed known column positions in the input file.

comment:246 by olle, 5 years ago

In 5313:

Refs #1029. BASE-line registration wizard updated to find column delimiter from first found character of comma, semicolon, or tab in the input file:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated in function parseBaseLineFile(data) to find column delimiter from first found character of comma, semicolon, or tab in the input file. The delimiter is found by calling new function findSeparatorFromJSONArray(data, jsonKey) in file extraction_utils.js.
  2. Javascript file extraction_utils.js in resources/sampleproc/ updated with new function findSeparatorFromJSONArray(data, jsonKey). It obtains a JSONArray from JSONObject data for JSON key jsonKey and then finds column delimiter from first found character of comma, semicolon, or tab. If none is found, null is returned.

comment:247 by olle, 5 years ago

In 5324:

Refs #1029. Case summary shortcut wizard in section "Statistics and reporting wizards" for the SCAN-B-rec project updated by removing unused code:

  1. JSP file case_summary_shortcut_alt_rec.jsp in resources/reports/ updated by removing unused code.
  2. Javascript file case_summary_shortcut_alt_rec.jsp.js in resources/reports/ updated by removing unused code.

comment:248 by olle, 5 years ago

In 5325:

Refs #1029. Case summary in section "Statistics and reporting wizards" updated for other projects than SCAN-B-rec with link to new auxiliary wizard "Case summary shortcut", allowing case for Case summary to be selected from a list of registered cases for the current project. The cases are listed in reverse order, with the newest first, and the registration date is shown for each case:

  1. JSP file index.jsp in resources/ updated in section "Statistics and reporting wizards" for other projects than SCAN-B-rec with new auxiliary wizard "Case summary shortcut" linked to new JSP file case_summary_shortcut.jsp in resources/reports/.
  2. New JSP file case_summary_shortcut.jsp in resources/reports/ added. It is linked to new javascript file case_summary_shortcut.js in resources/reports/.
  3. Javascript file case_summary_shortcut.js in resources/reports/ added. It is based on javascript file case_summary_shortcut_alt_rec.js in resources/reports/, and in function initPage() calls ExtractionServlet with command "GetCases", after which it in function initializeStep1(response) adds the registration date to the case name. Function validateStep1(event) at end calls function caseSummary(), and function caseSummary() sets url to case_summary.jsp and supplies the selected case name.
  4. Java data access object class/file Patient.java in src/net/sf/basedb/meludi/dao/ updated in public static method Patient findByCase(DbControl dc, Case theCase) to check that argument theCase is not null, before attempting to use the value.
  5. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetCases" to add registration date for JSON key "registrationDate" for each case item in the returned JSONArray.

comment:249 by olle, 5 years ago

In 5326:

Refs #1029. BASE-line registration wizard updated to find column positions in the input file from regular expressions for column headers, in an attempt to avoid problems with national characters and different character sets:

  1. Javascript file baseline_from_file_alt_rec.js in resources/personal/ updated in function parseBaseLineFile(data) to find column positions in the input file from regular expressions for column headers.

comment:250 by olle, 5 years ago

In 5327:

Refs #1029. MeLuDI installation wizard updated to to no longer check and create sub-directories named after site indexes in the directories for referral form templates, since current projects do not use site-specific referral form template files:

  1. Java servlet class/file InstallServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" updated to to no longer check and create sub-directories named after site indexes in the directories for referral form templates, since current projects do not use site-specific referral form template files.

comment:251 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-03-01, some modifications of the MeLuDI software were decided:
  1. BASE-line registration from file:
    a. It would be advantageous if column identification in the routine could use information on the column headers, since this would allow the column order to be irrelevant. The method should allow national characters in the headers, as long as these are not critical for identifying the column.

comment:252 by olle, 5 years ago

Design update:

  • It has been decided to support import directly from *.xlsx files, since that will solve a lot of problems. Also, export to *.xlsx files should be supported. For referance, see Reggie ticket #1110.
Last edited 5 years ago by olle (previous) (diff)

comment:253 by olle, 5 years ago

In 5329:

Refs #1029. Updates due to version number change to "1.6.0b4".

  1. Version number changed to "1.6.0b4":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:254 by olle, 5 years ago

In 5330:

Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:255 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-04-11, some modifications of the MeLuDI software were decided:
  1. FFPE block registration:
    a. Default number of blocks should be changed from 4 to 1.
    b. It would be advantageous if standard phrases for 'Operator delivery comment' could be selected from a menu.
  2. FFPE section order form: PAD-number should be inserted in previous place for 'Klossnummer', while the latter is moved to previous place for Block ID.
  3. FFPE block returnal registration: Name changed to 'FFPE block return registration'.
  4. FFPE section (specimen) registration: Selection list should only be extended with new items after section order form has been approved.
  5. Case Summary: Functionality for input field 'Find another case' does not work.

comment:256 by olle, 5 years ago

In 5391:

Refs #1029. Referral generation updated to not refer to name of project SCAN-B-rec explicitly in template names, in order to be able to use the sample template names for several BASE projects:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Template name constants updated to to not refer to name of project SCAN-B-rec explicitly in template names.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated to call private method void initializeRefFormTemplNameStartHashMap(SessionControl sc) with new argument SessionControl sc.
    c. Private method void initializeRefFormTemplNameStartHashMap(SessionControl sc) updated with new argument SessionControl sc. The session control is used to obtain the name of the current project, which is used together with an underscore character "_" as prefix to the template form names, when creating the referral form names for the hash map.

comment:257 by olle, 5 years ago

In 5393:

Refs #1029. Referral generation updated for FFPE section order forms to insert PAD-number in previous place for 'Klossnummer' (material number), while the latter is moved to previous place for Block ID:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated: in private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File, pdfFile, List<String> itemIdList, List<String> formTemplateFileList) to insert PAD-number in previous place for 'Klossnummer' (material number), while the latter is moved to previous place for Block ID.

comment:258 by olle, 5 years ago

In 5394:

Refs #1029. FFPE block registration updated in step 2 by changing default number of blocks from 4 to 1:

  1. JSP file ffpe_block_registration_alt_rec.jsp in resources/personal/ updated in step 2 by changing default number of blocks from 4 to 1.

comment:259 by olle, 5 years ago

In 5395:

Refs #1029. Case summary for active project SCAN-B-rec updated by fixing problems with input of a new case identifier in input field in Case Summary wizard:

  1. JSP file case_summary_alt_rec.jsp in resources/reports/ updated for button btnCaseSummary to change id for input field from "caseName" to "caseName_alt_rec", in order to use same name as in code in JSP file index.jsp for project SCAN-B-rec.
  2. Javascript file case_summary_alt_rec.js in resources/reports/ updated in function initPage() to add button handler to function caseSummary for button name btnCaseSummary instead of btnCaseSummary_alt_rec. Function caseSummary(event) updated by commenting out debug alert(...) calls no longer needed.

comment:260 by olle, 5 years ago

In 5396:

Refs #1029. Registration wizard for returned FFPE blocks updated by changing name from "FFPE block returnal registration" to "FFPE block return registration":

  1. JSP file index.jsp in resources/ updated in section "Personal information wizards" by renaming link for FFPE block return registration from "FFPE block returnal registration" to "FFPE block return registration".

comment:261 by olle, 5 years ago

In 5398:

Refs #1029. Registration wizard for returned FFPE blocks updated by changing name from "FFPE block returnal" to "FFPE block return":

  1. JSP file ffpe_block_returnal_alt_rec.jsp in resources/personal/ updated in wizard by renaming title from "FFPE block returnal" to "FFPE block return".

comment:262 by olle, 5 years ago

In 5465:

Refs #1029. Updates due to update of BASE version to "3.15.0".

  1. Updates due to update of BASE version to "3.15.0":
    a. Class path file .classpath in / updated.
    b. Outermost Ant XML build file build.xml in / updated.
    c. Extensions XML configuration file extensions.xml in META-INF/ updated.
    d. README file in / updated in Requirements section to state that BASE 3.15 or later is needed.

comment:263 by olle, 5 years ago

In 5468:

Refs #1029. Updates of BASE method calls due to update of BASE version to "3.15.0". No new method calls added, just updates due to removal of previously deprecated versions of methods. In most cases the name of the method is the same for BASE 3.15, but the required arguments have changed:

  1. Java class/file Meludi.java in src/net/sf/basedb/meludi/.
  2. Data access object files in src/net/sf/basedb/meludi/dao/:
    a. Annotationtype.java
    b. Blood.java
    c. Library.java
  3. Java servlet classes/files in src/net/sf/based/meludi/servlet/:
    a. BaseLineRegistrationServlet.java
    b. CaseSummaryServlet.java
    c. ConsentFormServlet.java
    d. DnaServlet.java
    e. ExtractionServlet.java
    f. InstallServlet.java
    g. LabelGenerationServlet.java
    h. LibPrepServlet.java
    i. MeludiQuarterMonthReportServlet.java
    j. PersonalRegistrationServlet.java
    k. ProtocolServlet.java
    l. ReferralGeneratorServlet.java
    m. SampleReportServlet.java
    n. SessionServlet.java
    o. SpecimenTubeServlet.java
    p. SubtypeServlet.java

comment:264 by olle, 5 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-06-19, some modifications of the MeLuDI software were decided:
  1. Item heritage: Items should be connected via database parent-child relations (currently some items are connected via annotation values). Typically the Patient BioSource item is at the top, with a Case Sample child item.
  2. The naming convention is simplified, in order to shorten the names of most items, which makes it easier to fit the name on a label. Now an item name typically consists of a root item name, consisting of a prefix + a serial number of fixed size, plus a dot ".", a child item specifier character or string ("s" for specimen, "d" for DNA, "r" for RNA), and an optional number, if the item is not the first of the child item type for the root item. The root item serial numbers are chosen from the same series for each root item type, e.g. Case items, FFPE block items, RNAlater items.
  3. DNA and RNA extract items should now be created by the extraction wizard, not earlier.

Changes related to specific wizards:

  1. FFPE block registration:
    a. Support for selecting standard phrases for 'Operator delivery comment' selected from a menu. The first item should be "Clinical TC (%)".
  2. FFPE section (specimen) registration:
    a. Selection list should only be extended with new items after section order form has been approved.
    b. Tumor cell percentage should be moved to its own wizard.
  3. Lab tracking protocol for FFPE extraction: Labels for DNA/RNA should be created.

comment:265 by olle, 5 years ago

In 5540:

Refs #1029. Updates due to update of Java version from to 1.8 to 11 (actually "11.0.2").

  1. Updates due to update of Java version from to 1.8 to 11":
    a. Class path file .classpath in / updated.
    b. Outermost Ant XML build file build.xml in / updated. Properties javac.source and javac.target exchanged for single property javac.release, set to value 11.
    c. README file in / updated in Compiling section to state that Java 11 or later is needed.

comment:266 by olle, 5 years ago

Note: After update of Java version from 1.8 to 11.0.2, Apache Tomcat 9 or later should be used.

comment:267 by olle, 5 years ago

Design comment:

  • When updating the FFPE block registration wizard with support for selecting standard phrases for 'Operator delivery comment' from a menu, for some reason no event handler could be connected to a change of selected value in the menu. As a temporary solution, a button was inserted to add the selected comment into the 'Operator delivery comment' fields, when the button was clicked. The first item is "Clinical TC (%)".

    A solution based on one button per general comment was implemented in MeLuDI v.1.2.1, see change set [3250].

comment:268 by olle, 5 years ago

In 5541:

Refs #1029. FFPE block registration updated in step 3 with support for selecting standard phrases for all 'Operator delivery comment' fields from a menu:

  1. Javascript file ffpe_block_registration_alt_rec.js in resources/personal/ updated in step 3:
    a. Function initializeStep3() updated with section for selecting standard comment for all FFPE blocks from a menu. New menu with id addGeneralCommentSelect added, with initial comment text "Clinical TC (%)". New button also added, for inserting the selected text into the 'Operator delivery comment' fields. The button is attached to a click handler connecting it to new function addCommentGeneral2(event).
    b. New function addCommentGeneral2(event) added. It is based on addCommentGeneral(event), but get comment text from the selected item in menu addGeneralCommentSelect.

comment:269 by olle, 4 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-10-15, some modifications of the MeLuDI software were decided:
  1. MeLuDI should be updated to support creation of referral forms for new project NordicTrip. The project is planned to start at the end of November 2019.

comment:270 by olle, 4 years ago

Design update:

  • As the result of discussions at the SCAN-B-rec/MeLuDI meeting 2019-10-22, some modifications of the MeLuDI software were decided:

Old items decided on meeting 2019-06-19:

  1. Item heritage: Items should be connected via database parent-child relations (currently some items are connected via annotation values). Typically the Patient BioSource item is at the top, with a Case Sample child item.
  2. The naming convention is simplified, in order to shorten the names of most items, which makes it easier to fit the name on a label. Now an item name typically consists of a root item name, consisting of a prefix + a serial number of fixed size, plus a dot ".", a child item specifier character or string ("s" for specimen, "d" for DNA, "r" for RNA), and an optional number, if the item is not the first of the child item type for the root item. The root item serial numbers are chosen from the same series for each root item type, e.g. Case items, FFPE block items, RNAlater items.
  3. DNA and RNA extract items should now be created by the extraction wizard, not earlier.

Changes related to specific wizards: Old items decided on meeting 2019-06-19:

  1. FFPE section (specimen) registration:
    a. Selection list should only be extended with new items after section order form has been approved.
    b. Tumor cell percentage should be moved to its own wizard.
  2. Lab tracking protocol for FFPE extraction: Labels for DNA/RNA should be created.

New items:

  1. FFPE block registration: 0 number of blocks should be allowed.
  2. FFPE section order form: Barcode and text under barcode should contain PAD number + "_" + block/material number.
  3. FFPE section (specimen) registration: Wizard simplified, # of sections.
  4. New wizard: "Case registration" changed to "Select samples to process ()". Labels and box positions available. Lab tracking protocol.
  5. RNA/DNA details text: NanoDrop, RNA, DNA: "Plate" -> "Box" positions.
  6. DNA/RNA Quantification wizard: Null pointer exception should be fixed.
Last edited 4 years ago by olle (previous) (diff)

in reply to:  270 comment:271 by olle, 4 years ago

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

comment:272 by olle, 4 years ago

In 5686:

Refs #1029. MeLuDI updated to prepare for creating referral forms for project NordicTrip:

  1. JSP file index.jsp in resources/ updated by preparing to use some JSP and javascript files dedicated to project NordicTrip. Initially, support is added for referral form generation.
  2. JSP file generate-referral-forms_alt_ntr.jsp in resources/personal/ added. It is intended to be used for referral form generation for project NordicTrip. Initially, it is identical to generate-referral-forms.jsp, except that it references javascript file generate-referral-forms_alt_ntr.js.
  3. Javascript file generate-referral-forms_alt_ntr.js in resources/personal/ added. It is intended to be used for referral form generation for project NordicTrip. Initially, it is identical to generate-referral-forms.js.
  4. Java servlet class/file InstallServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by creating BASE directories for referral form templates for project NordicTrip.

comment:273 by olle, 4 years ago

In 5688:

Refs #1029. Updates due to version number change to "1.6.0b5".

  1. Version number changed to "1.6.0b5":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:274 by olle, 4 years ago

In 5689:

Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:275 by olle, 4 years ago

Design discussion:

  • Some design choices for referral form generation have to be re-evaluated to support generating referral forms for more than one project. One decision is the use of a single text file stored on the server for storing start item numbers and date of last update. Currently an update for one project will affect all other projects, that uses referral form generation, which is totally unacceptable. Two solutions are:
    a. Change the format of the file by adding the project name in its own column, having one line per project. An update for a project should then only affect that project's line in the file.
    b. Storing one file per project, not directly on the server, but in a directory in the BASE file system, that is a sub-directory to the project home directory.

comment:276 by olle, 4 years ago

Design update for the NordicTrip project:

  • 2019-10-28 it was decided that a referral ID should not include a site prefix number. The serial number part of the referral ID should be kept to five digits, so the referral ID part of the MeLuDI configuration for NordicTrip should be changed to

    <referral-num-digits>5</referral-num-digits>
    <uses-site-prefix>false</uses-site-prefix>
    <site-prefix-hash-list></site-prefix-hash-list>

comment:277 by olle, 4 years ago

In 5695:

Refs #1029. Referral form generation updated to store a start info text file in the BASE directory for referral template files to use for a specific project. Also, the referral form generation wizard for the NordicTrip project updated to skip the initial step of selecting a hospital site:

  1. JSP file generate-referral-forms_alt_ntr.jsp in resources/personal/ updated to skip the original first step of selecting a hospital site. Also, references to a 7-digit ID exchanged for a 5-digit ID.
  2. Javascript file generate-referral-forms_alt_ntr.js in resources/personal/ updated to skip the original first step of selecting a hospital site. In order to facilitate comparisons with javascript file generate-referral-forms_alt_rec.js, the name of most functions have not been changed, although they now may be used in another step, than indicated by the function name (however, this might be changed in the future). Function onConfiguration(request) updated to load info on site prefix, if the configuration for the active project indicates that the latter uses a site prefix in the referral ID.
  3. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Variable sitePrefixLength type changed from private static int to private int.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated to set value of sitePrefixLength to 0, if active project is configured not to use a site prefix.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetReferralStartInfo" to call method fetchReferralStartInfo(dc) with DbControl as argument.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "UpdateUsedItemIdDigitsList" to call method fetchReferralStartInfoFile(dc) to get a File item for the referral start info file in the BASE directory for referral template files to use for the active project, and to update that file with the new start info.
    e. Private method void initializeRefFormTemplNameStartHashMap(SessionControl sc) updated to call dc.close() at the end to close the opened DbControl item.
    f. New private method File fetchReferralStartInfoFile(DbControl dc) added. It returns a File item for the referral start info file for the active project.
    g. Private method JSONObject fetchReferralStartInfo(DbControl dc) updated with argument "DbControl dc", and to call new private method File fetchReferralStartInfoFile(DbControl dc) to get a File item for the referral start info file for the active project.

comment:278 by olle, 4 years ago

In 5700:

Refs #1029. Referral form generation updated to support generation of referral forms for project NordicTrip, without affecting generation of referral forms for other projects:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New String constants REF_FORM_TEMPLATE_FOLLOW_UP_TISSUE and TEMPLATE_FILENAME_START_FOLLOW_UP_TISSUE defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetReferralTemplateInfo" to add referral template files of type REF_FORM_TEMPLATE_FOLLOW_UP_TISSUE to JSONArray jsonMultipleTemplFiles.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GenerateReferralForms" to call new private methods int fetchNumBiopsyForms(DbControl dc) and int fetchNumFollowUpForms(DbControl dc) to obtain the number of biopsy and follow-up forms to generate for each serial number, respectively. Also, new private method PdfUtil createFollowUpTissueForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) is called to create follow-up tissue forms.
    d. New private method int fetchNumBiopsyForms(DbControl dc) added. It returns value of constant NUM_BIOPSY_FORMS_DEFAULT, except for project NordicTrip, for which 1 is returned.
    e. New private method int fetchNumFollowUpForms(DbControl dc) added. It returns value of constant NUM_FOLLOW_UP_FORMS_DEFAULT, except for project NordicTrip, for which 1 is returned.
    f. Private method void initializeRefFormTemplNameStartHashMap(SessionControl sc) updated to adapt some mappings for project NordicTrip.
    g. Private method PdfUtil createBarcodeNonStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, List<String> formTemplateFileList) updated to not add bar code with text in upper right section for project NordicTrip.
    h. New private method PdfUtil createFollowUpTissueForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) added. It calls createBarcodeStickerForm(...) for form templates of type REF_FORM_TEMPLATE_FOLLOW_UP_TISSUE.

comment:279 by olle, 4 years ago

In 5702:

Refs #1029. Referral form generation updated in generation of referral forms for project NordicTrip by addition of a special referral form template name prefix for sticker forms, in order to allow customized order of referral forms for label stickers:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New String constants REF_FORM_TEMPLATE_NORDIC_TRIP_STICKER_FORM and TEMPLATE_FILENAME_START_NORDIC_TRIP_STICKER_FORM defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetReferralTemplateInfo" to add referral template files of type REF_FORM_TEMPLATE_NORDIC_TRIP_STICKER_FORM to JSONArray jsonMultipleTemplFiles.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated to call new private method PdfUtil createNordicTripStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) to create NordicTrip sticker forms.
    d. Private method void initializeRefFormTemplNameStartHashMap(SessionControl sc) updated to adapt mappings for NordicTrip sticker forms.
    e. New private method PdfUtil createNordicTripStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) added. It calls createBarcodeStickerForm(...) for form templates of type REF_FORM_TEMPLATE_NORDIC_TRIP_STICKER_FORM.

comment:280 by olle, 4 years ago

Design update for the NordicTrip referral form generation:

  • 2019-11-05 the following changes were decided for referral form generation for project NordicTrip:
    a. The whole blood form for clinical testing should not have any bar code or text added, but should be included in the set of label sticker forms for each serial number.
    b. Label sticker forms should not have bar code/text at the upper right part of the form.

comment:281 by olle, 4 years ago

In 5703:

Refs #1029. Referral form generation updated in generation of referral forms for project NordicTrip:
a. The whole blood form for clinical testing should not have any bar code or text added, but should be included in the set of label sticker forms for each serial number.
b. No label sticker forms should have bar code/text at the upper right part of the form.

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) updated for the NordicTrip project to not add bar code or text to whole blood form for clinical testing. Also, no label sticker forms should have bar code/text at the upper right part of the form.

comment:282 by olle, 4 years ago

In 5707:

Refs #1029. Updates due to version number change to "1.6.0b6".

  1. Version number changed to "1.6.0b6":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:283 by olle, 4 years ago

In 5708:

Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:284 by olle, 4 years ago

In 5726:

Refs #1029. Referral form generation for project NordicTrip updated to use prefix "NT" for referral ID strings, if no prefix could be found from the configuration file:

  1. Javascript file generate-referral-forms_alt_ntr.js in resources/personal/ updated in function initializeStep2a(response) to use prefix "NT" for referral ID strings, if no prefix could be found from the configuration file.

comment:285 by olle, 4 years ago

In 5727:

Refs #1029. Referral form generation updated to add suffix ".b1" and ".b2" to the bar code text of label stickers 7 and 8 from the left (the referral form sheet contains 9 label stickers) for whole blood referral forms, with the exception of the form for clinical testing in the NordicTrip project.:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) to add suffix ".b1" and ".b2" to the bar code text of label stickers 7 and 8 from the left (the referral form sheet contains 9 label stickers) for whole blood referral forms, with the exception of the form for clinical testing in the NordicTrip project.

comment:286 by olle, 4 years ago

Design update for the NordicTrip referral form generation:

  • 2019-11-11 the following changes were decided for referral form generation for project NordicTrip:
    a. Bar code text on referral forms with label stickers should have a suffix added after the referral ID, indicating the referral form type, in order to be able to identify from a test tube label, exactly what label sticker form, the sample is coupled to.
    b. The whole blood forms (except that for clinical testing, that should not have any bar code or text added) bar code text of label stickers 7 and 8 from the left (the referral form sheet contains 9 label stickers) should be updated:
    i. The bar code text should have an added suffix ".b1" and ".b2" at the end of the the bar code text.
    ii. The bar code width should not exceed 17mm, to fit on the used test tubes.
Last edited 4 years ago by olle (previous) (diff)

comment:287 by olle, 4 years ago

  • 2019-11-18 the following changes were decided for referral form generation for project NordicTrip for bar code text on referral forms with label stickers, intended to make the bar code text as short as possible, in order to increase the possibility of the bar code being readable by the PRIME extraction robot at BRCAlab:
    a. The form type identification suffix added after the referral ID in the bar code for referral forms with label stickers should consist of a single lower-case letter.
    b. The whole blood forms (except that for clinical testing, that should not have any bar code or text added) bar code text of label stickers 7 and 8 from the left (the referral form sheet contains 9 label stickers) should should have an added suffix "1" and "2" at the end of the the bar code text.
    c. The number of digits in the serial number part of the referral ID for project NordicTrip could be decreased from 5 to 4, allowing for up to 9999 patients.
Last edited 4 years ago by olle (previous) (diff)

comment:288 by olle, 4 years ago

In 5732:

Refs #1029. Referral form generation updated in generation of referral forms for project NordicTrip:
a. The form type identification suffix added after the referral ID in the bar code for referral forms with label stickers should consist of a single lower-case letter.
b. The whole blood forms (except that for clinical testing, that should not have any bar code or text added) bar code text of label stickers 7 and 8 from the left (the referral form sheet contains 9 label stickers) should have an added suffix "1" and "2" at the end of the the bar code text. The bar code width should not exceed 17mm, to fit on the used test tubes.

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New private static HashMap<String,String> refFormTemplTypeIdentSuffixHM defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated to call new private method void initializeRefFormTemplTypeIdentSuffixHashMap(SessionControl sc).
    c. New private method void initializeRefFormTemplTypeIdentSuffixHashMap(SessionControl sc) added. It maps a two- or three-letter form type identification string to a single lower-case letter.
    d. Private method PdfUtil createBarcodeStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) updated for the NordicTrip project to obtain a two- or three-letter form type identification string from the form template filename, and then call private static HashMap<String,String> refFormTemplTypeIdentSuffixHM to obtain a single lower-case letter to use as form type identification suffix. Also, the bar code text of label stickers 7 and 8 from the left (the referral form sheet contains 9 label stickers) will have an added suffix "1" and "2" at the end of the the bar code text. The bar code on these labels have been modified to not have a width larger then 17mm.

comment:289 by olle, 4 years ago

In 5733:

Refs #1029. Referral form generation updated to allow projects to use different number of digits in the referral ID. Most changes are related to an update of private method String nextItemIdDigits(String itemIdDigits, int numSerialDigits, Integer incr) by adding an extra argument int numSerialDigits, in order to avoid using hard-coded limits:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for commands "UpdateUsedItemIdDigitsList", "GenerateReferralForms", "GenerateFfpeReferralForm", "GenerateFfpeSectionOrderFormSequential", and "DownloadFormBatchFile" to call private methods String nextItemIdDigits(String itemIdDigits, int numSerialDigits) and String nextItemIdDigits(String itemIdDigits, int numSerialDigits, Integer incr) with extra argument int numSerialDigits.
    b. Private method void updateReferralFormLogFile(DbControl dc, String referralVariant, String startItemIdDigits, int nofFormSets, List<String> formTemplateFileList) updated to call private method String nextItemIdDigits(String itemIdDigits, int numSerialDigits, Integer incr) with extra argument int numSerialDigits.
    c. Private method String nextItemIdDigits(String itemIdDigits, int numSerialDigits) updated with extra argument int numSerialDigits, which value is used when calling private method String nextItemIdDigits(String itemIdDigits, int numSerialDigits, Integer incr) with extra argument int numSerialDigits.
    d. Private method String nextItemIdDigits(String itemIdDigits, int numSerialDigits, Integer incr) updated with extra argument int numSerialDigits, which value is used instead of hard-coded limits.

comment:290 by olle, 4 years ago

In 5734:

Refs #1029. Referral form generation wizard for the NordicTrip project updated to refer to a 4-digit ID instead of a 5-digit ID:

  1. JSP file generate-referral-forms_alt_ntr.jsp in resources/personal/ updated to refer to a 4-digit ID instead of a 5-digit ID.

comment:291 by olle, 4 years ago

In 5744:

Refs #1029. Updates of BASE method calls due to update of BASE version to "3.15.0". Calls of Application.getSessionControl(ID, "", req.getRemoteAddr(), true) changed to Application.getSessionControl(ID, null, req.getRemoteAddr(), true), i.e. value of argument externalClientId changed from an empty string to null:

  1. Java class/file Meludi.java in src/net/sf/basedb/meludi/.
  2. Java servlet classes/files in src/net/sf/based/meludi/servlet/:
    a. BaseLineRegistrationServlet.java
    b. CaseSummaryServlet.java
    c. ConsentFormServlet.java
    d. DnaServlet.java
    e. ExtractionServlet.java
    f. InstallServlet.java
    g. LabelGenerationServlet.java
    h. LibPrepServlet.java
    i. MeludiQuarterMonthReportServlet.java
    j. PersonalRegistrationServlet.java
    k. ProtocolServlet.java
    l. ReferralGeneratorServlet.java
    m. SampleReportServlet.java
    n. SessionServlet.java
    o. SpecimenTubeServlet.java
    p. SubtypeServlet.java

comment:292 by olle, 4 years ago

In 5745:

Refs #1029. Updates due to version number change to "1.6.0b7".

  1. Version number changed to "1.6.0b7":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:293 by olle, 4 years ago

In 5746:

Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:294 by olle, 4 years ago

In 5756:

Refs #1029. Registration of blood and FFPE blocks updated to set registered item as child item to the related case item, in an attempt to restore an item heritage structure, that will facilitate navigating the item tree in the BASE interface. The registered item will still have String annotation CASE_ID set to the case name, as currently much of the navigation functionality in MeLuDI for the new naming scheme is depending on this, but it might change in the future:

  1. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "UpdateCase" to set a registered blood item as child item to the related case item.
    b. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterBloodSamples" to set a registered blood item as child item to the related case item.
    c. Protected method void doPost(HttpServletRequest req, HttpServletResponse resp) updated for command "RegisterFFPEBlocks" to set a registered FFPE block item as child item to the related case item.

comment:295 by olle, 4 years ago

Problem analysis:

  • Inspection of log files indicates that Null pointer exceptions in the DNA/RNA Quantification wizard might be related to a SpecimenTube item being equal to null for an item identified as a specimen based on the item name.

comment:296 by olle, 4 years ago

In 5823:

Refs #1029. DNA/RNA Quantification wizard updated in an attempt to avoid Null pointer exceptions, and to give information, useful in creating routines for handling the problem items correctly in the future. Also, logging of Qiacube date strings in order to investigate cases, where the string does no represent a proper date:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetSourceItemListFromStartPlate" to avoid using a SpecimenTube item being equal to null for an item identified as a specimen based on the item name, but instead make an entry in the log file specifying the name of the item.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetSourceItemListFromStartItemList" to avoid using a SpecimenTube item being equal to null for an item identified as a specimen based on the item name, but instead make an entry in the log file specifying the name of the item.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetListOfItemsFromStartItemLists" to avoid using a SpecimenTube item being equal to null for an item identified as a specimen based on the item name, but instead make an entry in the log file specifying the name of the item.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetNextQiacubeRunNo" to log name of String parameter "qiacubeDate", in order to investigate cases, where the string does no represent a proper date.

comment:297 by olle, 4 years ago

In 5824:

Refs #1029. FFPE section (specimen) registration wizard updated in selection list to only be extended with new items after FFPE section order form has been approved:

  1. Java class/file CounterServlet.java in src/net/sf/basedb/meludi/counter/ updated in private method void countFfpeBlocks(DbControl dc, JSONObject json) to only include FFPE block items with approved FFPE section order form in number of FFPE blocks unused for section.
  2. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for command "GetFfpeBlocksUnusedForSection" to only include FFPE blocks with approved FFPE section order form.

comment:298 by olle, 4 years ago

In 5832:

Refs #1029. FFPE section (specimen) registration wizard updated by removing input fields for tumour cell percentage for H&E glass items, since these should be moved to a separate wizard. Also, created FFPE sections (specimens) now made children of the FFPE block instead of the case item:

  1. Javascript file ffpe_section_registration_alt_rec.js in resources/personal/ updated by removing code related to input fields for tumour cell percentage for H&E glass items.
  2. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterFFPESections" to not set tumour cell percentage for H&E glass items. Also, created FFPE sections (specimens) now made children of the FFPE block instead of the case item.

comment:299 by olle, 4 years ago

In 5848:

Refs #1029. New wizard for FFPE section (specimen) tumour cell percentage added after FFPE section (specimen) registration wizard. The entered tumour cell percentages will be registered on the stained items coupled to the H&E glass items related to the specimen:

  1. Javascript file index.jsp in resources/ updated in section "Personal information wizards" by adding new wizard "FFPE section (specimen) tumour cell percentage" linked to new JSP file ffpe_section_tumour_cell_pct_alt_rec.jsp in resources/personal/.
  2. JSP file ffpe_section_tumour_cell_pct_alt_rec.jsp in resources/personal/ added. It references new Javascript file ffpe_section_tumour_cell_pct_alt_rec.js.
  3. Javascript file ffpe_section_tumour_cell_pct_alt_rec.js in resources/personal/ added. It allows an unprocessed FFPE section (specimen) to be selected, and tumour cell percentages for H&E glass stained items to be entered. At registration, servlet BaseLineRegistrationServlet is called with new post command "RegisterFFPESectionTumourCellPct".
  4. Data access object class/file Histology.java in src/net/sf/basedb/meludi/dao/ updated with new public static method List<Histology> findByName(DbControl dc, String name). It returns histology samples with a specific name.
  5. Java servlet class/file BaseLineRegistrationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) with new command "RegisterFFPESectionTumourCellPct". It registers the input tumour cell percentages on Stain items coupled to F and E H&E glass items for the FFPE section.
  6. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetUnprocessedItems" to call new private method void loadHistologyInfo(DbControl dc, Histology his) to obtain histology info for the FFPE section items.
    b. New private method void loadHistologyInfo(DbControl dc, Histology his) added. It returns data on Stain items coupled to F and E H&E glass items for the histology item.

comment:300 by olle, 4 years ago

In 5852:

Refs #1029. DNA/RNA extraction wizards "Lab tracking protocol for FFPE extraction" and "Lab tracking protocol/report copy", as well as protocols/reports "Lab Tracking Protocol for FFPE extraction" and "Lab Tracking Report for FFPE extraction" updated in RNA/DNA details text to exchange "Plate Pos." for "Box Pos.":

  1. Javascipt file extraction_preparation.js in resources/sampleproc/ updated in function initializeStep3() text to exchange "Plate Pos." for "Box Pos.".
  1. Javascipt file extraction_formcopy.js in resources/sampleproc/ updated in function initializeStep3() text to exchange "Plate Pos." for "Box Pos.".
  1. JSP file extraction_protocol2.jsp in resources/sampleproc/ updated in text to exchange "Plate Pos." for "Box Pos.".

comment:301 by olle, 4 years ago

In 5854:

Refs #1029. FFPE section order form generation updated have bar code and text at upper left show PAD number + "_" + material number:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated in private method PdfUtil createFfpeSectionOrderForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, List<String> itemIdList, List<String> formTemplateFileList) to have bar code and text at upper left show PAD number + "_" + material number.

comment:302 by olle, 4 years ago

In 5858:

Refs #1029. DNA/RNA extraction wizards "Lab tracking protocol for FFPE extraction" updated in step 3 "RNA/DNA details" with new button "Download DNA/RNA labels file":

  1. JSP file extraction_preparation.jsp in resources/sampleproc/ updated in step 3 "RNA/DNA details" with new button "Download DNA/RNA labels file" with id value "downloaddnarnalabelfile".
  1. Javascipt file extraction_preparation.js in resources/sampleproc/ updated:
    a. Function initPage() updated by adding click handler for id value "downloaddnarnalabelfile" coupled to new function downloadDnaRnaLabelFile().
    b. New function downloadDnaRnaLabelFile() added. It calls LabelGenerationServlet with command "GetDnaRnaLabelFile" and supplies a list of selected specimen items.
  1. Java servlet class/file LabelGenerationServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) with new command "GetDnaRnaLabelFile" to create a label file for DNA/RNA items, where specimen names have been shortened by omitting ".s" from the item name. A time stamp is added to the default filename.

comment:303 by olle, 4 years ago

In 5863:

Refs #1029. Updates due to version number change to "1.6.0b8".

  1. Version number changed to "1.6.0b8":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:304 by olle, 4 years ago

In 5864:

Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:305 by olle, 4 years ago

Design update for the NordicTrip referral form generation:

  • 2020-05-11 the following changes were decided for referral form generation for project NordicTrip:
    a. A new tissue form "3C" should be added after the tissue "3B" form in the generated PDF package. The form type suffix lower-case letter for bar code text on referral forms with label stickers for the new form, should have the lower-case letter corresponding to the previous form at this place in the referral form package, and all forms thereafter should have subsequent allowed letters (lower-case "l" and "o" are not used, as they can be mistaken for digits 1 and 0).

comment:306 by olle, 4 years ago

In 5938:

Refs #1029. Referral form generation updated in generation of referral forms for project NordicTrip:

  1. The form type identification suffix added after the referral ID in the bar code for referral forms with label stickers, consisting of a single lower-case letter, should be updated by addition of a new tissue form "3C" after tissue form "3B", and all subsequent forms will get a new form type identification suffix.
  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Private method void initializeRefFormTemplTypeIdentSuffixHashMap(SessionControl sc) updated by addition of a new tissue form "3C" after tissue form "3B", and all subsequent forms will get a new form type identification suffix.
Last edited 4 years ago by olle (previous) (diff)

comment:307 by olle, 4 years ago

In 5939:

Refs #1029. Updates due to version number change to "1.6.0b9".

  1. Version number changed to "1.6.0b9":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:308 by olle, 4 years ago

In 5940:

Refs #1029. Updates due to version number change to "1.6.0-dev".

  1. Version number changed to "1.6.0-dev":
    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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:309 by olle, 20 months ago

  • 2021-11-08 it was reported that the BASE/MeLuDI installations used for research projects had to be moved to another server, and it had not been possible to obtain a server with the security needed to allow personal information such as patient data to be stored on it. The sensitive information was removed from the new server, but BASE/MeLuDI could still be used to store insensitive data and to produce referral forms for projects such as SCAN-B-rec and NordicTrip. With the current server status, any future development of MeLuDI will likely be restricted to producing referral forms.

comment:310 by olle, 20 months ago

Design update:

  • 2022-07-18 it was decided that MeLuDI should be updated to support creation of referral forms for project LUCAS:
  1. MeLuDI should be updated to support creation of referral forms for project LUCAS. The project is ongoing and referral forms have been produced using a PC program. Currently a single referral form is of interest, with label stickers for test tubes. No bar codes have been used on the forms produced earlier, and the aim of the first version of support in MeLuDI will be to produce referral forms of the same type as used before.
Last edited 20 months ago by olle (previous) (diff)

comment:311 by olle, 20 months ago

In 6783:

Refs #1029. MeLuDI updated to prepare for creating referral forms for project LUCAS:

  1. JSP file index.jsp in resources/ updated by preparing to use some JSP and javascript files dedicated to project LUCAS. Initially, support is added for referral form generation.
  2. JSP file generate-referral-forms_alt_lucas.jsp in resources/personal/ added. It is intended to be used for referral form generation for project LUCAS. Initially, it is identical to generate-referral-forms_alt_ntr.jsp, except that it references javascript file generate-referral-forms_alt_lucas.js, and that unused buttons "Download form batch file 2" and "Download serum label file" are removed.
  3. Javascript file generate-referral-forms_alt_lucas.js in resources/personal/ added. It is intended to be used for referral form generation for project LUCAS. Initially, it is identical to generate-referral-forms_alt_ntr.js.
  4. Java servlet class/file InstallServlet.java in src/net/sf/based/meludi/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) for commands "Validate" and "Install" by creating BASE directories for referral form templates for project LUCAS.
  5. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. New String constants REF_FORM_TEMPLATE_LUCAS_STICKER_FORM and TEMPLATE_FILENAME_START_LUCAS_STICKER_FORM defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetReferralTemplateInfo" to add referral template files of type REF_FORM_TEMPLATE_LUCAS_STICKER_FORM to JSONArray jsonMultipleTemplFiles.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated to call new private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) to create LUCAS sticker forms.
    d. Private method void initializeRefFormTemplNameStartHashMap(SessionControl sc) updated to adapt mappings for LUCAS sticker forms.
    e. New private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, List<String> formTemplateFileList) added. It calls new private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, String formTemplateName, List<String> formTemplateFileList) for form templates of type REF_FORM_TEMPLATE_LUCAS_STICKER_FORM.
    f. New private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, String itemId, String formTemplateName, List<String> formTemplateFileList) added. It calls new private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) to produce label sticker forms for the LUCAS project.
    g. New private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) added. It produces label sticker forms for the LUCAS project.

comment:312 by olle, 19 months ago

In 6802:

Refs #1029. MeLuDI updated to prepare for creating referral forms for project LUCAS:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) updated by fine adjustment of font size and placement of generated text in created PDF file.

comment:313 by olle, 19 months ago

In 6803:

Refs #1029. MeLuDI updated to prepare for creating referral forms for project LUCAS:

  1. Javascript file generate-referral-forms_alt_lucas.js in resources/personal/ updated in function initializeStep2a(response) by changing default number of created referral form sets from 50 to 20.

comment:314 by olle, 19 months ago

In 6804:

Refs #1029. MeLuDI updated to prepare for creating referral forms for project LUCAS:

  1. Java servlet class/file ReferralGeneratorServlet.java in src/net/sf/based/meludi/servlet/ updated:
    a. Private method PdfUtil createLucasStickerForm(DbControl dc, PdfUtil pdfUtil, File pdfFile, String itemId, String formTemplateName, List<String> formTemplateFileList) updated by cleaning up code by removal of comment lines with old settings.

comment:315 by olle, 19 months ago

In 6805:

Refs #1029. Updates due to version number change to "1.6.0".

  1. Version number changed to "1.6.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 meludi_quarter_month_report_generator.js in resources/reports/ updated.
    e. Javascript file samplereportgenerator.js in resources/reports/ updated.
    f. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:316 by olle, 19 months ago

Description: modified (diff)

Ticket description updated by including support for projects NordicTrip and LUCAS, that both use referral form generation.

comment:317 by olle, 19 months ago

(In [6810]) Refs #1029. Update of installation information file "readme.txt".

  1. Update of installation information file "readme.txt":
    a. Installation information file readme.txt in config/ updated by changing reference to MeLuDI 1.6.0.

comment:318 by olle, 19 months ago

Resolution: fixed
Status: assignedclosed

Ticket closed as multiple project support to MeLuDI has been added, and no specific problems have been reported with beta release 1.6.0b9.

Note: See TracTickets for help on using tickets.