User Guide

MediTask is a desktop application designed to help nurses efficiently manage and track their daily tasks via a Command Line Interface (CLI). This CLI tool streamlines task management, allowing nurses to quickly organize, monitor, and complete tasks, ensuring no important steps are missed.

Quick Start

  1. Ensure that you have Java 17 or above installed.
  2. Down the latest version of MediTask from here.
  3. Copy the file to the folder you want to use as the home folder for your MediTask.
  4. Open a command terminal, cd into the folder you put the jar file in, and use the java -jar "CS2113-T11-1.MediTask.jar" command to run the application.
    Ui

  5. Type the command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window.
    Some example commands you can try:

    Patient-related commands:

    • add Alice /tag patient : Adds a patient named Alice to the list of patients.

    • list : Lists all patients.

    • delete 1 : Deletes the 1st patient in the list.

    • exit : Exits the app.

    Task-related commands:

    • todo Update patient records : Adds a todo task named “Update patient records” to the list of tasks.

    • list : Lists all tasks.

    • delete 1 : Deletes the 1st task in the list.

    • mark 1 : Marks the 1st task in the list as done.

    • unmark 1 : Marks the 1st task in the list as undone.

  6. Refer to the Features below for details of each command.

Features

ℹ️ Notes about the command format:

  • Extraneous parameters for commands that do not take in parameters (such as help, list and exit) will be ignored. e.g. if the command specifies help 123, it will be interpreted as help.

  • Parameters cannot be in any order. e.g. if the command specifies add Alice /tag HighPriority, /tag HighPriority add Alice is not acceptable.

  • Ensure that Patient is selected before entering any task-related commands. e.g. select 1 before adding a task or simply look above the prompt Patient: <patient_name>.

  • If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
  • Dates and Times (only in the deadline command) must follow specific formats:
    • Date Formats:
      • 1/9/2024 (d/m/yyyy)
      • 01/09/2024 (dd/mm/yyyy)
      • 1-9-2024 (d-m-yyyy)
      • 2024-09-01 (yyyy-mm-dd)
    • Time Formats:
      • 930 (hmm)
      • 0930 (hhmm)
      • 9:30 (h:mm)
      • 09:30 (hh:mm)
      • 9:30AM (h:mma)
    • Datetime Formats:
      • 1/9/2024 0930 (d/m/yyyy hhmm)
      • 01-09-2024 9:30AM (dd-mm-yyyy h:mma)
      • 2024-09-01 09:30 (yyyy-mm-dd hh:mm)
  • Supported Relative Terms (only in the deadline command):
    • You may also use relative terms like today and tomorrow, which will be automatically converted to the current date or the next day.

Viewing Help: help

Prints a list of available commands and their formats.

Patient Help Screen Task Help Screen

Format: help

Exiting the application: exit

Exits the application.

Format: exit

Main State

The main state is used to control all patient-related command.

Adding a Patient: add

Adds a patient to the hospital’s patient list.

Format: add NAME /tag TAG_NAME

Warning: A patient can have at most 1 tag.

Examples:

  • add Alice /tag HighPriority
    • Adds a patient named Alice with the tag “HighPriority.”
  • add Bob
    • Adds a patient named Bob without any tags.

Sample Outputs:

MediTask > add Alice /tag HighPriority
New patient added: Alice [HighPriority]
MediTask > add Bob
New patient added: Bob [No tag]

Deleting a Patient: delete

Removes a patient from the hospital’s patient list by their index.

Format: delete INDEX

Note:

  • The index refers to the position of the patient in the list and must be a valid, positive integer.

Examples:

  • delete 1
    • Deletes the first patient in the patient list.
  • delete 3
    • Deletes the third patient in the patient list.

Sample Output:

MediTask > delete 2
Deleted patient: Bob

Finding a Patient: find

Searches for patients in the hospital system whose names contain the specified keyword.

Format: find KEYWORD

Examples:

  • find Alice
    • Displays all patients whose names contain “Alice.”
  • find Bob
    • Displays all patients whose names contain “Bob.”

Sample Outputs:

MediTask > find Alice
Here are the matching patients in your list: 
1. Alice
MediTask > find Bob
Here are the matching patients in your list: 
1. Bob
2. Bobby

Listing All Patients: list

Displays all patients currently registered in the hospital system, along with their details and task completion rates.

Format: list

Examples:

  • list
    • Lists all patients in the hospital system.

Sample Output:

MediTask > list
────────────────────────────────────────────────────────────
0% of all tasks are completed.
Here are the patients in your list:
1. Alice  [HighPriority] [Tasks Completed: 0.00%] 
2. Bob  [No tag] [Tasks Completed: 0.00%] 
3. Bobby  [No tag] [Tasks Completed: 0.00%] 
End of your patients list!

Selecting a Patient: select

Switches the application state to TASK_STATE, enabling task management features specifically for the selected patient by their index.

Format: select INDEX

Note:

  • The index refers to the position of the patient in the list and must be a valid, positive integer.

Examples:

  • select 1
    • Selects the first patient in the patient list and enables task management features for that patient.
  • select 3
    • Selects the third patient in the patient list and enables task management features for that patient.

Sample Output:

MediTask > select 1
Selected patient: Alice [HighPriority]

Task State

The task state is used to control all task-related command. The application enters task state when user selects a patient in the patient list.

Returning to Main State: back

Returns to the MAIN_STATE from the patient-specific task management state.

Format: back

Example:

  • back
    • Returns to the main menu from the selected patient’s task management view.

Adding a to-do task: todo

Adds a new task to the list of tasks.

Format: todo TODO_NAME /tag TAG_NAME

Examples:

  • todo Check up /tag urgent
    • Add task with description “Check up” with “urgent” tag to the bottom of selected patient’s task list.

Note:

  • Patient must be selected before adding a to-do task.

Adding a deadline task: deadline

Adds a task with deadline to the list of tasks.

Format: deadline DEADLINE_NAME /by DATE_TIME /tag TAG_NAME

Examples:

  • deadline Have medicine /by 19:00 /tag urgent
    • Add task with description “Have medicine” with “urgent” tag and deadline at 19:00 of the same day to the bottom of selected patient’s task list.

Note:

  • Patient must be selected before adding a deadline task.
  • Ensure that the date and time follow the accepted formats, Refer to the Notes about the command format for valid date and time formats.

Adding a recurring task: repeat

Adds a task with reminder to repeat it to the list of tasks.

Format: repeat TODO_NAME /every RECUR_BASIS /tag TAG_NAME

Examples:

  • repeat Drink supplements /every day /tag important
    • Add task with description “Drink supplements” with “important” tag and a reminder “repeat: every day” to the bottom of selected patient’s task list.

Note:

  • Patient must be selected before adding a repeat task.
  • Relative terms are not supported here.

Deleting a task: delete

Removes a task from the selected patient’s list by their index.

Format: delete INDEX

Note:

  • The index refers to the position of the task in the list and must be a valid, positive integer.

Examples:

  • delete 1
    • Deletes the first task in the list.

Finding a task: find

Finds an existing task in the list of task.

Format: find KEYWORD

Examples:

  • find Drink
    • Displays all tasks with description contains “Drink” in the selected patient’s list.

Marking a task: mark

Checking the task as done by their index. This action will update the tasks’ completion rate.

Format: mark INDEX

Note:

  • The index refers to the position of the task in the list and must be a valid, positive integer.

Examples:

  • mark 1
    • Mark the first task in the list as done.

Unmarking a task: unmark

Checking the task as undone by their index. This action will update the tasks’ completion rate.

Format: unmark INDEX

Note:

  • The index refers to the position of the task in the list and must be a valid, positive integer.

Examples:

  • unmark 1
    • Mark the first task in the list as undone.

Saving data

MediTask data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

Editing the data file

MediTask data is saved as a JSON file [JAR file location]/data/hospital_data.json. Advanced users are welcome to update data directly by editing that data file.

⚠️ Caution: If your changes to the data file makes its format invalid, MediTask will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it

Furthermore, certain edits can cause the MediTask to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range or data entered is a duplicate, etc.). Therefore, edit the data file only if you are confident that you can update it correctly.

FAQ

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

A: Install the MediTask app on the other computer and overwrite the empty data file it creates with the file that contains the data of your previous MediTask home folder.

Command Summary

ActionFormat, Examples
Addadd PATIENT_NAME /tag TAG_NAME
e.g., add John Doe /tag VIP
Selectselect INDEX
e.g., select 1
Backback
Listlist
- In main state: Lists all patients, showing overall task completion rates.
- In task state: Lists all tasks for the selected patient, showing each task’s completion status.
Deletedelete INDEX
- In main state: Deletes the patient at the specified index.
- In task state: Deletes the task at the specified index for the selected patient.
e.g., delete 2
Todotodo TODO_NAME /tag TAG_NAME
e.g., todo Check vitals /tag Urgent
Deadlinedeadline DEADLINE_NAME /by DATE_TIME /tag TAG_NAME
e.g., deadline Administer medication /by 15/09/2024 23:59 /tag Medication
Repeatrepeat TASK_NAME /every INTERVAL /tag TAG_NAME
e.g., repeat Check blood pressure /every daily /tag Routine
Findfind KEYWORD
e.g., find John
Markmark INDEX
e.g., mark 1
Unmarkunmark INDEX
e.g., unmark 1
Helphelp
Exitexit