User requirements set out the functionalities expected of a system from the end user’s perspective. These functionalities are grouped by the type of user expected to perform or utilise them into application-level user roles. There is no fix correspondence between user roles and individual, physical users; a physical user may assume different roles during different interactions with the system.
Roles and Use Cases
This section lists the four roles that users can assume when they interact with the Seedcase framework as a whole. The interaction types associated with each role are specified through use cases.
- Data Contributor: inputs data to the Data Resource, e.g., authorized centers and researchers. The use cases are:
- Authorized centers (GPs and hospitals) upload standardized and routine data through the data entry web portal.
- Authorized researchers upload generated data from completed data projects. Non-standardized data is either manually processed and cleaned before entering into the database or uploaded in its raw format and processed with a plugin specific to that data.
- Data Requester: requests access to a subset of data in the Data Resource, e.g., researchers and clinicians. Use cases are:
- Interested researchers browse the catalog of available data and the data dictionary.
- Researchers request access to data by submitting a description of their proposed data project and selecting the relevant data from the catalog. This request is added to a list of data projects awaiting approval from an Administrator (Role 3).
- Administrator: manages the Data Resource. Data controllers, as defined by the GDPR, fall into this category. Use cases are:
- Initial upload of data that includes setting up tables and allocating space in the raw data file storage.
- Approve newly submitted data projects that request data and manage existing data projects.
- Approve and authorize researchers to access the web portal for data requests and manage currently authorized researchers.
- Manage collection centers’ access and authorization.
- Manage or handle potential issues with the data itself, through direct access to the data storage.
- External User: views updates on findings and results from the Data Resource such as aggregate statistics, e.g., policymakers, healthcare workers, journalists, researchers, and the general public. Use cases are:
- Users view and read through the list of completed, ongoing, and proposed data projects that use the Data Resource.
- Users access and view aggregate statistics and the latest published findings that are relevant to them/their practice.
Additionally, external systems may, if required, assume the following role:
- External Secure Server: destination for transfer of requested data for approved data projects. This is only necessary when the user who is requesting access is an external partner to those who control the Data Resource.
User Stories
User stories are a natural language description of specific or desired features of a software product. User stories are often structured in the form of:
As a USER, I want to ACTION because REASON.
This section lists the key user stories for each user role defined above.
Data Contributor
Data Contributor |
be able to create tables |
so that I can store my data |
Data Contributor |
be able to enter free text definitions for my variables |
so that I can show the rest of the users what exactly has been captured |
Data Contributor |
add fields to my tables |
so that I can add more variables to the same research subject |
Data Contributor |
add validation to my fields |
so that the system will alert me, if there is data that doesn’t fit in my upload |
Data Contributor |
set a field as NULL or NOT NULL values |
so that the system will alert me, if there is data that doesn’t fit in my upload |
Data Contributor |
define a field to allow or not allow duplicate values |
so that the system will alert me, if there is data that doesn’t fit in my upload |
Data Contributor |
upload a file with data that doesn’t have a receiving table |
so that I can use the system to fetch all the headings and data types, helping me to create a new table |
Data Contributor |
select from a set of predefined tables |
so that I don’t have to type in all the definitions, if I’m uploading data from a particular machine or system |
Data Contributor |
see the violations of data validation rules |
so that I can correct the errors as I’m batch uploading data |
Data Contributor |
select one violation type |
so that I can work through all the occurrences at the same time |
Data Contributor |
be notified if my variable names could be improved |
so that I can decide if they should be changed |
Data Contributor |
see both data sets if I upload data that is already in the system |
so that I can decide which one I would like to keep |
Data Contributor |
be alerted if there is a violation that doesn’t stop an upload (warning) |
so that I can decide if I need to correct the data, or if it should stay as is |
Data Requester
Data Requester |
submit a request for data |
so that I can do new research or extend my current research |
Data Requester |
see the progress of my request in the system |
so that I know when I’m likely to hear of a decision |
Data Requester |
see the variables that the system contains |
so that I can decide if I should apply for data |
Data Requester |
select the variables I need |
so that I can put together a variable list for an application for data |
Data Requester |
ask questions about variables |
so that I can get clarification before asking for data |
Data Requester |
select between different file formats when I submit a data request |
so that I get the data in a format I can work with |
Administrator
User stories for different administrator types.
Primary Administrator
Primary Administrator |
select which permissions a user will have |
so that I can control who has access to the raw data in the system |
Primary Administrator |
group permissions into roles |
so that I don’t have to give every single individual permission to a user |
Primary Administrator |
bulk update either a group of users or a group of roles |
so that I don’t have to do it for each one |
Primary Administrator |
see the name of the uploader that generated an upload with a warning |
so that I can contact them about the warning if they persist in doing the same thing |
Primary Administrator |
be alerted if there is a violation that doesn’t stop an upload (warning) |
so that I can decide if I need to correct the data, or if it should stay as is |
Primary Administrator |
define a field (or set of fields) as a primary key for a table |
so that I can link data between tables |
Primary Administrator |
define a field (or set of fields) as a foreign key for a table |
so that I can link data between tables |
User Access Administrator
User Access Administrator |
set up user accounts |
so that people can work in the system |
User Access Administrator |
assign a user to a role/group |
so that they will receive the correct permissions to work in the system |
User Access Administrator |
see the individuals assigned to each role |
so that I can easily audit who has access to which parts of the system |
User Access Administrator |
see the groups/roles assigned to an individual |
so that I can easily audit what kind of access a user has/has had |
Data Request Administrator
Data Request Administrator |
see the applications submitted |
so that I can check if they are completed correctly |
Data Request Administrator |
send an application back to the requester |
so that they can fill out any missing details |
Data Request Administrator |
comment on a data request |
so that I can inform either the requester or the data controller of my feedback |
Data Request Administrator |
forward a request to the data controller |
so that they can make a decision on whether or not to grant access to the data |
Data Request Administrator |
put together a data extract script |
so that I can provide the data requested |
Data Request Administrator |
pull the data out of the system |
so that I can make the data available to the requestor |
Data Request Administrator |
see how many rows of data a specific request will generate |
so that I can determine if the tables have been linked correctly |
Data Request Administrator |
select between formats for download of data |
so that I can send the most appropriate format to the data requester |