View on GitHub

tp

User Guide

Table of Content

1. Introduction

MedBot is a Command Line Interface (CLI) application for head nurses to manage patients’ and medical staff’s personal information, and schedule appointments between them.

2. Quick Start Guide

2.1 Installation

  1. Ensure that you are currently using Java 11.
  2. Download the latest version of MedBot.jar from here.
  3. Move the file to the folder that you want to use as the MedBot’s root folder.
  4. Execute the java -jar MedBot.jar command in the terminal in the same folder as the MedBot.jar file to launch MedBot. The following output should be observed:
    Hello, I'm MedBot!
    How can I help you today?
    

2.2 Using MedBot

  1. Type in commands into the terminal and press Enter to execute it.
  2. Refer to the Commands below for details on each command.

3. Features

These are the main features of MedBot:

Each feature is contained inside a different view/tab in MedBot, which can be switched between using the switch command, explained further down below.

4. Commands

4.1 General Notes

These notes apply to all commands that are supported by MedBot.

4.2 General Commands

These commands will work the same for any view that you are currently in.

4.2.1 Access user guide: help

Provides an internal user guide that is accessible via the terminal.

Format: help [COMMAND]

Simply typing help without parameters will display a list of commands that can be used in the current view.

Expected Output when the program is in the Patient Management view:

Here is the list of commands:

help
add
delete
edit
view
list
find
hide
show
switch
get view
exit

To view more information about each command and their respective command formats, type:
help [COMMAND]

*Note that all commands will remove any '|' inputs for format parsing purposes.
For expected output examples, please refer to the User Guide.

4.2.2 Switch view: switch

Switches between the different views of MedBot.

Format: switch [VIEW_TYPE]

Here is the list of views and their corresponding [VIEW_TYPE] specifiers:

View Specifier Alternate Specifier
Patient Management p 1
Staff Management m 2
Scheduler s 3

Using either specifier will switch to the corresponding view. I.e., switch m and switch 2 will both switch to the Staff Management view.

If the switch command is called without any parameters, the view that is switched to will depend on the current view in the following order.

Patient Management –> Staff Management –> Scheduler –> Patient Management

Example: switch p

Expected Output:

  ___  _ _____ ___ ___ _  _ _____ 
 | _ \/_\_   _|_ _| __| \| |_   _|
 |  _/ _ \| |  | || _|| .` | | |  
 |_|/_/ \_\_|_|___|___|_|\_| |_|  
 |_ _| \| | __/ _ \               
  | || .` | _| (_) |              
 |___|_|\_|_|_\___/    __         
 \ \ / /_ _| __\ \    / /         
  \ V / | || _| \ \/\/ /          
   \_/ |___|___| \_/\_/           
                                  
You are now in the Patient Management view.

4.2.3 Get current view: get view

Gets the current view type of the program.

Format: get view

Expected Output when the program is in the Patient Management view:

You are currently in the Patient Management view.

4.2.4 Exit Program: exit

Exits the program.

Format: exit

Expected Output:

Thank you for using MedBot!
See you again!

4.3 Patient/Medical Staff Management Commands

Commands in the Patient Management view and Medical Staff Management view function similarly. Below are the descriptions of the patient management commands that are used in the Patient Management view, but these commands would work the same way for staff management in the Medical Staff Management view.

4.3.1 Add a patient: add

Adds a patient with the given information to the patient manager. Upon successfully adding a patient, MedBot will generate a unique patient ID for reference and use in other commands.

Format: add [i/PATIENT_IC] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]

At least one parameter must be provided. Parameters can be entered in any order.

Example: add i/S7812345X n/John Doe p/87654321 e/john.doe@gmail.com a/Blk 123 Bishan Street 7, #03-07

Expected output:

Added patient with Patient ID: 1
IC: S7812345X
Name: John Doe
H/P: 87654321
Email: john.doe@gmail.com
Address: Blk 123 Bishan Street 7, #03-07

Notes on adding patients:

4.3.2 Delete a patient: delete

Deletes a patient from the patient manager.

Format: delete PATIENT_ID

Example: delete 3

Expected Output:

Patient with ID 3 deleted from system.

Notes:

4.3.3 View a patient’s information: view

View a patient’s personal information.

Format: view PATIENT_ID

Example: view 1

Expected Output:

Here's the requested patient information:

Patient ID: 1
IC: S7812345X
Name: John Doe
H/P: 87654321
Email: john.doe@gmail.com
Address: Blk 123 Bishan Street 7, #03-07

4.3.4 List information of all patients: list

List the information of all patients in the patient manager.

Format: list [-h]

list will only show all not-hidden patients. To show hidden patients, use list -h instead.

Example Output:

Here is a list of all not-hidden patients:
For full details of each patient, please use the command "view PATIENT_ID"
 ----------------------------------------------------------------------------------------------------- 
 |  ID  | IC Number |         Name         | Phone No. |        Email         |       Address        | 
 ----------------------------------------------------------------------------------------------------- 
 | 1    | S7812345X | John Doe             | 87654321  | john.doe@gmail.com   | Blk 123 Bishan St... | 
 | 2    | S8765432G | Alice Tan            | 81234567  | alice123@yahoo.com   | Blk 519 Queenstow... | 
 | 3    | S9234567M | Muhd Faiz            | 91231234  | faiz123@gmail.com    | Blk 217 Ang Mo Ki... | 
 | 4    | S9412345R | Sarah Fernandez      | 81112222  |                      | 47 Lentor Crescent   | 
 ----------------------------------------------------------------------------------------------------- 

Notes:

4.3.5 Edit a patient’s information: edit

Edit the personal information of a patient in the patient manager.

Format: edit PATIENT_ID [i/PATIENT_IC] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]

At least one parameter must be provided. Parameters can be entered in any order. Only the parameters that are given will be modified.

Example: edit 1 p/87776666 e/john_doe@gmail.com

Expected output:

The information of the patient with ID 1 has been edited to:

Patient ID: 1
IC: S7812345X
Name: John Doe
H/P: 87776666
Email: john_doe@gmail.com
Address: Blk 123 Bishan Street 7, #03-07

Notes:

Refer to notes on adding patients

4.3.6 Find patients: find

Find all patients that contain the given attributes.

Format find [i/PATIENT_IC] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]

Example: find n/John

Expected Output:

Here is a list of matched patients:
 ----------------------------------------------------------------------------------------------------- 
 |  ID  | IC Number |         Name         | Phone No. |        Email         |       Address        | 
 ----------------------------------------------------------------------------------------------------- 
 | 1    | S7812345X | John Doe             | 87654321  | john.doe@gmail.com   | Blk 123 Bishan St... | 
 ----------------------------------------------------------------------------------------------------- 

Notes:

4.3.7 Hide a patient: hide

Hides a patient in the list. Hidden patients are not shown with list command. To view all hidden patients, use list -h.

This command only works for non-hidden patients.

Format: hide PATIENT_ID

Example: hide 1

Expected Output:

The patient with ID 1 is now hidden.

4.3.8 Show a patient: show

Show a patient in the list. Shown (not-hidden) patients are shown on list

This command only works for hidden patients.

Format: show PATIENT_ID

Example: show 1

Expected Output:

The patient with ID 1 is now not hidden.

4.4 Scheduler Commands

4.4.1 Add an appointment: add

Adds an appointment to the appointment manager. MedBot will check if the appointment clashes with others and display an error message if it does. Upon successfully adding an appointment, MedBot will generate a unique appointment ID for reference and use in other commands.

Format: add p/PATIENT_ID s/STAFF_ID d/DATE_TIME

The format for DATE_TIME is DDMMYY hhmm. I.e. 9 February 2021, 0800HRS should be written as 090221 0800

Example: add p/2 s/1 d/091121 1200

Expected output:

Added appointment with Appointment ID: 1
Patient ID: 2
Staff ID: 1
Date/Time: 09 Nov 21 1200HRS

Notes:

4.4.2 Delete an appointment: delete

Delete an appointment from the appointment manager.

Format: delete APPOINTMENT_ID

Example: delete 1

Expected output:

Appointment with ID 1 deleted from system.

Notes:

4.4.3 View an appointment’s information: view

View the information of an appointment.

Format: view APPOINTMENT_ID

Example: view 1

Expected output:

Here is the requested appointment information:

Appointment ID: 1
Patient ID: 1
Staff ID: 1
Date/Time: 12 Nov 21 1200HRS

4.4.4 List information of all appointments: list

List the information of all appointments, including those of hidden patients.

Format: list

Example output:

Here is a list of all appointments:
 -------------------------------------------------------------------------------------------------- 
 |  ID  |     Date/Time     | Patient ID |     Patient Name     | Staff ID |      Staff Name      | 
 -------------------------------------------------------------------------------------------------- 
 | 1    | 12 Nov 21 1200HRS | 1          | John Doe             | 1        | Dr Tan               | 
 | 2    | 10 Nov 21 1100HRS | 1          | John Doe             | 1        | Dr Tan               | 
 | 3    | 19 Nov 21 1400HRS | 3          | Muhd Faiz            | 2        | Dr Lee               | 
 | 4    | 01 Dec 21 0900HRS | 2          | Alice Tan            | 2        | Dr Lee               | 
 -------------------------------------------------------------------------------------------------- 

Notes:

4.4.5 Edit an appointment’s information: edit

Edit an appointment’s information. MedBot will check if the edited appointment clashes with others and display an error message if it does.

Format: edit APPOINTMENT_ID [p/PATIENT_ID] [s/STAFF_ID] [d/DATE_TIME]

At least one parameter must be provided. Only the parameters that are given will be modified.

Example: edit 1 d/121121 1200

Expected output:

The information of appointment with ID 1 has been edited to:

Appointment ID: 1
Patient ID: 1
Staff ID: 1
Date/Time: 12 Nov 21 1200HRS

4.4.6 Find appointments: find

Format: find PERSON_TYPE/PERSON_ID [FILTER_TYPE/DATE_TIME]

Example: find p/6

Example Output:

Here is a list of matched appointments:
 -------------------------------------------------------------------------------------------------- 
 |  ID  |     Date/Time     | Patient ID |     Patient Name     | Staff ID |      Staff Name        | 
 -------------------------------------------------------------------------------------------------- 
 | 6    | 04 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 10   | 04 Jan 22 1800HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 11   | 05 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 12   | 06 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 13   | 07 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 14   | 08 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 -------------------------------------------------------------------------------------------------- 

Example: find p/6 a/060122 0000

Example Output

 -------------------------------------------------------------------------------------------------- 
 |  ID  |     Date/Time     | Patient ID |     Patient Name     | Staff ID  |      Staff Name       | 
 -------------------------------------------------------------------------------------------------- 
 | 12   | 06 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 13   | 07 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 | 14   | 08 Jan 22 1300HRS | 6          | Emma                 | 2        | Doctor Two           | 
 -------------------------------------------------------------------------------------------------- 

Notes:

5. Future Implementations [coming in v3.0]

5.1 Table paging

5.2 Patient’s medical information

5.3 View appointments between specific patients and staff

5.4 Different identification numbers

5.5 Different phone number formats

5.6 Find Patient/Staff command for hidden/shown persons

6. FAQ

Q: How do I transfer my data to another computer?

A: All data will be stored in the MedBotData directory that is created in the same working directory as MedBot.jar. There are 3 text files in MedBotData - patient.txt, staff.txt and appointment.txt. Simply transfer the MedBotData directory containing the three text files to the other computer, and run the MedBot.jar in the same new location as the MedBotData directory.

7. Command Summary

7.1 General Commands

Action Format + Examples
help help [COMMAND]
eg., help add
switch switch [VIEW_TYPE]
eg., switch s
get view get view
exit exit

7.2 Patient/Medical Staff Management Commands

Action Format + Examples
add add i/PERSON_ID [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]
eg.,add i/S1231234A n/John Smith p/91234567 e/johnsmit@eg.com a/ABC Street 123
delete delete [PERSON_ID]
eg., delete 2
view view [PERSON_ID]
eg., view 3
list list [-h]
edit edit PERSON_ID [i/PATIENT_IC] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]
eg., edit 2 n/Bob Smith
find find [i/PERSON_IC] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]
eg.,find i/s1231234A
hide hide PATIENT_ID
eg., hide 1
show show PATIENT_ID
eg., show 1

7.3 Scheduler Commands

Action Format + Examples
add add p/PERSON_ID s/STAFF_ID d/DATE_TIME
E.g., add p/19 s/1 d/090222 0900
delete delete APPOINTMENT_ID
view view APPOINTMENT_ID
E.g., view 3
list list
edit edit APPOINTMENT_ID [p/PATIENT_ID] [s/STAFF_ID] [d/DATE_TIME]
E.g., edit 2 s/3 d/100322 0800
find find PERSON_TYPE/PERSON_ID [FILTER_TYPE/DATE_TIME]
E.g., find s/3 b/100322 0800