Opened 6 years ago

Closed 6 years ago

Last modified 5 years ago

#449 closed enhancement (fixed)

Add support for follow-up blood samples to the blood registration wizard

Reported by: Nicklas Nordborg Owned by: olle
Priority: major Milestone: Reggie v2.13
Component: net.sf.basedb.reggie Keywords:
Cc:

Description

Most patients will have follow-up blood samples taken 6, 12 and 36 months after operation. The blood registration wizard should be able to register them. The BloodSample annotation should be extended with options for the three time-points (it currently allow PreNeo and PreOp). If possible, it would be nice if the wizard could determine the most likely value based on information already registered.

Another difficulty is that the ID numbers on the referrals doesn't follow the regular 7-digit pattern used for the pathology or initial blood sample referral forms. This might also work to our advantage if we can use this to determine what kind of blood sample it is.

Change History (16)

comment:1 Changed 6 years ago by Nicklas Nordborg

Milestone: Reggie v2.xReggie v2.11

comment:2 Changed 6 years ago by Nicklas Nordborg

Milestone: Reggie v2.11Reggie v2.x

comment:3 Changed 6 years ago by olle

Owner: changed from Nicklas Nordborg to olle

Ticket reassigned to olle

comment:4 Changed 6 years ago by olle

Milestone: Reggie v2.xReggie v2.13

comment:5 Changed 6 years ago by olle

Status: newassigned

Ticket accepted.

comment:6 Changed 6 years ago by olle

Traceability note:

The following tickets are related to blood sample registration:

  • Ticket #350 (Blood referral form registration wizard).
  • Ticket #429 (Blood samples should store sampling date as creation date)
  • Ticket #442 (Allow pathology and blood registration wizards to save patients without names)
  • Ticket #505 (Sample source reports should be updated to support follow-up blood samples)
Last edited 6 years ago by olle (previous) (diff)

comment:7 Changed 6 years ago by olle

Background information:

Special referral forms are used for follow-up blood samples:

  • Instead of case number, an RCCID number is used, consisting of a 10-digit number followed by one of the suffix letters "B", "C", or "D", denoting follow-up samples 6, 12, and 36 months after operation, respectively. The integer value should be the same for follow-up samples from the same patient, and can therefore be used to find the patient ID if a previous follow-up sample has been registered. Only one follow-up blood sample per patient and time period should be supplied.
  • Personal number is supplied.
  • Blood sampling date/time and freezer date/time are supplied.
  • Follow-up blood samples are always of type "Plasma/serum", so no entry exists for this.
  • A comment may be supplied.

Information note: RCCID is an ID number created at RCC syd, which is an abbreviation of "Regionalt Cancercentrum syd" ("Regional Cancer Center - south").

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

comment:8 Changed 6 years ago by olle

Design discussion regarding case numbers:

The SCAN-B project allows blood samples to be registered without a case existing for the patient. However, referral forms for follow-up blood samples are only sent to patients, who have undergone breast cancer surgery, which implies that a case item has been created in the SCAN-B database. In the following will therefore be assumed, that at least one case item exists for a patient.

Previously a blood sample has been registered as a new 'Sample' with 'Blood' as it's subtype, with name equal to the case number + '.b' as suffix (see Ticket #350, "Blood referral form registration wizard" for details). In order to use this scheme for follow-up blood samples, a case must be found for the sample. A problem is that sometimes a patient has been operated for cancer in both breasts some time apart, leading to one patient having two case numbers (if the cancer was bi-lateral, and both breasts were operated at the same time, two case numbers are still used, one for each specimen, but a blood sample is only named for one of them).

For follow-up blood samples, the registration wizard should work as follows regarding finding a case number for the sample:

  1. If only one case is registered for the patient, that case number is used.
  2. If more than one case number are registered for the patient, the following priority procedure is used:
    a. If a follow-up blood sample already is registered for one of the case numbers, that case number is used.
    b. If a non-follow-up blood sample already is registered for one of the case numbers, that case number is used.
    c. The user is allowed to choose between the available case numbers, with the smallest case number as default. The case numbers should be presented together with operation dates, in order to guide the user in making the appropriate choice.
Last edited 6 years ago by olle (previous) (diff)

comment:9 Changed 6 years ago by olle

Design discussion:

  • The wizard for registration of follow-up blood samples will be based on the one for registration of blood samples obtained in connection with breast cancer surgery. The latter is implemented by JSP script bloodform.jsp in reggie/resources/personal/ and java servlet BloodRegistrationServlet.java in reggie/src/net/sf/basedb/reggie/servlet/. The new components will be named bloodfollowupform.jsp and BloodFollowUpRegistrationServlet.java, respectively.
  • JSP script index.jsp in reggie/resources/ will be updated to have links to the registration wizards for standard and follow-up blood samples under the header "Blood referral form registration" on the Reggie main page. (Originally the link to the single registration wizard was coupled to the header line itself.)
  • Java data access object Annotationtype.java in reggie/src/net/sf/basedb/reggie/dao/ and servlet InstallServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ will be updated to support new string annotation type BLOOD_RCCIDNUMBER, and allow existing string annotation type BLOOD_SAMPLE to have new values FollowUp06, FollowUp12, and FollowUp36.
  • Java data access object Blood.java in reggie/src/net/sf/basedb/reggie/dao/ will be updated with two new public static methods, Blood findByRccidNumber(DbControl dc, String name) and List<Blood> findAllByBaseRccidNumber(DbControl dc, String name). They will find blood samples from information stored in the new string annotation type BLOOD_RCCIDNUMBER.

Differences between the wizards for registration of standard and follow-up blood samples:

  • The original wizard allowed registration of new patients, while the new requires that a patient has already been registered.
  • The original wizard starts from input of case name and personal number, while the new starts from RCCID number and personal number.
  • When a valid RCCID number has been entered, the new wizard checks if a blood sample has already been registered with an RCCID number annotation having the same integer part as the input RCCID, i.e. ignoring the time period suffix letter 'B', 'C', or 'D'. If a blood sample is found, the patient and personal number is obtained from the sample, otherwise input of the personal number is necessary.
  • The new wizard finds all case items (0, 1, or 2) for the patient. At least one case item is required to continue. If a single case is found, the personal data and case name is shown, and the the wizard continues to the blood sample input part. If more than one case is found, the user may select one of them from a pop-up menu. To guide the user, each case should be presented with its operation date(s) (sampling date for specimen or "no specimen"), and information whether follow-up blood samples, other blood samples, or no blood samples exist for the case.
  • When a case has been selected, the new wizard should show the blood sample input part. If a follow-up blood sample has already been registered for the complete RCCID number, the data for that sample is pre-loaded, and the form allows the user to update the data. The data that may be entered/updated are sampling and freezer date/time, and a comment. The BLOOD_SERUM annotation is always true for follow-up blood samples, and the BLOOD_SAMPLE annotation is set to FollowUp06, FollowUp12, or FollowUp36 based on whether the RCCID suffix letter is 'B', 'C', or 'D', respectively.
Last edited 6 years ago by olle (previous) (diff)

comment:10 Changed 6 years ago by olle

(In [2023]) Refs #449. Refs #505. First version of wizard for registration/update of data for follow-up blood samples.

comment:11 Changed 6 years ago by olle

(In [2024]) Refs #505. Refs #449. Sample source reports updated to support follow-up blood samples.

comment:12 Changed 6 years ago by olle

Resolution: fixed
Status: assignedclosed

Ticket closed as the requested functionality has been added.

comment:13 Changed 6 years ago by olle

(In [2036]) Refs #449. Javascript file reggie.js in reggie/resources/ updated with new function isValidRccidNumber(rccidNumber, allowSuffix), that is used by function rccidNumberOnChange() in JSP file bloodfollowupform.jsp in reggie/resources/personal/. This update should have been included in change set [2023].

comment:14 Changed 5 years ago by olle

(In [2116]) Refs #449. Annotation type BLOOD_RCCIDNUMBER is added to Blood annotation type category:

  1. Class/file InstallServlet.java in reggie/src/net/sf/basedb/reggie/servlet/ updated in protected method void doGet(HttpServletRequest req, HttpServletResponse resp) to add Annotationtype.BLOOD_RCCIDNUMBER to Blood annotation type category.

comment:15 Changed 5 years ago by olle

(In [2138]) Refs #449. Wizard for registration of follow-up blood samples updated to proceed to step 2 after an <Enter> key press, when the input RCCID and personal numbers are valid and standard (previously it was necessary to click the "Next" button):

  1. JSP script bloodfollowupform.jsp in reggie/resources/personal/ updated by moving disabling of RCCID and personal number input fields from function getPatientInfo() to function goNext(manual), after checking that the input is OK. Previous design was problematic for follow-up blood samples, since function personalNumberOnChange() calls getPatientInfo() to check if a patient exists with input personal number, which resulted in the personal number input field being disabled, as soon as the last digit in a valid personal number was entered, making it unresponsive to key press.

comment:16 Changed 5 years ago by olle

(In [2139]) Refs #519. Refs #449. The two blood registration wizards updated to allow 6-digit dates to be used:

  1. JSP script bloodform.jsp in reggie/resources/personal/ updated in functions samplingDateTimeOnChange() and freezerDateTimeOnChange() to call function autoFillDate(shortDate, allowSixDigitDates) in reggie.js in reggie/resources/ with argument allowSixDigitDates set to true.
  2. JSP script bloodfollowupform.jsp in reggie/resources/personal/ updated in functions samplingDateTimeOnChange() and freezerDateTimeOnChange() to call function autoFillDate(shortDate, allowSixDigitDates) in reggie.js in reggie/resources/ with argument allowSixDigitDates set to true.
Note: See TracTickets for help on using tickets.