-
Notifications
You must be signed in to change notification settings - Fork 1
Use Cases (7, 8, 9, 10, 11)
HumphreyLu6 edited this page Dec 3, 2018
·
5 revisions
- This page is for describing (using detailed textual use cases) the tasks for using the application.
- This page presents use case Offline behavior, Photographs, Geo-location and Maps and Body-locations.
7. Offline behavior
- As a patient, I want to add or edit problems and records while off the network, and have these changes synchronized once I regain connectivity.
ID | 7.1 |
Name | Offline operation |
Actor(s) | Patient |
Description | Patient can add or edit problems/records offline and synchronize changes. |
User Story | US 08.01.01 |
Trigger | The user wishes to add or edit offline |
Precondition | Offline |
Postcondition | Changes gets stored in App |
Basic Flow | 1. When the MedicalTracker app is offline, the user adds/edits problems/records 2. All changes are saved 3. Once the MedicalTracker app is online, all changes are synchronized automatically |
Exception | The device cannot get geo-location information offline, which causes users cannot edit geo-locations for records |
8. Photographs
- As a patient, I want to optionally attach one or more photographs as further viewable details to a record of mine.
ID | 8.1 |
Name | Attach photographs to a record |
Actor(s) | Patient |
Description | Patient can optionally add one or more photographs to a record of his/her |
User Story | US 09.01.01 |
Trigger | The user wishes to add a photo |
Precondition | The user is a patient |
Postcondition | Changes gets stored in App |
Basic Flow | 1. User chooses a specific record he/she wants to add photographs to 2. User presses edits on the record details page 3. User chooses open camera option 4. User takes a picture 5. The user confirms in preview page to save the photograph and jump to record detail activity or cancel in preview page to open the camera again |
Exception | The device has no permission to camera |
- As a patient, I want the maximum number of photographs that can be attached to a record to be at least 10.
ID | 8.2 |
Name | The maximum number of photographs to a record |
Actor(s) | Care provider |
Description | Patient can add at least 10 photographs to one record |
User Story | US 09.01.02 |
Trigger | Over the limit |
Precondition | The user has a record to add a photo to |
Postcondition | Changes gets stored in the App |
Basic Flow | 1. In the record detail page, remind the user that how many more photographs she/he can added 2. If the number of photographs of the record is equal to the limit, remind the user to delete photos before he/she adds photos |
Exception | The storage of local device or server is full |
- As a patient or care provider, I want to view any attached photograph for a record.
ID | 8.3 |
Name | View attached photographs |
Actor(s) | Care provider or patient |
Description | Care provider or patient can view any photograph for a record |
User Story | US 09.02.01 |
Trigger | The user chooses to view uploaded photos |
Precondition | The viewer is a registered user |
Postcondition | The corresponding photos are displayed |
Basic Flow | 1.User chooses a specific record 2. The record details are shown and the user presses on the thumbnail of photographs 3. All photographs of the record are shown |
Exception | None |
- As a system admin, I want each photograph to be under 65536 bytes in size.
ID | 8.4 |
Name | Photograph size constraint |
Actor(s) | System admin |
Description | System admin restricts photograph size to be under 65536 bytes |
User Story | US 09.03.01 |
Trigger | Over the limit |
Precondition | There is photo uploaded |
Postcondition | None |
Basic Flow | 1.User confirms in the preview page |
Exception | The app checks if the photograph's size is over the limit 65536 bytes and if so, adjust the size of the preview page |
9. Geo-location and Maps
- As a patient, I want to specify a geo-location on a map of a record.
ID | 9.1 |
Name | Specify geo locations |
Actor(s) | Patient |
Description | Patient can specify the geo-location of a record |
User Story | US 10.01.01 |
Trigger | The user chooses to add a geo-location |
Precondition | There exists a record |
Postcondition | New data gets stored in the App |
Basic Flow | 1. User chooses GPS location option in record detail page 2. App displays a map and a default location is chosen 3. User can adjust the geo-location on the map 4. The user confirms the addition of the geo-location |
Exception | Empty address if failed to get location |
- As a patient or provider, I want to view any geo-location for a record, on a map.
ID | 9.2 |
Name | View geo-locations |
Actor(s) | Care provider and patient |
Description | A care provider or patient can view the geo-location of a record |
User Story | US 10.02.01 |
Trigger | The user chooses to view the geo-location |
Precondition | There is a record |
Postcondition | The locations are displayed |
Basic Flow | 1. User chooses the geo-location option on record detail page 2. The app displays the geo-location on a map |
Exception | The app lost google play services |
- As a patient or care provider, I want to see a map of all records for a patient (that have locations).
ID | 9.3 |
Name | View all geo-locations |
Actor(s) | Care provider and patient |
Description | A care provider or patient can view all geo-locations of records |
User Story | US 10.03.01 |
Trigger | The user chooses to view the map of the patient's records |
Precondition | There exists records of the patient |
Postcondition | The locations are displayed |
Basic Flow | 1. User chooses view_all_locations option on the map 2. The app displays all geo-locations of records on the map |
Exception | The app lost google play services |
10. Body_locations
- As a patient, I want to upload at least front and back body-location photos so I may indicate where photo records were taken on my body.
ID | 10.1 |
Name | Upload body location photos |
Actor(s) | Patient |
Description | A patient can upload at least two body location photos for each record |
User Story | US 11.01.01 |
Trigger | The user chooses to upload the body location photos |
Precondition | The user is a patient |
Postcondition | Changes gets stored in the App |
Basic Flow | 1. User chooses body location area to enable camera 2. User takes photos 3. The user chooses a body location photo and indicates a point location |
Exception | The internet is unstable caused uploading failed |
- As a patient, body locations are effectively a reference to a body-location photo and a point location on the photo.
ID | 10.2 |
Name | Body location references |
Actor(s) | Patient |
Description | As a patient, body locations are effectively a reference to a body-location photo and a point location on the photo |
User Story | US 11.02.01 |
Trigger | None |
Precondition | The user is a patient |
Postcondition | The body location is indeed a reference |
Basic Flow | 1. The user takes a photo 2. The user marks a point on the paper-doll cutout |
Exception | None |
- As a patient, I should be able to have at least 2 body location pictures.
ID | 10.3 |
Name | Number of body locations |
Actor(s) | Patient |
Description | As a patient, I should be able to have at least 2 body location pictures |
User Story | US 11.03.01 |
Trigger | The user chooses to upload photos |
Precondition | The user is a patient |
Postcondition | There are indeed at least two body location photos |
Basic Flow | 1. The user uploads photos 2. The user is able to add 2+ body location photos for each record |
Exception | The storage of the local device is full |
- As a patient, when I view a body location it should be a clear indicator of a point on a body-location picture.
ID | 10.4 |
Name | View body location photos |
Actor(s) | Patient |
Description | As a patient, when I view a body location it should be a clear indicator of a point on a body-location picture |
User Story | US 11.04.01 |
Trigger | The user chooses to view uploaded photos |
Precondition | The user is a patient |
Postcondition | The correct body location photo is indeed displayed |
Basic Flow | 1. User chooses body location photos in record detail page 2. The screen displays the body location photos with a clear indicator of a point |
Exception | There wasn't an indicator of a point on the picture |
- As a patient, when making a record I want to choose from available body locations to associate with a photo or a record.
ID | 10.5 |
Name | Associate record/photo with body locations |
Actor(s) | Patient |
Description | As a patient, when making a record I want to choose from available body locations to associate with a photo or a record. |
User Story | US 11.05.01 |
Trigger | The user chooses body locations in edit/add record page |
Precondition | The user is a patient |
Postcondition | A body location is selected for a record/photo |
Basic Flow | 1. The user is trying to add a record 2. The user chooses body location in add record page 3. The user takes photos |
Exception | None |
- As a patient, I should be able to add body location photos.
ID | 10.6 |
Name | Add body location photos |
Actor(s) | Patient |
Description | As a patient, I should be able to add body location photos. |
User Story | US 11.06.01 |
Trigger | The user chooses to add body location photos in add/edit record detail page |
Precondition | The user is a patient |
Postcondition | A body location photo is added to a record |
Basic Flow | 1. The user chooses to add body location photos 2. The camera of a device is enabled and the user takes a photo 3. The user confirms the photo or cancels to go back to step 2 |
Exception | The app does not have camera permissions |
- As a patient, I should be able to remove body location photos.
ID | 10.7 |
Name | Remove body location photos |
Actor(s) | Patient |
Description | As a patient, I should be able to remove body location photos. |
User Story | US 11.07.01 |
Trigger | The user chooses to remove body location photos in edit record detail page |
Precondition | The user is a patient |
Postcondition | body location photos of a record are removed |
Basic Flow | 1. The user chooses to view body location photos 2. The user chooses body location photos that he/she wanted to remove 3. The app asks for confirmation of removing 4. The user chooses to confirm or cancel 5. The app removes the body location photos of a record or goes back to body location photos view page. |
Exception | The device has no internet services |
- As a patient, I should be able to label body location photos.
ID | 10.8 |
Name | Label body location photos |
Actor(s) | Patient |
Description | As a patient, I should be able to label body location photos |
User Story | US 11.08.01 |
Trigger | The user need to specify where the problem is on the photos |
Precondition | The user is a patient |
Postcondition | A label was labeled on the body location photos |
Basic Flow | 1. After the user took a photo, the user points a point on the photo 2. The app put on a circle label on the point where the user pointed |
Exception | None |
- As a patient, I want body-location photos stored locally on my device (and remotely) so that access to them is fast.
ID | 10.8 |
Name | Store body-location photos |
Actor(s) | Patient |
Description | As a patient, I want body-location photos stored locally on my device (and remotely) so that access to them is fast. |
User Story | US 11.09.01 |
Trigger | The user could access body-location photos faster |
Precondition | The user is a patient |
Postcondition | Body location photos are stored locally on the user's device and remotely |
Basic Flow | 1. The user takes body location photos 2. The user confirms to add a record with the body location photos 3. The app store the body location photos on his/her device |
Exception | Limitation of storage of a device |
10. Sys-admin
- As a sysadmin, I want to use a Free/Libre Open Source Software service-side tool such as Elasticsearch to host this application. No proprietary software for data-hosting.
ID | 10.8 |
Name | Open source software service-side tool |
Actor(s) | sysadmin |
Description | As a sysadmin, I want to use a Free/Libre Open Source Software service-side tool such as Elasticsearch to host this application. No proprietary software for data-hosting. |
User Story | US 12.01.01 |
Trigger | The sysadmin wants to avoid proprietary software for data-hosting |
Precondition | Data of the app needs to be stored and accessed by users |
Postcondition | Data of the app stores on a Free/Libre Open Source Software |
Basic Flow | 1. When users are adding, editing or deleting records/problems/profile and so on, the app saved data on Elasticsearch |
Exception | Elasticsearch crashes when the app stores or accesses data |
Medical Tracker: Maintain your records, track your health!
Copyright (C) 2018 Qiaoyan Zhang, Devin Dai, Zhonghao Lu, Jingyuan Ma, Xinyang Li, Yuan Wang