Requirements - xrese/shared-mental-health GitHub Wiki
This document contains the current Feature List, the revised set of User Stories, and the key Use Cases developed from initial Requirements Gathering.
Feature List
A Simple Bulleted list of the features requested by our Stakeholders. This list is divided into two sublists: MVP and Beyond MVP.
MVP
- An app which can be used to serve multiple mental health issue decision making processes.
- Focus is on Three Phases
- Understanding the mental health issue:
- Causes of the mental health issue
- Symptoms of the mental health issue
- Treatments available for this mental health issue
- Making a decision about this mental health issue
- Identifying those symptoms that bother the patient the most
- Identifying those treatments a patient is most interested in
- Identifying those treatments a patient is lest interested in
- Understanding the decision made
- Allow the patient to articulate why a selected most interested in treatment is advantageous
- Allow the patient to articulate why a selected least interested in treatment is disadvantageous
- Allow the patient to evaluate other potential needs
- Finally, summarize the overall decision to the patient and allow them to discuss this with their provider
- Understanding the mental health issue:
- Causes, Symptoms, and Treatments all have the following characteristics, which can be loaded from a file at runtime
- A picture
- A name
- A description
- The Welcome Screen information can be loaded from a file at runtime and consists of:
- A description
- A background image
- The Instructions for the decision section can be loaded at runtime
- The other needs section(s) can also be loaded at runtime
- Patient data should be collected to help improve the app and ability to help patients make decisions
- This information is not specifically tied to an actual individual, but rather anonymous user data.
Beyond MVP
- Machine Learning to improve the decision making process
User Stories
-
User Story: As a patient I want to be provided information on causes of XX so that I can understand what they are and how they affect me.
Acceptance Criteria Scenario: Show cause info popup
- Given: A listing of causes
- When: The user selects one (by tapping on its name/picture)
- Then: A popup displaying a description of that cause is shown
- And: The rest of the app is darkened to allow focus to be on the popup
-
User Story: As a patient I want to be provided information on the symptoms of XX so that I can understand what they are and how they may affect me.
Acceptance Criteria Scenario: Show symptom info popup
- Given: A listing of symptoms
- When: The user selects one (by tapping on its name/picture)
- Then: A popup displaying a description of that symptom is shown
- And: The rest of the app is darkened to allow focus to be on the popup
-
User Story: As a patient I want to be warmly welcomed to the app so that I feel I can use this app to discover more about XX and discuss openly
Acceptance Criteria Scenario: The Welcoming Screen
- Given: User starts the app
- Then: A welcome screen displaying a warm background is shown
- And: A description of the purpose of the app is provided
- And: A next button is shown to allow them to move to information gathering
-
User Story: As a patient I want to be able to exit back to the welcome screen at any time so that I do not feel too much pressure on making any decision
Acceptance Criteria Scenario: Exit to Welcome at ANY time
- Given: User is on any screen (excluding a popup) of the app
- When: User presses the Exit button (floating action button)
- Then: The welcome screen is presented
- And: They must restart the process
- But: They may by-pass the understanding section
-
User Story: As a patient I want to transition to the next screen in the process so that I can move forward
Acceptance Criteria Scenario: User wishes to move forward in the process
- Given: User is on a main screen of the process
- When: User has completed all required tasks for that screen
- Then: The next button will transition from inactive (gray) to active (main color)
Acceptance Criteria Scenario: User moves on in the process
- Given: User has completed all tasks for the current screen
- When: User taps the "Next" button
- Then: The screen transitions to the next screen in the phase, or the next phase
-
User Story: As a patient I want to be able to select those treatments that I am most interested in so that I can discuss these options with my provider
Acceptance Criteria Scenario: Selecting treatments most interested in
- Given: User is shown a list of treatments
- And: User is informed that they should select those they are most interested in
- When: User selects by tapping on a treatment
- Then: The treatment is adorned with a colored (blue) star (blue was selected for color-blindness purposes)
Acceptance Criteria Scenario: User wants more info
- Given: User is shown a list of treatments
- And: User is informed that they should select those they are most interested in
- And: User wants more information about a given treatment
- When: User selects by pressing and holding on a treatment option
- Then: A popup displaying a description of the treatment will open
- And: The rest of the app is darkened to allow focus to be on the popup
Acceptance Criteria Scenario: User wishes to reset selections
- Given: User has selected one or more treatment options
- And: User is unsatisfied with selections and wants to start over
- When: User taps on the reset button
- Then: All selected treatments will return to their original unmarked status
-
User Story: As a patient I want to be able to select those treatments that I am least interested in so that I can discuss this options with my provider
Acceptance Criteria Scenario: Selecting treatments least interested in
- Given: User is shown a list of treatments
- And: User is informed that they should select those they are least interested in
- When: User selects by tapping on a treatment
- Then: The treatment is adorned with a colored (red) 'X'
Acceptance Criteria Scenario: User wants more info
- Given: User is shown a list of treatments
- And: User is informed that they should select those they are most interested in
- And: User wants more information about a given treatment
- When: User selects by pressing and holding on a treatment option
- Then: A popup displaying a description of the treatment will open
- And: The rest of the app is darkened to allow focus to be on the popup
Acceptance Criteria Scenario: User wishes to reset selections
- Given: User has selected one or more treatment options
- And: User is unsatisfied with selections and wants to start over
- When: User taps on the reset button
- Then: All selected treatments will return to their original unmarked status
-
User Story: As a provider I want to be able to configure the application options to better optimize the discussions I have with my patients.
Acceptance Criteria Scenario: Open the app settings
- Given: Provider wants to update settings
- When: Provider selects settings from the drawer
- And: Provider has entered their settings code
- Then: Show the settings page
Acceptance Criteria Scenario: Update the app settings
- Given: Provider has settings page open
- When: Provider changes a setting
- Then: Settings are immediately updated and affect app operation
Use Cases
Use case descriptions will be provided to further describe the requirements, of key features, which could not be captured by a user story. Each Use Case description will use the following template:
Name:
Short Description
Pre-conditions:
Post-conditions:
Error-conditions:
Error State:
Trigger:
Actor(s):
Sequence:
1.
2.
n.
Alternatives:
Optional: