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
    1. Understanding the mental health issue:
      • Causes of the mental health issue
      • Symptoms of the mental health issue
      • Treatments available for this mental health issue
    2. 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
    3. 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
  • 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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: