Changes between Version 11 and Version 12 of Ticket #526, comment 5
- Timestamp:
- Oct 20, 2014, 1:54:17 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #526, comment 5
v11 v12 12 12 * JSP file `retractionform.jsp` in `resources/personal/` is coupled to Javascript file `retractionform.js`, and in its "`form`"-tag has an action attribute set to value "`retraction_protocol2.jsp`" (all later files also in `resources/personal/`). The JSP file has an input field for entering a case name or personal number. After initial validation of the case name/personal number, servlet `RetractionFormServlet` is called with command "`GetCaseInfo`" to obtain a JSONObject with information on all cases for the patient in question, which is sent to function `rf.caseInfoLoaded(response)` to be displayed in table form. The form contains checkboxes for setting values for the `Flag` and `AutoProcessing` annotations for the histology and RNA items, as well as a checkbox for selecting whether an unchecked checkbox should trigger the corresponding annotation to be reset to `null` (default is to ignore unchecked checkboxes).[[BR]]a. Button "Register" is coupled to function `rf.submit()`, that calls function `checkBoxValues(...)` to retrieve string-coded checkbox values and send them together with the input case name/personal number to servlet `RetractionFormServlet` with command "`RegisterRetraction`".[[BR]]b. Buttons "Preview" and "Download" are both indirectly coupled to function `rf.doExport(preview)`, but with `preview` set to `true` and `false`, respectively. The latter function creates a table with tab-separated column data of the case/patient information, more suitable for import into spreadsheet programs, although containing several sub-tables with separate headers. If attribute `preview` is `false`, a dialog will be opened to download the table to a file.[[BR]]c. Button "`Create protocol`" is coupled to function `rf.createProtocol()`, that will save input case name/personal number and the number of items to be destroyed in hidden input fields in the HTML form, after which `frm.submit()` is called, which will transfer the action to JSP file `"retraction_protocol2.jsp`, and it related Javascript file `retraction_protocol.js`. 13 13 * JSP file `retraction_protocol2.jsp` in `resources/personal/` is coupled to Javascript file `retraction_protocol.js`. Values for input case name/personal number and the number of items to be destroyed are retrieved from the HTTP response, and `retraction_protocol2.jsp` creates a template for a table of items to be destroyed, one row per item, and `retraction_protocol.js` calls servlet `RetractionFormServlet` with command "`GetProtocolInfo`" (currently identical to command "`GetCaseInfo`") to obtain a JSONObject with information on all cases for the patient in question, which is sent to function `rp.initializeProtocol(response)` to be inserted into the protocol template. The reason for the suffix "`2`" in the name of JSP file `retraction_protocol2.jsp`, is that most protocol wizards have an initial JSP file `retraction_protocol.jsp`, with input fields for information required to retrieve the protocol data, but this role is here taken by `retractionform.jsp`. 14 * New java servlet class/file `RetractionFormServlet.java` in `src/net/sf/basedb/reggie/servlet/` accepts `GET` requests for commands "`GetCaseInfo`", "`GetProtocolInfo`" (currently identical to "`GetCaseInfo`"), and "`ExportRetractData`", as well as `POST` request for command "`RegisterRetraction`". It accesses the database to retrieve the requested information, or update the contents, and sends the results back in JSON format. 14 * New java servlet class/file `RetractionFormServlet.java` in `src/net/sf/basedb/reggie/servlet/` accepts `GET` requests for commands "`GetCaseInfo`", "`GetProtocolInfo`" (currently identical to "`GetCaseInfo`"), and "`ExportRetractData`", as well as `POST` request for command "`RegisterRetraction`". It accesses the database to retrieve the requested information, or update the contents, and sends the results back in JSON format. Private method `Patient fetchPatient(DbControl dc, String caseOrPersonalNumber)` calls new public static method `Patient findByPersonalNumber(DbControl dc, String pnr, boolean restrictToPatientBioSources)` in class `Patient` with attribute `restrictToPatientBioSources` set to `false`, in order to find `BioSource` items of subtypes `RETRACT` and `RETRO_NO`, in addition to `PATIENT` subtypes. 15 15 * XML servlet configuration file `servlets.xml` in `META-INF/` updated with entry for new servlet `RetractionFormServlet`. 16 16 * Java class/file `Annotationtype.java` in `src/net/sf/basedb/reggie/dao/` updated in `public static final Annotationtype AUTO_PROCESSING` by including `Item.SAMPLE` in list of item types for annotation "`AutoProcessing`", allowing the annotaiton to be used for histology items. 17 17 * Java class/file `Consent.java` in `src/net/sf/basedb/reggie/dao/` updated by adding new static final `String` constant `FLAG_RETRACTED` with value "`Retracted`". 18 18 * Java class/file `Subtype.java` in `src/net/sf/basedb/reggie/dao/` updated by adding new static final `Subtype` items `RETRACT` and `RETRO_NO` for `BioSource` items, with values "`Retract`" and "`RetroNo`", respectively. 19 * Java class/file `Patient.java` in `src/net/sf/basedb/reggie/dao/` updated with new public static method `Patient findByPersonalNumber(DbControl dc, String pnr, boolean restrictToPatientBioSources)`, that allows `BioSource` items of subtypes `RETRACT` and `RETRO_NO` to be found, in addition to `PATIENT` subtypes. 19 20 * Java class/file `InstallServlet.java` in `src/net/sf/basedb/reggie/servlet/` updated in `protected` method `void doGet(HttpServletRequest req, HttpServletResponse resp)` to create items `Subtype.RETRACT` and `Subtype.RETRO_NO`, if not existing, and to allow the `Flag` annotation to have value `Consent.FLAG_RETRACTED`. 20 21 * CSS (Cascading Style Sheet) files `retractionform.css` in `resources/css` and `retractionexport.css` in `resources/personal` contain style information for the forms.