User Guide

DocTrack is a desktop application for general practitioners (GPs) to quickly access patient contact details, appointments, and treatment records.


DocTrack aims to be the bridge for general practitioners in smaller clinics towards the digitalisation of their administrative efforts, with a focus on contact management and visit history tracking.


We plan to help you simplify and speed-up the administrative burden of patient management through an intuitive and efficient application.

With DocTrack, you can take the first step towards digitalisation of your practice! DocTrack can assist you in streamlining your patient and appointment tracking process, by allowing you to ...

  • easily add and update patient and appointment records,
  • delete records for regulation purposes, and
  • search for records based on important criteria such as dates and names

... all with an intuitive and user-friendly interface!


To get started, you can read the introduction below, which shows all the different sections in this user guide.




Introduction

Quick Start

Quickly get started with DocTrack!

Click on this section for a quick set-up guide, with examples of commands that you can use, out of the box.

Interacting with DocTrack

Learn how you can interact with DocTrack!

DocTrack functions through a set of commands. Click on this section to learn more.

Command Overview

Click on this section to know more about the commands you can use in DocTrack. For more specifics, click on the subsections below.

Person commands Click on this section for a rough summary of all the commands related to persons.

Appointment commands Click on this section for a rough summary of all the commands related to appointments.

General commands Click on this section for a rough summary of all the general commands.

FAQs

Have questions? Read here to see answer to commonly asked questions.

Known issues

Having a problem? Read here to see some common issues that may arise while you are using DocTrack.




Quick start

  1. Ensure you have Java 17 or above installed in your computer.

  1. You can download our latest release file from here. It is a .jar file. For more information, you can refer to:

  1. Copy the file to the folder you want to use as the home folder for your DocTrack application.
    • The DocTrack application will create a data folder in this home folder to store your data files.

  1. Open a command terminal of your preference, and run the commands:
    cd HOME_FOLDER
    java -jar DocTrack.jar
    
    Example: if you copied DocTrack.jar into the folder C:/Users/user/Documents, run the commands:
    cd C:/Users/user/Documents
    java -jar DocTrack.jar
    

  1. A GUI similar to the one below should appear in a few seconds. Note how the DocTrack application contains some sample data.
    Ui

  1. Type the command in the command box, which is indicated by Enter command here.... Press Enter to execute it.
    Example: Typing help and pressing Enter will open the help window.

    Some other examples of commands you can enter:

    • list person : Lists all contacts.
    • add person n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 st/recovering : Adds a contact named John Doe to the Address Book.
    • delete person 3 : Deletes the 3rd contact shown in the current list.
    • clear person : Deletes all contacts.
    • exit : Exits the app.

Tip:

This would be a good time to run the clear person command, to start afresh without sample data.


  1. You can refer to the Command Overview below for details of each command.



Interacting with DocTrack

All interactions with the DocTrack platform are done through a series of commands (explained in Command Overview) entered by you.

  • These commands allow you to perform various tasks, such as adding, editing, listing, deleting, finding, and clearing persons/appointments.
  • The commands are designed to be flexible and user-friendly.

Here are some key points to keep in mind when you are using the commands:

  • Appointments are sorted by date. Patients are sorted in chronological order.

  • You should supply all the fields (words in UPPER_CASE) that are needed for a command.
    Example: In add person n/NAME, NAME is a field which can be used as add person n/John Doe.

  • The INDEX in command formats like edit person INDEX and delete appt INDEX refers to the index number (shown beside the person or appointment) in the displayed list. The index must be a positive integer i.e. 1, 2, 3...
    Example: The index of the first person displayed at the top the list is 1, the index of the second person displayed is 2, and so on.

  • Items in square brackets [] are optional.
    Example: n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with …​ after them can be used zero times or more times.
    Example:[t/TAG]…​ can be used as (i.e. 0 times), t/friend, t/friend t/family etc.

  • You can add fields in any order.
    Example: If the command specifies n/NAME p/PHONE_NUMBER, then p/PHONE_NUMBER n/NAME is also acceptable.

Tip:

If you add extraneous fields for commands that do not take in fields (such as help, list person, list appt, exit and clear), they will be ignored.
Example: If the command specifies help 123, then it will be interpreted as help.

Caution:

If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines. This is because some space characters surrounding line-breaks may be omitted when copied over.




Command Overview

The following sections describe the various commands you can use in the DocTrack application.


Person commands ⬅ Click on this section to know more about the commands you can use to manage the list of persons. You can also click on the individual commands below for information specific to these commands.

Action Format Examples
Add person add person n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS st/STATUS [t/TAG]…​ add person n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 st/recovering t/friend
List all persons list person
list person
Edit person edit person INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [st/STATUS] [t/TAG]…​ edit person 2 n/James Lee e/jameslee@example.com
Find person find person KEYWORD [MORE_KEYWORDS] find person n/James Jake
Delete person delete person INDEX delete person 3
Clear all persons clear person clear person


Appointment commands ⬅ Click on this section to know more about the commands you can use to manage the appointments. You can also click on the individual commands below for information specific to these commands.

Action Format Examples
Add appointment add appt i/PERSON_ID d/DATE_TIME ty/APPOINTMENT_TYPE [s/SICKNESS] [m/MEDICINE]

add appt i/1 d/2024-12-01 09:30 ty/Consulation s/Diabetes m/Insulin
List all appointments list appt list appt
Edit appointment edit appt INDEX [i/PERSON_ID] [d/DATE_TIME] [ty/APPOINTMENT_TYPE] [s/SICKNESS] [m/MEDICINE] edit appt 3 d/2024-12-05 13:00 m/Panadol
Find appointment find appt KEYWORD [MORE_KEYWORDS] find appt d/2024-12-05
Delete appointment delete appt INDEX delete appt 2
Clear all appointments clear appt
clear appt


General commands ⬅ Click on this section to know more about the general commands. You can also click on the individual commands below for information specific to these commands.

Action Format Examples
Help help help
Exit exit exit


Person Commands

A person is a patient with several fields. The fields and their corresponding prefixes are as follows:

Field Prefix Optional Multiple Acceptable Inputs
Name n/ No No Only alphanumeric characters (Cannot start with space)
Phone number p/ No No Positive integer of length 3-15 (Inclusive)
Email e/ No No Refer to 1. below
Address a/ No No Any value
Status st/ No No Only alphanumeric characters
Tag(s) t/ Yes Yes Only alphanumeric characters

Notes:

1. The email must have

  • a local part containing alphanumeric characters and specific symbols (such as + _ . -) (not at the start or end),
  • followed by @, and a domain part with labels separated by periods,
  • ending in a label with at least two alphanumeric characters,
  • and no labels starting or ending with hyphens.

You can identify these patients uniquely by their patient ID (PID) for easy reference. The PID can be seen in the top right corner of their information card, as shown below:



You can also manage the patient information through different commands, which can be seen in the table below:

Action Format Examples
Add person add person n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS st/STATUS [t/TAG]…​ add person n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 st/recovering t/friend
List all persons list person
list person
Edit person edit person INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [st/STATUS] [t/TAG]…​ edit person 2 n/James Lee e/jameslee@example.com
Find person find person KEYWORD [MORE_KEYWORDS] find person n/James Jake
Delete person delete person INDEX delete person 3
Clear all persons clear person clear person

Adding a person: add person

You can add a person to the patient book.

Format: add person n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS st/STATUS [t/TAG]…​

Tip: A person can have any number of tags (including 0).
Example: t/friend t/likes coding has 2 tags and it is valid.

Examples:

  • add person n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 st/recovering adds a person named John Doe with phone number 98765432, email johnd@example.com, and address John street, block 123, #01-01, and status recovering.
  • add person n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 st/recovered t/criminal adds a person named Betsy Crowe with email betsycrowe@example.com, address Newgate Prison, phone number 1234567, status recovered, and the tags friend and criminal.

Note: Ensure that you enter a unique name (case-insensitive) and phone number for the person you are adding. Else, it will be detected as a duplicate, and an error message will be shown.



Listing all persons : list person

You can view a list of all persons in the patient book.

Format: list person shows the list of all patients on the screen.



Editing a person : edit person

Edits an existing patient in DocTrack.

Format: edit person INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [st/STATUS] [t/TAG]…​

  • Edits the patient at the specified INDEX.
  • At least one of the optional fields must be provided.
  • Existing values will be updated to the input values.
  • When editing tags, the existing tags of the person will be removed i.e. adding of tags is not cumulative.
  • You can remove all the person’s tags by typing t/ without specifying any tags after it.

Tip: When trying to add tags while keeping existing tags, remember to type in all the pre-existing tags with your new tags.

Examples:

  • list person followed by edit person 1 p/91234567 e/johndoe@example.com edits the phone number and email address of the first person in the list to be 91234567 and johndoe@example.com respectively.
  • list person followed by edit person 2 n/Betsy Crower t/ edits the name of the second person in the list to be Betsy Crower and clears all existing tags.

Note: When editing the name of a person, the person's appointments will not reflect the name change until a reload of the application.



Finding persons by name: find person

You can find person(s) whose names contain any of the given keywords.

Format: find person KEYWORD [MORE_KEYWORDS]

  • Use the prefix n/ to search for names.
  • The search is case-insensitive. e.g. hans will match Hans
  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans
  • Only the name is searched.
  • Only full words will be matched e.g. Han will not match Hans
  • Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find person n/John returns john and John Doe
  • find person n/alex david returns Alex Yeoh, David Li

    result for 'find person alex david'


Deleting a person : delete person

You can delete a specified person from the patient book.

Format: delete person INDEX

  • Deletes the person at the specified INDEX.

Tip: Make sure you have the correct index of the patient before deleting. Use list person to check.

Examples:

  • list person followed by delete person 2 deletes the second person in the list.
  • find Betsy followed by delete person 1 deletes the first person in the results of the find command.

Warning: This action is irreversible. Ensure you have selected the correct person before deleting. Note that deleting a person will also delete all related appointments.



Clearing all persons : clear person

You can delete all person entries from the patient book.

Format: clear person

Warning: This action is irreversible. Ensure you have a backup of the patient data before clearing. Note that this will also clear the appointment data.





Appointment Commands

An appointment is defined by several fields. The fields and their corresponding prefixes are as follows:

Field Prefix Optional Multiple Acceptable Inputs
Person ID i/ No No Existing person ID
Appointment Type ty/ No No Any value
Date and Time d/ No No yyyy-MM-dd HH:mm. Refer to 1. below
Sickness s/ Yes No At least one alphabetic character
Medicine m/ Yes No At least one alphabetic character

You can identify these appointments uniquely by their Appointment ID (AID) for easy reference. The AID can be seen in the top right corner of their information card, as shown below:

  • The number indicated beside the appointment name is the PID of the person who has the appointment.

You can manage the appointments through different commands, which can be seen in the table below:

Notes:

1. Acceptable inputs for Date and Time:

  • The time is in 24-hour format, i.e. HH:mm should be between 00:00 and 23:59.
  • The date and time inputs are resolved "smartly" - meaning that certain incorrect dates will be allowed.
    Example:2025-02-29 12:00 will be parsed as 2025-02-28 12:00.

Action Format Examples
Add appointment add appt i/PERSON_ID d/DATE_TIME ty/APPOINTMENT_TYPE [s/SICKNESS] [m/MEDICINE]

add appt i/1 d/2024-12-01 09:30 ty/Consulation s/Diabetes m/Insulin
List all appointments list appt list appt
Edit appointment edit appt INDEX [i/PERSON_ID] [d/DATE_TIME] [ty/APPOINTMENT_TYPE] [s/SICKNESS] [m/MEDICINE] edit appt 3 d/2024-12-05 13:00 m/Panadol
Find appointment find appt KEYWORD [MORE_KEYWORDS] find appt d/2024-12-05
Delete appointment delete appt INDEX delete appt 2
Clear all appointments clear appt
clear appt

Adding an appointment: add appt

You can add an appointment to DocTrack.

Format: add appt i/PERSON_ID ty/APPOINTMENT_TYPE d/DATE_TIME [s/SICKNESS] [m/MEDICINE]

Tip: You can decide to leave out sickness and medicine inputs when adding them, then edit them later.

Examples:

  • add appt i/1 ty/Consulation d/2024-12-01 09:30 s/Diabetes m/Insulin adds an appointment to the person with personId 1. The appointment has appointment type Consulation, date and time 2024-12-01 09:30, sickness Diabetes, and medicine Insulin.
  • add appt i/2 ty/Follow-up d/2024-02-01 16:40 s/Asthma m/Inhaler adds an appointment to the person with personId 2. The appointment has appointment type Follow-up, date and time 2024-02-01 16:40, sickness Asthma, and medicine Inhaler.

Note: Although you type DATE_TIME in the format yyyy-MM-dd HH:mm, you will see it displayed as Month Date, Year, Time.
Example: You will see 2024-12-10 14:30 displayed as December 10, 2024, 2:30 PM.

Note: Ensure that you enter a unique person, date and time, and appointment type for the appointment you are adding. Else, it will be detected as a duplicate, and an error message will be shown.



Listing all appointments : list appt

You can view a list of all appointments in the appointment book.

Format: list appt



Editing an appointment : edit appt

You can an existing appointment in appointment book.

Format: edit appt INDEX [i/PERSON_ID] [d/DATE_TIME] [ty/APPOINTMENT_TYPE] [s/SICKNESS] [m/MEDICINE]

  • Edits the appointment at the specified INDEX.
  • At least one of the optional fields must be provided.
  • Existing values will be updated to the input values.
  • The format of DATE_TIME is yyyy-MM-dd HH:mm. For example, 2025-03-20 10:30.

Examples:

  • edit appt 3 d/2024-12-05 13:00 m/Budesonide edits the date and time and the medicine to be 2024-12-05 13:00 and Budesonide respectively.


Finding appointments by name and date: find appt

You can find appointments whose person names and / or dates contain any of the given keywords.

Format: find appt KEYWORD [MORE_KEYWORDS]

  • Use the prefix n/ to search for patient names.
  • Use the prefix d/ to search for dates.
  • At least one keyword must be provided.
  • The format of DATE is YYYY-MM-DD. For example, 2024-10-16.

Tip: Use the find appt command to filter out appointments for a certain day or patient.

Examples:

  • find appt n/John returns appointments with patients named John.
  • find appt d/2024-12-05 returns appointments on 2024-12-05.
  • find appt n/John d/2024-12-05 returns appointments with patients named John, and is on 2024-12-05.

    result for 'find appt John and 2024-12-05'


Deleting an appointment : delete appt

You can delete a specified appointment from appointment book.

Format: delete appt INDEX

  • Deletes the appointment at the specified INDEX.

Tip: Use the list appt to check the index of the appointment before deleting one.

Examples:

  • list appt followed by delete appt 2 deletes the second appointment in the list of appointments.
  • find appt d/2024-12-05 followed by delete appt 1 deletes the first appointment in the results of the find command.

Warning: This action is irreversible. Ensure you have selected the correct appointment before deleting.



Clearing all appointments : clear appt

You can delete all appointment entries from the appointment book.

Format: clear appt

Warning: This action is irreversible. Ensure you have a backup of the appointment data before clearing.





General Commands

General commands can help you with miscellaneous tasks related to patient and appointment management.

Action Format Examples
Help help help
Exit exit exit

Viewing help : help

You will be able to view a help window that directs you to this user guide.

Format: help

Help Message



Exiting the program : exit

You will be able to exit the DocTrack application.

Format: exit



Saving the data

The data of the patients and appointments are saved in the hard disk automatically after you run any command that changes the data. You do not need to save them manually.

  • For more information on how the data is stored, you can refer to FAQs.

Editing the data file

For advanced users, feel free to update patient and appointment data directly by editing the data files in the data folder. Learn more here: FAQs.

Caution:

  • If your changes to the data file makes its format invalid, DocTrack will discard all data and start with an empty data file at the next run. Hence, it is recommended that you have a backup of the file before editing it.
  • Furthermore, certain edits can cause DocTrack to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, you should edit the data file only if you are confident that you can update it correctly.



FAQ

Q: How is my data stored?
A: Your data is stored in .json files, located in the data folder. The details of the persons are stored in the addressbook.json file, while the appointments are stored in the appointmentbook.json file.

Examples:

An example of how the persons are stored in the addressbook.json file:

{
  "persons": [
    {
      "personId": 0,
      "name": "Alex Yeoh",
      "phone": "87438807",
      "email": "alexyeoh@example.com",
      "address": "Blk 30 Geylang Street 29, #06-40",
      "status": "Recovering",
      "tags": [
        "friends"
      ]
    },
    {
      "personId": 1,
      "name": "Bernice Yu",
      "phone": "99272758",
      "email": "berniceyu@example.com",
      "address": "Blk 30 Lorong 3 Serangoon Gardens, #07-18",
      "status": "Stable",
      "tags": [
        "colleagues",
        "friends"
      ]
    }
  ]
}

An example of how the appointments are stored in the appointmentbook.json file:

{
  "appointments": [
    {
      "appointmentId": 0,
      "appointmentType": "Consultation",
      "appointmentDateTime": "2024-10-20T09:30",
      "personId": 0,
      "sickness": "Flu",
      "medicine": "Antiviral"
    },
    {
      "appointmentId": 1,
      "appointmentType": "Follow-up",
      "appointmentDateTime": "2024-10-22T14:00",
      "personId": 1,
      "sickness": "Diabetes",
      "medicine": "Insulin"
    }
  ]
}



Q: How do I transfer my data (in the addressbook.json and appointmentbook.json files) to another computer?
A:

  1. Save the addressbook.json and appointmentbook.json files from the data folder in your current computer.
  2. Install the DocTrack app in the other computer.
  3. When you run DocTrack, it creates empty .json files in the data folder.
  4. Replace these empty files with the addressbook.json and appointmentbook.json files you saved from your previous computer.

Q: Can I access DocTrack without internet connection?
A: Yes, you can run DocTrack without an internet connection.


Q: How do I back up my data?
A: Since the data is saved in the addressbook.json and appointmentbook.json files in the data folder, you can copy these files to another location as a backup.


Q: How many patients and appointments does DocTrack support?
A: DocTrack technically supports up to 4 billion total historical patients and appointments. However, depending on your system, it might lag with larger numbers of patients and appointments. We recommend that you do not exceed 10,000 total patients and appointments.





Known issues

  1. When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the preferences.json file created by the application before running the application again.

  1. If you minimize the Help Window and then run the help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.

  1. On MacOS systems, the bold fonts may appear slightly clipped.

  1. Editing the name in the edit person command will not reflect the name change in the appointments until a reload of the application.