Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refine DG use cases and NFR #247

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 44 additions & 37 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -819,149 +819,156 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

### Use cases

(For all use cases below, the **System** is the `mediCLI` and the **Actor** is the `hospital clerk`, unless specified otherwise)
(For all use cases below, the **System** is the `MediCLI` and the **Actor** is the `hospital clerk`, unless specified otherwise)

(Note: For all use cases, if you enter the command format wrongly, MediCLI will show an error message and return to step 1.)

**Use case: Add a patient**

**MSS**

1. Hospital clerk enters patient data
2. mediCLI adds the patient into database
1. Hospital clerk needs to add a patient
2. Hospital clerk enters patient data
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spacing error

2. MediCLI adds the patient into database
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

numbering is wrong


Use case ends.

**Extensions**

* 1a. The entered patient data is not in the correct format
* 1a1. MediCLI shows an error message with exact issue
* 2a. The entered patient data is not in the correct format
* 2a1. MediCLI shows an error message.

Use case ends.
Use case resumes at step 1.

* 1b. The entered patient is already in the database
* 1b1. MediCLI shows an error about duplicate persons
* 2b. The entered patient is already in the database
* 2b1. MediCLI shows an error message.

Use case ends.



Use case resumes at step 1.

**Use case: Delete a patient**


**MSS**


1. Hospital clerk requests to list persons
2. mediCLI shows a list of persons
2. MediCLI shows a list of persons
3. Hospital clerk requests to delete a specific patient in the list
4. mediCLI deletes the patient
4. MediCLI deletes the patient

Use case ends.

**Extensions**

* 2a. The list is empty.

Use case ends.
Use case resumes at step 1.


* 3a. The given index is invalid.
* 3a1. mediCLI shows an error message.
* 3a. The given patient index is invalid.
* 3a1. MediCLI shows an error message.

Use case ends.
Use case resumes at step 1.

**Use case: Create an appointment**

**MSS**

1. Hospital clerk needs to create appointment between doctor and patient
2. Hospital clerk enters doctor and patient details
3. mediCLI creates the appointment
3. MediCLI creates the appointment

Use case ends.


**Extensions**

* 2a. The entered doctor or patient detail is invalid.
* 2a1. MediCLI will show an error message about invalid doctor or patient details.
* 2a1. MediCLI will show an error message.

Use case ends.
* 2b. The enetered appointment information is invalid
* 2b1. MediCLI will show an error message about which fields are invalid.
Use case resumes at step 1.

* 2b. The entered appointment date is invalid
* 2b1. MediCLI will show an error message.

Use case ends.
Use case resumes at step 1.

**Use case: Delete an appointment**

**MSS**

1. Hospital clerk needs to delete appointment between doctor and patient
2. Hospital clerk enters appointment id
3. mediCLI deletes the appointment
2. Hospital clerk enters appointment index
3. MediCLI deletes the appointment

Use case ends.

* 2a. The given index is invalid.
* 2a1. mediCLI shows an error message about invalid Index.
**Extensions**

Use case ends.
* 2a. The entered appointment index is invalid.
* 2a1. MediCLI shows an error message.

Use case resumes at step 1.

**Use case: Query patient by name**

**MSS**

1. Hospital clerk needs to search for patient
2. Hospital clerk enters patient name
3. mediCLI lists patients with supplied name
3. MediCLI lists patients with supplied name

Use case ends.

**Extensions**

* 3a. The list is empty

Use case ends.
Use case resumes at step 1.

**Use case: Query appointments by patient**

**MSS**

1. Hospital clerk needs to search for appointment by patient
2. Hospital clerk enters patient name
3. mediCLI lists relevant appointments
3. MediCLI lists relevant appointments

Use case ends.

**Extensions**

* 3a. The list is empty

Use case ends.
Use case resumes at step 1.

**Use case: Query appointments by doctor**

**MSS**

1. Hospital clerk needs to search for appointment by doctor
2. Hospital clerk enters doctor name
3. mediCLI lists relevant appointments
3. MediCLI lists relevant appointments

Use case ends.

**Extensions**

* 3a. The list is empty

Use case ends.
Use case resumes at step 1.

### Non-Functional Requirements

1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
2. Should be able to hold up to 1000 medical staff without a noticeable sluggishness in performance for typical usage.
3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
4. mediCLI should be easy to integrate with existing medical database systems so that staff can immediately switch to the new app.
4. MediCLI should be easy to integrate with existing medical database systems so that staff can immediately switch to the new app.
5. Comprehensive documentation should be provided, including user guides, command references, and troubleshooting resources.
6. MediCLI should not need an internet connection to run.
7. The GUI for MediCLI should be well organised, purpose oriented and easy to understand for users of any knowledge level.
8. MediCLI should handle the majority of common user errors and give the users suggestions to mitigate these errors.
9. MediCLI does not support concurrent usage between multiple users.
10. MediCLI does not support languages other than English.

### Glossary

Expand Down
Loading