User requirements

Published

December 4, 2024

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.

  1. Data Contributor: inputs data to the Data Resource, e.g., authorized centers and researchers. The use cases are:
    1. Authorized centers (GPs and hospitals) upload standardized and routine data through the data entry web portal.
    2. 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.
  2. Data Requester: requests access to a subset of data in the Data Resource, e.g., researchers and clinicians. Use cases are:
    1. Interested researchers browse the catalog of available data and the data dictionary.
    2. 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).
  3. Administrator: manages the Data Resource. Data controllers, as defined by the GDPR, fall into this category. Use cases are:
    1. Initial upload of data that includes setting up tables and allocating space in the raw data file storage.
    2. Approve newly submitted data projects that request data and manage existing data projects.
    3. Approve and authorize researchers to access the web portal for data requests and manage currently authorized researchers.
    4. Manage collection centers’ access and authorization.
    5. Manage or handle potential issues with the data itself, through direct access to the data storage.
  4. 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:
    1. Users view and read through the list of completed, ongoing, and proposed data projects that use the Data Resource.
    2. 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:

  1. 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

As a… I want to… Because…
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

As a… I want to… Because…
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

As a… I want to… Because…
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

As a… I want to… Because…
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

As a… I want to… Because…
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