Opened 4 years ago

Closed 4 years ago

#891 closed task (fixed)

Report delivery system

Reported by: Nicklas Nordborg Owned by: Nicklas Nordborg
Priority: critical Milestone: Reggie v4.6
Component: net.sf.basedb.reggie Keywords:
Cc:

Description (last modified by Nicklas Nordborg)

We should implement a system for delivery of reports to representatives from the clinics that are part of SCAN-B.

The idea is to create a separate web GUI with only this functionality. The YellowLabel tracking wizard (#861) can be used as a starting point, but details need to be worked out.

There are a few important things:

  • The GUI need a separate login and should be registered as a separate client application. This will make it possible to create user accounts that are only allowed to access this GUI and not the regular web client.
  • Users should only be allowed to access information about items that belong to their own site. The access control should use the BASE permission system. This means that the "SCAN-B" project can't be used and that we need a way to automatically share items to the correct sites. When http://base.thep.lu.se/ticket/2014 is implemented in the BASE core we can implement an extension for this (see next bullet).
  • Before a report is delivered it must be approved by SCAN-B staff. This is more or less the same as the "Register as completed" functionality in the YellowLabel wizard. Instead of downloading a ZIP file a copy of the reports (with personal information included) should be created and stored in a separate location in the BASE file system. This wizard will also make sure that the information is correctly shared to the sites.

Change History (26)

comment:1 Changed 4 years ago by Nicklas Nordborg

Milestone: Reggie v4.xReggie v4.6
Priority: majorcritical
Status: newassigned

comment:2 Changed 4 years ago by Nicklas Nordborg

(In [3986]) References #891: Report delivery system

Added two new groups "SCAN-B Lab" and "SCAN-B Delivery" and one new client "SCAN-B Delivery".

The installation wizard will set this up so that only members of the "SCAN-B Delivery" group can use the "SCAN-B Delivery" client and only members of the "SCAN-B Lab" group can use the regular web client.

The "Reggie" client that was created in [3974] is still shared to the "SCAN-B" project only which makes sure that Reggie can't be used without activating the correct project.

An update notice must be created with instructions to the server administrator to put user accounts into the correct groups.

comment:3 Changed 4 years ago by Nicklas Nordborg

(In [3987]) References #891: Report delivery system

The "SCAN-B Delivery" group should have the "hidden members" flag set (meaning that users can't see other user accounts).

comment:4 Changed 4 years ago by Nicklas Nordborg

(In [3988]) References #891: Report delivery system

Added ClientApp class for defining clients. Code in other places now refer to this class instead of Reggie.CLIENT_ID.

comment:5 Changed 4 years ago by Nicklas Nordborg

(In [3996]) References #891: Report delivery system

Started with a new login page for the delivery client. It has been designed with the new username+password+yubikey login in mind (see #893).

So far it will only make some basic validation on the input fields. The actual login is not implemented.

comment:6 Changed 4 years ago by Nicklas Nordborg

(In [3997]) References #891: Report delivery system

Implemented login functionality. It's still very basic and the only action is to display a message above the login form.

Error handling need a lot of (usability) improvements but the basic permission checking seems to work as expected. Eg. it is not possible for users without permission to login and YubiKey seems to be handled correctly.

comment:7 Changed 4 years ago by Nicklas Nordborg

(In [3998]) References #891: Report delivery system

Improved the error handling when the login fails.

comment:8 Changed 4 years ago by Nicklas Nordborg

(In [4000]) References #891: Report delivery system

First version of a page listing reports. It is currently a mix of hard-coded information and information loaded from the database. Almost no proper error handling. An "Administrator" account is needed until proper permissions has been figured out for the devlivery user accounts.

comment:9 Changed 4 years ago by Nicklas Nordborg

(In [4001]) References #891: Report delivery system

Starting to lock down permissions. A typical delivery user account should have the following membership:

  • Guest (role)
  • SCAN-B Delivery (group)
  • "Site" (group; one group per site)

The following annotations have been shared to the "SCAN-B Delivery" group with READ permission:

  • AllFirstNames
  • ArrivalDate
  • FamilyName
  • PersonalNumber
  • YellowLabel

Biosources, Samples, files, and other items need to be shared to the "Site group" with READ permission. This has been done manually so far, but we need a tool for doing this.

comment:10 Changed 4 years ago by Nicklas Nordborg

(In [4002]) References #891: Report delivery system

Linking Site to ReggieRole and installing one group per site.

comment:11 Changed 4 years ago by Nicklas Nordborg

(In [4004]) References #891: Report delivery system

Added functionality for downloading the pilot report pdf. This also creates a DOWNLOAD entry in the history for the file and for the specimen.

comment:12 Changed 4 years ago by Nicklas Nordborg

(In [4005]) References #891: Report delivery system

Improvements in the GUI.

  • Display a message when the information is loading
  • Re-arranged the top section (no new functionality yet)

comment:13 Changed 4 years ago by Nicklas Nordborg

(In [4006]) References #891: Report delivery system

Implemented the search for personal number/SCANB ID functionality.

comment:14 Changed 4 years ago by Nicklas Nordborg

(In [4007]) References #891: Report delivery system

Display actual username for currently logged in user.

Implemented logout functionality including a automatic logout due to inactivity.

comment:15 Changed 4 years ago by Nicklas Nordborg

(In [4008]) References #891: Report delivery system

Implemented function for selecting a different month. This more or less completes the basic functionality of the delivery client. There is probably a lot of cleanup to do in the code and also a lot of error handling need to be implemented.

comment:16 Changed 4 years ago by Nicklas Nordborg

(In [4009]) References #891: Report delivery system

Cleaned up the javascript code and improvements in error handling. All AJAX error should now be handled in an acceptable way.

comment:17 Changed 4 years ago by Nicklas Nordborg

(In [4010]) References #891: Report delivery system

Added error handling to JSP files to avoid being redirected into the BASE web client error handling (which is global). Also cleaned up the code on the JSP pages so that they are unlikely to fail. Sessions are not created until a user is logging in and the session is closed after logout.

comment:18 Changed 4 years ago by Nicklas Nordborg

(In [4028]) References #891: Report delivery system

Started to implement a "Publish for delivery" function in the YellowLabel tracking wizard.

The wizard asks for a completed date (required) and makes a copy of the current pilot report in a subdirectory to /home/Delivery (for example, /home/Delivery/77/7700567.1/pilotreport.pdf). Personal information about the patient is included in the copy.

There are some remaining features that needs to be implemented.

  • The copy should be linked to the specimen item.
  • The copy should be shared to the group representing the site.

comment:19 Changed 4 years ago by Nicklas Nordborg

(In [4031]) References #891: Report delivery system

The published pilot report is now linked to the specimen. The delivery client has been updated to use the published report instead of the original report.

comment:20 Changed 4 years ago by Nicklas Nordborg

(In [4034]) References #891: Report delivery system

Added functionality for setting permissions on items that site accounts need to access.

  • The "Pathology referral form registration" wizard will share the specimen/case/patient with read permission to the group corresponding to a site when the YellowLabel annotation is set. If the YellowLabel is removed later the sharing on the specimen is removed.

  • The "Yellow label tracking and reporting" wizard will share the PDF file and directories with read permission to the site group and SET_PERMISSION permission to the PatientCurator group.
  • To be able to set permissions the SetPermissionsForDeliveryPlugin is requried. In normal use only the owner or an adminstrator are allowed to change access permissions. With the help of the plug-in it is possible to give PatientCurator accounts elevated permissions.

comment:21 Changed 4 years ago by Nicklas Nordborg

(In [4037]) References #891: Report delivery system

Added "PAD" column to the delivery client.

comment:22 Changed 4 years ago by Nicklas Nordborg

(In [4038]) References #891: Report delivery system

Improved error handling when downloading reports.

comment:23 Changed 4 years ago by Nicklas Nordborg

(In [4040]) References #891: Report delivery system

Specimen that have a CompletedDate set but no published report are now shown with a message that SCAN-B should be contacted. This is typically something that would happen due to some failure in some step in the lab or analysis of the specimen.

comment:24 Changed 4 years ago by Nicklas Nordborg

(In [4043]) References #891: Report delivery system

Re-enabling code that was commented out for debugging reasons.

  • Set CompletedDate when publishing reports
  • Activated the 'Last 30 days' filter

Also removed the help icon on the login page.

This should complete major features for the report delivery system. To summarize there are three main points:

  • The "Pathology referral form registration" wizard will share Patient, Case and Specimen to the "Site group" the specimen belongs to. This will cause the specimen to show up in the delivery client in the "arbete pågår" section.

  • The "Yellow label tracking and reporting" wizard has a new "Publish for delivery" function. This will copy the current pilot report to a directory inside /home/Delivery. The copy will include personal information about the patient. The copy will only be shared to the "Site group" and to the PatientCurator group. This will cause the report to show up in the delivery client in the "nya rapporter" section. If it is not possible to create a report for some reason (eg. not enough RNA, sequencing failure, etc.), the specimen may be marked as completed. This will cause the delivery client to display a message to contact SCAN-B for more information.

  • The delivery client is a special interface designed for delivering reports to the sites. Users from each site need an account that is a member of the SCAN-B Delivery group and a site-specific group. YubiKey is required for logging in. When a user is downloading a report using the delivery client a DOWNLOAD entry is logged in the history log. This will also cause the report to moved away from the "nya rapporter" section.

comment:25 Changed 4 years ago by Nicklas Nordborg

Description: modified (diff)

comment:26 Changed 4 years ago by Nicklas Nordborg

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.