#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 by , 12 years ago
Milestone: | Reggie v2.x → Reggie v2.11 |
---|
comment:2 by , 12 years ago
Milestone: | Reggie v2.11 → Reggie v2.x |
---|
comment:3 by , 11 years ago
Owner: | changed from | to
---|
comment:4 by , 11 years ago
Milestone: | Reggie v2.x → Reggie v2.13 |
---|
comment:6 by , 11 years ago
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)
comment:7 by , 11 years ago
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").
comment:8 by , 11 years ago
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:
- If only one case is registered for the patient, that case number is used.
- 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.
comment:9 by , 11 years ago
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
inreggie/resources/personal/
and java servletBloodRegistrationServlet.java
inreggie/src/net/sf/basedb/reggie/servlet/
. The new components will be namedbloodfollowupform.jsp
andBloodFollowUpRegistrationServlet.java
, respectively. - JSP script
index.jsp
inreggie/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
inreggie/src/net/sf/basedb/reggie/dao/
and servletInstallServlet.java
inreggie/src/net/sf/basedb/reggie/servlet/
will be updated to support new string annotation typeBLOOD_RCCIDNUMBER
, and allow existing string annotation typeBLOOD_SAMPLE
to have new valuesFollowUp06
,FollowUp12
, andFollowUp36
. - Java data access object
Blood.java
inreggie/src/net/sf/basedb/reggie/dao/
will be updated with two new public static methods,Blood findByRccidNumber(DbControl dc, String name)
andList<Blood> findAllByBaseRccidNumber(DbControl dc, String name)
. They will find blood samples from information stored in the new string annotation typeBLOOD_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 alwaystrue
for follow-up blood samples, and theBLOOD_SAMPLE
annotation is set toFollowUp06
,FollowUp12
, orFollowUp36
based on whether the RCCID suffix letter is 'B', 'C', or 'D', respectively.
comment:10 by , 11 years ago
comment:11 by , 11 years ago
comment:12 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Ticket closed as the requested functionality has been added.
comment:13 by , 11 years ago
(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 by , 11 years ago
(In [2116]) Refs #449. Annotation type BLOOD_RCCIDNUMBER
is added to Blood
annotation type category:
- Class/file
InstallServlet.java
inreggie/src/net/sf/basedb/reggie/servlet/
updated in protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
to addAnnotationtype.BLOOD_RCCIDNUMBER
toBlood
annotation type category.
comment:15 by , 11 years ago
(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):
- JSP script
bloodfollowupform.jsp
inreggie/resources/personal/
updated by moving disabling of RCCID and personal number input fields from functiongetPatientInfo()
to functiongoNext(manual)
, after checking that the input is OK. Previous design was problematic for follow-up blood samples, since functionpersonalNumberOnChange()
callsgetPatientInfo()
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 by , 11 years ago
(In [2139]) Refs #519. Refs #449. The two blood registration wizards updated to allow 6-digit dates to be used:
- JSP script
bloodform.jsp
inreggie/resources/personal/
updated in functionssamplingDateTimeOnChange()
andfreezerDateTimeOnChange()
to call functionautoFillDate(shortDate, allowSixDigitDates)
inreggie.js
inreggie/resources/
with argumentallowSixDigitDates
set totrue
. - JSP script
bloodfollowupform.jsp
inreggie/resources/personal/
updated in functionssamplingDateTimeOnChange()
andfreezerDateTimeOnChange()
to call functionautoFillDate(shortDate, allowSixDigitDates)
inreggie.js
inreggie/resources/
with argumentallowSixDigitDates
set totrue
.
Ticket reassigned to olle