#888 closed task (fixed)
INCA statistics
Reported by: | olle | Owned by: | olle |
---|---|---|---|
Priority: | major | Milestone: | Reggie v4.5 |
Component: | net.sf.basedb.reggie | Keywords: | |
Cc: |
Description
Statistics should be calculated from the data obtained from INCA at regular intervals in the form of a tab-separated file. Entries with personal numbers are regarded as accrued to the SCAN-B project, while those without are regarded as not accrued. It should be possible to specify a start and end date defining a time interval for the data used for the statistics.
The following statistics should be reported:
- Percentage values of entries accrued with specimen, accrued without specimen, and not accrued.
- Percentage sets of all diagnoses, accrued, and accrued with specimen for:
a. ER Status (% positive and negative).
b. PgR Status (% positive and negative).
c. HER2 Status (% positive and negative).
d. Age (years) (% >70, 50-70, <50).
e. NHG (% Grade 3, Grade 2, Grade 1).
f. Tumor Size (mm) (% >20, 10-20, <10).
Change History (25)
comment:3 by , 9 years ago
Traceability note:
- Creation of a csv file to be used when requesting information from the INCA database was introduced in Ticket #487 (Export information intended for INCA). The entries with personal numbers in the INCA csv file are defined in this file.
- Import of an INCA csv file was introduced in Ticket #525 (Import data from INCA). This ticket contains information on the INCA csv file and its processing of interest to this ticket.
comment:4 by , 9 years ago
Milestone: | Reggie v4.x → Reggie v4.5 |
---|
comment:5 by , 9 years ago
Design note:
- INCA file header columns to be used for filtering and statistics data, in addition to the columns used for INCA import:
Column contents | Column header |
Diagnose date (for time period filter) | A030DiaDat
|
ER Status | A100ER_Värde
|
PgR Status | A100PR_Värde
|
HER2 Status | A100HER2_Värde
|
Age (years) | A000Alder
|
NHG | A100NHG_Värde
|
Tumor Size (mm) | A090HistoTumStl
|
comment:6 by , 9 years ago
Design discussion:
Much functionality needed for INCA statistics have already been implemented for INCA import, e.g. reading INCA *.csv files, checking input, mapping entries to SCAN-B database items, etc. (see Ticket #525 "Import data from INCA" for details), so it seems natural to expand the IncaServlet
to cover INCA statistics too. However, in order to implement this, some existing methods need to be extended with new arguments and extra functionality, and methods used both for import and statistics might need to be renamed, so as not to refer specifically to "INCA import" unnecessarily.
comment:7 by , 9 years ago
(In [3949]) Refs #888. INCA servlet for INCA import refactored as preparation for use also with INCA statistics:
- Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
refactored as preparation for use also with INCA statistics:
a. Private inner classPotentialIncaImportLine
renamedIncaEntryLine
.
b. Private methodLineDatabaseMappingResult lineDatabaseMapping(DbControl dc, List<PotentialIncaImportLine> potentialIncaImportLines, ...)
updated to take second argumentList<IncaEntryLine> incaEntryLines
.
c. Private methodInternalLateralityCheckResult internalLateralityCheck(List<PotentialIncaImportLine> potentialIncaImportLines)
updated to take argumentList<IncaEntryLine> incaEntryLines
.
d. Private methodList<PotentialIncaImportLine> fetchPotentialIncaImportLines(int tempPatIdClmIndex, int personalNoClmIndex, int lateralityDescriptionClmIndex, List<String> lines)
renamedfetchIncaEntryLines
, is updated to return aList<IncaEntryLine>
, and to take a new argumentboolean accruedEntries
, determining if entries with or without personal numbers should be returned.
e. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "ImportInca
" by making it compatible with the previous updates, without changing its functionality.
comment:8 by , 9 years ago
(In [3950]) Refs #888. INCA servlet for INCA import refactored in progress reporting as preparation for use also with INCA statistics:
- Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
refactored in progress reporting as preparation for use also with INCA statistics:
a. New private String constantIMPORT_PROGRESS_ID
defined with value "inca-import-progress
" used for progress tag in javascript fileimport-inca.js
.
b. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated by defining new String variableprogressId
, which is used as first argument when callingSessionControl
methodsetSessionSetting(String name, Object value)
withvalue
being aSimpleProgressReporter
object.
c. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "ImportInca
" by setting String variableprogressId
to new String constantIMPORT_PROGRESS_ID
, before callingSessionControl
methodsetSessionSetting(String name, Object value)
withvalue
being aSimpleProgressReporter
object.
comment:9 by , 9 years ago
(In [3951]) Refs #888. INCA servlet for INCA import refactored regarding creation and download of report file as preparation for use also with INCA statistics:
- Javascript
import-inca.js
inresources/personal/
updated:
a. FunctioncheckForReportFile()
updated by change of command name from "CheckForIncaImportReportFile
" to "CheckForIncaReportFile
" and addition of new parameter "reporttype
" with value "import
".
b. FunctiondownloadReportFile()
updated by change of command name from "DownloadIncaImportReportFile
" to "DownloadIncaReportFile
" and addition of new parameter "reporttype
" with value "import
". - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
refactored regarding creation and download of report file as preparation for use also with INCA statistics:
a. New private String constantREPORT_TYPE_IMPORT
defined with value "import
".
b. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated by change of command name "CheckForIncaImportReportFile
" to "CheckForIncaReportFile
" and use of value from new request parameter "reporttype
" as argument when obtaining report file path from private methodString fetchReportFilePath(String reportType)
.
c. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated by change of command name "DownloadIncaImportReportFile
" to "DownloadIncaReportFile
" and use of value from new request parameter "reporttype
" as argument when obtaining report file path from private methodString fetchReportFilePath(String reportType)
and report filename from new private methodString fetchReportFileName(String reportType)
.
d. Private methodString fetchReportFilePath()
updated with new argumentString reportType
, whose value is used as argument when obtaining report filename from new private methodString fetchReportFileName(String reportType)
.
e. New private methodString fetchReportFileName(String reportType)
added. If value of argumentreportType
equals String constantREPORT_TYPE_IMPORT
, value of String constantINCA_IMPORT_REPORT_FILENAME
is returned, elsenull
.
f. Private methodvoid createIncaImportReportFile(JSONObject jsonIncaFilePropDetails, List<String> missingIncaHeadersList, String message)
updated by obtaining report file path from private methodString fetchReportFilePath(String reportType)
with value of argumentreportType
set to value of String constantREPORT_TYPE_IMPORT
.
comment:10 by , 9 years ago
comment:11 by , 9 years ago
Design discussion:
- As the details on entry selection and report layout for INCA statistics are not completely decided at the current time, these functions will at least initially be managed by separate methods for INCA import and statistics.
- When collecting data for the statistics calculations, a number of entries falls in the category "N/A":
a. Entries with an integer value corresponding to a measurement/inspection having been performed, but with inconclusive result.
b. Entries with an integer value corresponding to no measurement/inspection having been performed.
c. Blank entries for the variable of interest. - In the first version of the INCA statistics module, the number and percentage of "N/A" entries will be presented together with data corresponding to specific values, allowing the user to estimate the size of this "grey" group. However, in order to facilitate comparison with previously published data, where no "N/A" group is included, three numbers will normally be presented for each statistics entry:
a. Percentage excluding "N/A" entries (enclosed in square brackets in report file, e.g. "[46.77%]").
b. Percentage including "N/A" entries (e.g. "41.57%").
c. Number of items (enclosed in parentheses, e.g. "(1376)").
comment:12 by , 9 years ago
(In [3963]) Refs #888. First (experimental) version of INCA statistics. It allows an INCA *.csv file in tab-separated format plus start and end date for the statistics calculation to be selected, after which a simple file check or a statistics calculation can be performed. Results are presented on the screen and in a created report file, which can be downloaded by clicking on a button in the web form.
- JSP file
index.jsp
inresources/
updated in section "Personal information wizards", sub-section "Export/import information to/from external registers", with new entry "INCA statistics" coupled to new JSP fileinca-statistics.jsp
inresources/personal/
. It requires "PatientCurator" role to be used, since it needs access to an INCA file with sensitive data. - New JSP file
inca-statistics.jsp
inresources/personal/
added. It is coupled to new javascript fileinca-statistics.js
inresources/personal/
. - New javascript file
inca-statistics.js
inresources/personal/
added. It allows an INCA *.csv file in tab-separated format plus start and end date for the statistics calculation to be selected, after which a simple file check or a statistics calculation can be performed. Results are presented on the screen and in a created report file, which can be downloaded by clicking on a button. Servlet requests are made to java servletIncaServlet
. Requests related to the report file are accompanied with parameterreporttype
being set to value "statistics
". - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated with functionality for INCA statistics:
a. New String constantsREPORT_TYPE_STATISTICS
,INCA_STATISTICS_REPORT_FILENAME
, andSTATISTICS_PROGRESS_ID
defined. ConstantREPORT_TYPE_STATISTICS
is set to value "statistics
".
b. Private methodString fetchReportFileName(String reportType)
updated to return new String constantINCA_STATISTICS_REPORT_FILENAME
for argumentreportType
having valueREPORT_TYPE_STATISTICS
.
c. Private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, JSONObject jsonIncaFileProp)
updated to return information on indexes for key columns of interest for INCA statistics.
d. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated with new command "IncaStatistics
". Much from command "ImportInca
" is reused, but an initial entry date selection is performed using diagnose dates, after which INCA entry lines both with and without personal numbers are collected. Mapping of entry lines to database items is performed by new private methodLineDatabaseMappingForStatisticsResult LineDatabaseMappingForStatistics(DbControl dc, List<IncaEntryLine> incaEntryLines, ...)
. A JSONObjectjsonIncaStatistics
with INCA statistics is obtained by calling new private methodJSONObject incaStatistics(...)
. JSONObjectjsonIncaStatistics
is added to JSONObjectjsonIncaFilePropDetails
and to the returned JSONObject. The report file is obtained by calling new private methodvoid createIncaStatisticsReportFile(JSONObject jsonIncaFilePropDetails, String message)
.
e. New private methodList<String> filterIncaLinesByDate(int filterDateClmIndex, Date startDate, Date endDate, List<String> lines)
added. It filters a list of INCA file lines by removing lines not within allowed time period.
f. New private methodLineDatabaseMappingForStatisticsResult lineDatabaseMappingForStatistics(DbControl dc, List<IncaEntryLine> incaEntryLines, ...)
added. It performs database mapping and data value check on a list of INCA entry lines intended for INCA statistics. The result includes a list of lines of accrued entries with specimens.
g. New private inner classLineDatabaseMappingForStatisticsResult
added. It contains two private attributes with public accessor methods,LineDatabaseMappingResult lineDatabaseMappingResult
andList<IncaEntryLine> accruedWithSpecimenEntryLineList
.
h. New private methodJSONObject incaStatistics(List<IncaEntryLine> nonAccruedIncaEntryLines, List<IncaEntryLine> accruedIncaEntryLines, List<IncaEntryLine> accruedWithSpecimenEntryLines, JSONObject jsonIncaFileProp)
added. It calculates INCA statistics and returns the results in a JSONObject.
i. A number of private convenience methods supporting methodincaStatistics(...)
in performing the statistics calculation are added. They support statistics for variables having positive/negative status, grade selection, and selection of integer values in different groups depending on value.
j. New private methodvoid createIncaStatisticsReportFile(JSONObject jsonIncaFilePropDetails, String message)
added. It creates a report file with INCA statistics, corresponding to the data shown in the web form.
comment:13 by , 9 years ago
(In [3967]) Refs #888. Java servlet updated for INCA statistics in comments and variable names (fix of typos and clarification of variable content):
- Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by correcting typos in variable names.
b. Private methodLineDatabaseMappingForStatisticsResult lineDatabaseMappingForStatistics(DbControl dc, List<IncaEntryLine> incaEntryLines, ...)
updated in comments and variable names.
comment:14 by , 9 years ago
Functional specification update:
- The user should be able to select what date variable will be used for the time period filter for the statistics calculation. Initially two choices should be available, diagnosis date and operation date.
Design update:
- JSP file
inca-statistics.jsp
inresources/personal/
updated:
a. Step 1 is updated with a date variable selection menu.
b. Step 2 is updated with two div tags for date variable description and date column header, respectively. - Javascript file
inca-statistics.js
inresources/personal/
updated:
a. FunctionssimpleCheckOfIncaFile()
andcalcStatistics()
updated to retrieve value of the selected date variable, and submit the latter as value of parameter "statdatevar
" when sending a POST request to java servletIncaServlet
with parameter "cmd
" set to "IncaStatistics
".
b. FunctioninitializeStep2(response)
updated to retrieve the values of selected date variable and its column header from the response, and display the values (a more clear verbal description in case of the date variable) in new div tags under the name of the INCA file. - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by retrieving value of selected date variable from parameter "statdatevar
" and set the date column header accordingly. The values are added to the file property JSONObject, and the date column header is given as second argument to updated private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
. The returned date column index is used when filtering entry lines according to correct time period.
b. Private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
updated with second argumentString statDateClmKey
, which is used when searching for the date column index.
c. Private methodvoid createIncaStatisticsReportFile(JSONObject jsonIncaFilePropDetails, String message)
updated to print the values of the selected date variable and its column header under the name of the INCA file.
comment:15 by , 9 years ago
(In [3968]) Refs #888. INCA statistics is updated by allowing the user to select what date variable will be used for the time period filter for the statistics calculation. Initially two choices are available, diagnosis date and operation date:
- JSP file
inca-statistics.jsp
inresources/personal/
updated:
a. Step 1 is updated with a date variable selection menu.
b. Step 2 is updated with two div tags for date variable description and date column header, respectively. - Javascript file
inca-statistics.js
inresources/personal/
updated:
a. FunctionssimpleCheckOfIncaFile()
andcalcStatistics()
updated to retrieve value of the selected date variable, and submit the latter as value of parameter "statdatevar
" when sending a POST request to java servletIncaServlet
with parameter "cmd
" set to "IncaStatistics
".
b. FunctioninitializeStep2(response)
updated to retrieve the values of selected date variable and its column header from the response, and display the values (a more clear verbal description in case of the date variable) in new div tags under the name of the INCA file. - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by retrieving value of selected date variable from parameter "statdatevar
" and set the date column header accordingly. The values are added to the file property JSONObject, and the date column header is given as second argument to updated private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
. The returned date column index is used when filtering entry lines according to correct time period.
b. Private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
updated with second argumentString statDateClmKey
, which is used when searching for the date column index.
c. Private methodvoid createIncaStatisticsReportFile(JSONObject jsonIncaFilePropDetails, String message)
updated to print the values of the selected date variable and its column header under the name of the INCA file.
comment:16 by , 9 years ago
(In [3969]) Refs #888. INCA statistics is updated by disabling date variable options in select menu after analysis has been started:
- Javascript file
inca-statistics.js
inresources/personal/
updated:
a. FunctioninitializeStep2(response)
updated to call new functionselectOptionsDisabled(id, value)
with 'id' set to date variable select menu id and value set totrue
.
b. New functionselectOptionsDisabled(id, value)
added. It sets attribute 'disabled' to the given value for all options in the select menu with given tag id.
comment:17 by , 9 years ago
(In [3970]) Refs #888. INCA statistics updated by adding table comments on how specific entry lines are counted in the statistics in current version:
- Javascript file
inca-statistics.js
inresources/personal/
updated in functioninitializeStep2(response)
by adding table comments on how specific entry lines are counted in the statistics in current version of INCA statistics.
comment:18 by , 9 years ago
Functional specification update:
- The user should be able to select a cancer type filter for the statistics calculation. Initially three choices should be available, "All" (default), "Invasive", and "In situ". Option "All" is equal to not applying a cancer type filter. Note that an entry may be labeled both "Invasive" and "In situ".
Design update:
- JSP file
inca-statistics.jsp
inresources/personal/
updated:
a. Step 1 is updated with a cancer type selection menu.
b. Step 2 is updated with a new div tag for cancer type description. - Javascript file
inca-statistics.js
inresources/personal/
updated:
a. FunctionssimpleCheckOfIncaFile()
andcalcStatistics()
updated to retrieve value of the selected cancer type, and submit the latter as value of parameter "cancertype
" when sending a POST request to java servletIncaServlet
with parameter "cmd
" set to "IncaStatistics
".
b. FunctioninitializeStep2(response)
updated to retrieve the value of selected cancer type from the response, and display the value (a more clear verbal description) in new div tag under the name of the INCA file. The file property tables are updated with entries for the cancer type column index and number of data lines passing cancer type filter. The column indexes for statistics date and cancer type are included in the control of input file validity. - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by retrieving value of selected cancer type from parameter "cancertype
". The value is added to the file property JSONObject. The returned cancer type column index from private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
is used when filtering entry lines by calling new private methodList<String> filterIncaLinesByCancerType(String cancerType, int cancerTypeClmIndex, List<String> lines)
.
b. Private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
updated to search for the cancer type column index for header "A090InvCa_Värde
".
c. New private methodList<String> filterIncaLinesByCancerType(String cancerType, int cancerTypeClmIndex, List<String> lines)
added. It filters a list of INCA file lines by removing lines not having selected cancer type[s].
d. Private methodvoid createIncaStatisticsReportFile(JSONObject jsonIncaFilePropDetails, String message)
updated to print the value of the selected cancer type under the name of the INCA file, plus the cancer type column index and number of lines passing cancer type filter.
comment:19 by , 9 years ago
(In [3972]) Refs #888. INCA statistics updated by allowing the user to select a cancer type filter for the statistics calculation. Initially three choices are available, "All" (default), "Invasive", and "In situ". Option "All" is equal to not applying a cancer type filter. Note that an entry may be labeled both "Invasive" and "In situ".
- JSP file
inca-statistics.jsp
inresources/personal/
updated:
a. Step 1 is updated with a cancer type selection menu.
b. Step 2 is updated with a new div tag for cancer type description. - Javascript file
inca-statistics.js
inresources/personal/
updated:
a. FunctionssimpleCheckOfIncaFile()
andcalcStatistics()
updated to retrieve value of the selected cancer type, and submit the latter as value of parameter "cancertype
" when sending a POST request to java servletIncaServlet
with parameter "cmd
" set to "IncaStatistics
".
b. FunctioninitializeStep2(response)
updated to retrieve the value of selected cancer type from the response, and display the value (a more clear verbal description) in new div tag under the name of the INCA file. The file property tables are updated with entries for the cancer type column index and number of data lines passing cancer type filter. The column indexes for statistics date and cancer type are included in the control of input file validity. - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by retrieving value of selected cancer type from parameter "cancertype
". The value is added to the file property JSONObject. The returned cancer type column index from private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
is used when filtering entry lines by calling new private methodList<String> filterIncaLinesByCancerType(String cancerType, int cancerTypeClmIndex, List<String> lines)
.
b. Private methodJSONObject fetchKeyColumnIndexes(List<String> headerList, String statDateClmKey, JSONObject jsonIncaFileProp)
updated to search for the cancer type column index for header "A090InvCa_Värde
".
c. New private methodList<String> filterIncaLinesByCancerType(String cancerType, int cancerTypeClmIndex, List<String> lines)
added. It filters a list of INCA file lines by removing lines not having selected cancer type[s].
d. Private methodvoid createIncaStatisticsReportFile(JSONObject jsonIncaFilePropDetails, String message)
updated to print the value of the selected cancer type under the name of the INCA file, plus the cancer type column index and number of lines passing cancer type filter.
comment:20 by , 9 years ago
comment:21 by , 9 years ago
Functional specification update:
- The results of an INCA statistics calculation should be stored in a *.csv text file in tab-separated format, in addition to the existing report file. The first version of this CSV file should contain the following columns:
Header | Example |
Property | ER Status
|
Selection | All Diagnoses
|
ValueName | Positive (% excl. N/A)
|
ValueType | Float
|
Value | 86.131935
|
In general a row in the *.csv file corresponds to a single data value. When used to store information on e.g. statistics parameters or the used INCA file, some columns (normally the "Selection
" column) might be empty.
comment:22 by , 9 years ago
(In [3980]) Refs #888. INCA statistics updated to store the results of an INCA statistics calculation in a *.csv text file in tab-separated format, in addition to the existing report file:
- JSP file
inca-statistics.jsp
inresources/personal/
updated by adding button for downloading CSV file. - Javascript file
inca-statistics.js
inresources/personal/
updated:
a. String constantsREPORT_TYPE_STATISTICS
andREPORT_TYPE_STATISTICS_CSV
defined.
b. FunctioninitPage()
updated by setting click handler for CSV file download button to new functiondownloadStatCsvFile()
, and calling updated functioncheckForReportFile(reportType)
with both argumentREPORT_TYPE_STATISTICS
andREPORT_TYPE_STATISTICS_CSV
.
c. FunctioncalcStatistics()
updated to disable new CSV file download button before calling servlet to perform statistics calculation.
d. FunctioninitializeStep2(response)
updated to hide the CSV file download button if only a simple check has been performed (no updated of the CSV file is performed in this case), and to show and enable the button if a statistics calculation has been performed.
e. FunctioncheckForReportFile()
updated with argumentreportType
, whose value is used for parameterreporttype
, when sending a GET request to servletIncaServlet
with command "CheckForIncaReportFile
".
f. FunctionreportFileDownloadButtonDisplay(response)
updated to obtain value of JSON key "reporttype
" from response, and manage the corresponding file download button.
g. FunctiondownloadReportFile()
updated to use new String constantREPORT_TYPE_STATISTICS
as value for parameter "reporttype
" when sending a GET request to servletIncaServlet
with command "DownloadIncaReportFile
".
h. New functiondownloadStatCsvFile()
added. It sends a GET request to servletIncaServlet
with command "DownloadIncaReportFile
" and value of parameterreporttype
set to new String constantREPORT_TYPE_STATISTICS_CSV
. - Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. String constantsREPORT_TYPE_STATISTICS_CSV
andINCA_STATISTICS_CSV_FILENAME
defined.
b. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for command "CheckForIncaReportFile
" by adding value of parameterreporttype
to returned JSONObject with JSON key "reporttype
".
c. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by calling new private methodvoid createIncaStatisticsCsvFile(JSONObject jsonIncaFilePropDetails)
if a statistics calculation has been performed.
d. Private methodString fetchReportFileName(String reportType)
updated to return value of new String constantINCA_STATISTICS_CSV_FILENAME
if argumentreportType
equals value of new String constantREPORT_TYPE_STATISTICS_CSV
.
e. New private methodvoid createIncaStatisticsCsvFile(JSONObject jsonIncaFilePropDetails)
added. It retrieves statistics data from argumentjsonIncaFilePropDetails
and stores selected information in a *.csv file in tab-delimited format. The path of the CSV file is found by calling private methodfetchReportFilePath(String reportType)
with argumentreportType
set to value of new String constantREPORT_TYPE_STATISTICS_CSV
.
f. New private convenience methods added:
i.String createCsvFilePosNegStatusStat(String property, String separator, DecimalFormat df, JSONObject jsonStat)
.
ii.String createCsvFileGroupStat(String property, String separator, DecimalFormat df, JSONObject jsonStat)
.
iii.String createCsvFileGradeStat(String property, String separator, DecimalFormat df, JSONObject jsonStat)
.
iv.String createCsvFileVarStatTableRow(String property, String selection, String valueName, String separator, DecimalFormat df, JSONObject jsonSelection, String jsonExclPctKey, String jsonPctKey, String jsonNumKey)
.
Currently theDecimalFormat
argument is not used, as all float values are reported with original precision in the *.csv file.
comment:23 by , 8 years ago
(In [3981]) Refs #888. INCA statistics updated by commenting out debug output except for exceptions and found bad data:
- Java servlet class/file
IncaServlet.java
insrc/net/sf/basedb/reggie/servlet/
updated:
a. Protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
updated for command "IncaStatistics
" by commenting out debug output except for exceptions and found bad data.
b. Private methodLineDatabaseMappingForStatisticsResult lineDatabaseMappingForStatistics(DbControl dc, ...)
updated by commenting out debug output except for exceptions and found bad data.
c. Private convenience methodsJSONObject incaStatPosNegNum(...)
,JSONObject incaStatGradeNum(...)
, andJSONObject incaStatGroupNum(...)
updated by commenting out debug output.
comment:24 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Ticket closed as first version of the INCA statistics have been implemented.
comment:25 by , 8 years ago
(In [3982]) Refs #888. INCA statistics user interface updated in step 1 by clarification of menu text for "Cancer type[s]" filter menu:
- JSP file
inca-statistics.jsp
inresources/personal/
updated in menu item text for "Cancer type[s]" filter menu, to clarify that selecting "Invasive" or "In situ" will also include entries labeled "Invasive and In situ".