Your solution to streamlining patient contact management.
Greetings to esteemed General Practitioners (GPs)! Are you still grappling with traditional methods to manage patient details and take patients' histories? Are you overwhelmed by the challenge of organizing all your clinic's patient data?
Fret not! ClinicMate is your solution.
ClinicMate is tailor-made to streamline contact management in your clinic. Whether you're a seasoned practitioner or just starting out, ClinicMate is your indispensable companion.
This comprehensive user guide will effortlessly navigate you through ClinicMate's array of features, ensuring optimal efficiency in managing patient contacts.
Here is a quick overview of how ClinicMate streamlines contact management:
Navigation and Assistance Functions: Reset the interface using clear, access comprehensive guidance through help, and exit ClinicMate with ease.
Data Management Functions: Easily input, modify, and remove patient details through add, edit and delete. View a detailed and comprehensive list of patient information effortlessly with list and show command. Effortlessly search for specific patient records with find.
Note-Taking Function: Use addnote to quickly append relevant notes to patient records for future reference.
ClinicMate is a desktop application featuring a Command Line Interface (CLI) with the convenience of a Graphical User Interface (GUI). Whether you're adept at typing or prefer a visual interface, ClinicMate ensures swift and efficient management of patient contacts.
Bid farewell to cumbersome paperwork and embrace the efficiency of ClinicMate in organizing your clinic's patient data.
Welcome to the comprehensive user guide for ClinicMate! Our goal is to provide you with the knowledge and tools necessary to make the most of ClinicMate, your essential tool for clinic management. Whether you're a beginner or an experienced user, we're here to support you every step of the way.
Before we dive into the details, let's acquaint ourselves with the annotations you'll encounter throughout this user guide. These annotations will help you understand and navigate ClinicMate's features smoothly.
lightbulb Useful Tip:
edit Note:
warning Warning:
Throughout this guide, you'll also encounter various text styles. Here's what they represent:
Highlights specific elements such as file names, commands, or any text that should be treated as code.Provides information about the parameters that you can input into a command.
Now that you're familiar with the annotations and text styles, we will give you a tour on how to navigate this user guide based on your level of expertise.
Thank you for choosing ClinicMate for your patient management needs! We're excited to help you jump right in.
Welcome back! We're thrilled to have you with us again.
If you have more questions, do check out the FAQ section to see if there are answers to your queries.
↑ Back to Top ↑ Back to Table of Contents
In this section, you will learn how to set up ClinicMate on your computer.
java -version to check if you have Java 11 or above installed in your computer.If you are running Windows, this is what you should see after running the command.
If you are running MacOS, this is what you should see after running the command.
clinicmate.jar file hereclinicmate in your Documents folder.clinicmate.jar file to that folder named clinicmate in your Documents folder.cd command into the folder you put the jar file in.
cd is the command to change directory.cd Documents/clinicmatejava -jar clinicmate.jar command to run the application.
warning Warning:
java -jar clinicmate.jar, that means you have an existing data file which needs to be removed.data is newly created. This folder contains the data file for ClinicMate.java -jar clinicmate.jar command.

↑ Back to Top ↑ Back to Table of Contents
ClinicMate features a Graphical User Interface (GUI) that provides a seamless user experience. The GUI is designed to be intuitive and user-friendly, allowing you to navigate through the application effortlessly.
The GUI consists of the following components:

| Number | Component | Description |
|---|---|---|
| 1 | Command Box | Enter commands here to interact with ClinicMate. |
| 2 | Message Box | Displays the output of commands executed in the Command Box. |
| 3 | Patient List Panel | Displays the list of patients in ClinicMate. |
| 4 | Patient Notes Panel | Displays the notes of the patient that you are viewing. |
lightbulb Useful Tip:
Now that you have been introduced to the GUI components, let's proceed to learn how you can use the CLI to interact with ClinicMate.
Experience the seamless power of ClinicMate's Command Line Interface (CLI) - where interaction is as simple as typing commands. Say goodbye to juggling between typing and clicking, and welcome the streamlined efficiency of CLI!
CLI is straightforward to use. The Command Box acts as your entry point for commands. Once you hit enter, ClinicMate processes your input and delivers responses through the Message Box. It's all about interacting with ClinicMate effortlessly through text.
Ready to dive in? Let's explore writing command lines and get you started with ClinicMate!
To use our CLI, here is an overview of the command formats.
| Component | Example | Description |
|---|---|---|
| Command | add | Represents the action that you want to perform. |
| Parameter | Mary | Represents a value that replaces the UPPER_CASE placeholders in the command format. |
| Prefix | n\ | Represents the type of parameter to be edited. |
| Flag | -replace | Represents an additional parameter that modifies the command's behavior. Must be used at the end of the command. |
You can find all the parameters used in ClinicMate here. To learn more about the prefixes and command words used in ClinicMate, you can refer to the Command Summary Section.
Let's see how these components are used in a command!
addnoteYou can substitute specific parameter values into the parameters in the command format. For instance, in the addnote command, you can replace IC_NUMBER with the patient's IC number and NOTE with the note you want to add.
But what about the [] around -replace? Here's more about it:
| Symbol | Description | Example | Meaning |
|---|---|---|---|
[] | Indicates that something is optional | [-replace] | The -replace flag is optional and can be included or excluded in the command. |
| None | Indicates a mandatory prefix and/or parameter | n\NOTE | The n\NOTE is mandatory and must be included in the command. |
↑ Back to Top ↑ Back to Table of Contents
If this is your first time using ClinicMate, welcome! We know that patient management can be tedious and cumbersome, and learning a new tool might seem like a daunting task. But fret not! ClinicMate is designed to be user-friendly and intuitive so that you can start streamlining your patient management right away.
This tour will guide you through the key features of ClinicMate, giving you a quick overview of how to use the application effectively, especially the more commonly used commands. You'll learn how to:
Make sure you've set up ClinicMate on your computer by following the Quick Start guide, if you haven't already. Once you're ready, let's dive in!
Adding a patient is a fundamental feature of ClinicMate for tracking patient details. Let's say you have a new patient with the following particulars:
For new patients, the first step always involves registration. Similarly, let's add James Tan to ClinicMate!
Steps:
add n\James Tan p\92223344 e\james.tan@mail.com i\S1234567A ag\35 s\M a\Block 11, #07-07, Jurong West Ave 6 into the Command Box and hit enter.Congratulations! You've successfully added James Tan to ClinicMate. Go ahead and try adding more patients of your own to practice!
If you wish to learn more about the add command, you can refer to this.
Many walk-in patients tend to be regulars at the clinic. ClinicMate is optimized to retrieve patient details quickly and easily. All you need is their IC number!
Steps:
find S1234567A into the Command Box and hit enter.Go ahead and try viewing the details of other patients using the find command!
If you wish to learn more about the find command, you can refer to this.
A big part of a GP consultation is taking patient history. ClinicMate allows you to add notes for patients based on their IC number.
Steps:
addnote S1234567A n\Polyuria & polydipsia. DM? into the Command Box and hit enter.addnote lets you quickly append this information by simply typing addnote S1234567A n\Fam his of DM. into the Command Box and hit enter.Notice that the notes are appended without replacing what was originally there, so you can quickly add all notes you find important without worry!
If you wish to replace the notes, or find out more about the addnote command, you can refer to this.
Suppose James Tan informs you that he is moving house, and will no longer be visiting your clinic. ClinicMate lets you remove his details from the database with ease.
Steps:
delete S1234567A into the Command Box and hit enter.list to see your whole patient list panel. James Tan details will be removed from the patient list panel. There is no change to the patient notes panel.Go ahead and try deleting some of the sample patients from ClinicMate.
If you wish to find out more about the delete command, you can refer to this.
You've now reached the end of the Quick Tour. Congratulations!
To remove the sample data, you can use the clear command followed by the show command to reset the patient list and notes panels.
Find out more about the clear and show commands here and here respectively.
There are more features in ClinicMate that you can explore. If you're interested, you can refer to the Existing Features section for a detailed guide on each feature. Also check out the FAQ section for answers to common queries!
↑ Back to Top ↑ Back to Table of Contents
This section gives you a step-by-step guide on how to use ClinicMate's features. The 3 categories of ClinicMate's features are as follows:
Navigation and Assistance Functions: clear, help, exit
Data Management Functions: add, edit, delete, show, find, list
Note-Taking Function: addnote
edit Note:
Words in UPPER_CASE are the parameters to be supplied by the user.
e.g. in add n\NAME, NAME is a parameter which can be used as add n\John Doe.
Parameters that have a slash prefix (1 or more letters followed by a \) can be in any order.
e.g. if the command specifies n\NAME i\IC_NUMBER, i\IC_NUMBER n\NAME is also acceptable.
Parameters that have no prefix must follow the specified order.
e.g. if the command specifies IC_NUMBER n\NAME i\IC_NUMBER, IC_NUMBER must come before any of the parameters with a prefix.
Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
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.
Navigation and Assistance Functions in ClinicMate serve to enhance user experience and streamline workflows within the clinic management software.
helpEncountering a roadblock in ClinicMate? No problem! Simply utilize the help command for immediate assistance and guidance.
Format: help
Steps:
help into the command box. A help window should pop up.↑ Back to Top ↑ Back to Table of Contents
clearTransitioning to a new clinic? Easily clear existing data from ClinicMate with a simple clear command!
Format: clear
Steps:
clear into the command box. The patient list panel containing all the entries will then be cleared.warning Warning:
clear is a one-time deletion of all of your entries in ClinicMate. Please use it with consideration and care. You will not be able to retrieve any information back once the command has been executed.
↑ Back to Top ↑ Back to Table of Contents
exitConcluding your session? Simply use the exit command to gracefully exit the program and conclude your session.
Format: exit
Steps:
exit into the command box. You will then be directed out of ClinicMate.edit Note:
Don't worry about losing your data when exiting. They will be automatically saved!
↑ Back to Top ↑ Back to Table of Contents
Data Management Functions in ClinicMate serve to simplify the process of adding, editing and deleting patient's information. It also enables you to view a comprehensive list of patient information and effortlessly search for specific patient records.
addRegistering a new patient? No worries! Our add command simplifies the process of adding their details to ClinicMate.
Format: add n\NAME p\PHONE e\EMAIL i\IC_NUMBER ag\AGE s\SEX a\ADDRESS
Steps:
add n\NAME p\PHONE e\EMAIL i\IC_NUMBER ag\AGE s\SEX a\ADDRESS into the command box.n\NAME p\PHONE e\EMAIL i\IC_NUMBER ag\AGE s\SEX a\ADDRESS is added.edit Note:
Example:
add n\John Doe p\88888888 e\johndoe@mail.com i\T0123456A ag\12 s\M a\John street, block 123, #01-01What a successful add command looks like:

lightbulb Useful Tip:
A person can have a note included (See addnote command).
Possible Error that you might encounter:
You might encounter error messages due to the lack of familiarity with the application. There is no need to panic as our error messages will tell you how you can solve them!
An example is shown below:

↑ Back to Top ↑ Back to Table of Contents
listLooking for a comprehensive overview of your patient entries in ClinicMate? Utilize the list command for quick access to all your patient records.
Format: list
Steps:
list into the command box. All of your patient details will then be displayed.↑ Back to Top ↑ Back to Table of Contents
findToday, your regular patient arrives at the clinic, and you need to retrieve her record. However, with a multitude of contacts, locating hers seems daunting. Fear not! Utilize the find command to swiftly pinpoint the specific patient you're searching for using their IC_NUMBER.
lightbulb Useful Tip:
ClinicMate will display their contact information on the patient list panel and their full notes on the patient notes panel, for a more comprehensive view.
Format: find IC_NUMBER
Steps:
find IC_NUMBER into the command box.IC_NUMBER will be retrieved, with his/her notes shown in the patient notes panel.edit Note:
IC_NUMBER.IC_NUMBER refers to the IC number shown in the displayed patient list panel.IC_NUMBER must be the FULL IC NUMBER.t0123456a will match T0123456A.T0123456A will not match T0123A.Example:
find T0123456A returns John Doe.What successful find commands look like:
What this means: There is a person matching the IC_NUMBER in the patient list panel in ClinicMate.
What this means: There is no one matching the IC_NUMBER in the patient list panel in ClinicMate.
Possible Error that you might encounter:
There might be cases that the IC_NUMBER you keyed in is invalid as shown below. Do check if the IC_NUMBER is in the correct format.

↑ Back to Top ↑ Back to Table of Contents
showNeed to view the notes of another patient by adjusting the display on the patient notes panel? Or perhaps you want to clear the current display altogether? Enter the show command for effortless management of note displays.
General Format: show [IC_NUMBER]
Format: show IC_NUMBER
Steps:
show IC_NUMBER into the command box as shown below.IC_NUMBER.edit Note:
IC_NUMBER follows the parameter constraints here.IC_NUMBER in the patient notes panel.Example:
show T0123456A updates the patient notes panel to show John Doe's note.Possible Error that you might encounter:
There might be cases that the IC_NUMBER you keyed in does not exist in ClinicMate as shown below. Do check if the IC_NUMBER is registered before trying to show it.
Alternatively, you can add the patient into ClinicMate using our add command before doing a show.
Format: show
Steps:
show into the command box as shown below.edit Note:
Example:
show clears any note that was being displayed in the patient notes panel.↑ Back to Top ↑ Back to Table of Contents
editMade a typo? Don't worry! The edit command is here to assist you in correcting any mistakes effortlessly using the patients' IC_NUMBER.
Format: edit IC_NUMBER [n\NAME] [p\PHONE] [e\EMAIL] [i\IC_NUMBER] [ag\AGE] [s\SEX] [a\ADDRESS]
lightbulb Useful Tip:
Remember that optional fields are indicated by square brackets []!
Steps:
edit IC_NUMBER [n\NAME] [p\PHONE] [e\EMAIL] [i\IC_NUMBER] [ag\AGE] [s\SEX] [a\ADDRESS] into the command box.IC_NUMBER will be edited.edit Note:
IC_NUMBER.n\, p\, e\, i\, ag\, s\, a\.Examples:
edit T0123456A p\88888888 edits the phone number of the person with IC_NUMBER of T0123456A to 88888888.What a successful edit message looks like:
Possible Error that you might encounter:
At least one edit field is needed for this command! Do check if you have included a field in your input.

↑ Back to Top ↑ Back to Table of Contents
deleteThe delete command enables the removal of patient records from ClinicMate. Use it to efficiently manage patient data by removing outdated or unnecessary entries.
Format: delete IC_NUMBER
Steps:
delete IC_NUMBER into the command box.IC_NUMBER will be deleted.edit Note:
IC_NUMBER.IC_NUMBER refers to the IC number shown in the displayed patient list panel.IC_NUMBER must be the FULL IC NUMBER.t0123456a will match T0123456A.T0123456A will not match T0123A.Examples:
delete T0123456A deletes John Doe who has IC number T0123456A from ClinicMate.Possible Error that you might encounter:
There might be cases that the IC_NUMBER you keyed in does not exist in ClinicMate as shown below. Do check if the IC_NUMBER is registered before trying to delete it.

warning Warning:
IC_NUMBER tends to be long. Please make sure that the IC_NUMBER you want to delete is correct as we would not be able to recover lost patient information once deleted.
This feature is tailored specifically for GPs, offering seamless note-taking capabilities to enhance efficiency and precision in history taking.
addnoteAs GPs, it's essential to take accurate and detailed patient history. Simplify this process with the addnote command, ensuring efficient and accurate record-keeping.
General Format: addnote IC_NUMBER n\NOTE [-replace]
Format: addnote IC_NUMBER n\NOTE
Steps:
addnote IC_NUMBER n\NOTE into the command box.IC_NUMBER.edit Note:
IC_NUMBER refers to the IC number shown in the displayed patient list panel.IC_NUMBER must be the FULL IC NUMBER.Format: addnote IC_NUMBER n\NOTE -replace
Steps:
addnote IC_NUMBER n\NOTE -replace into the command box.IC_NUMBER will be replaced with the new note.edit Note:
IC_NUMBER refers to the IC number shown in the displayed patient list panel.IC_NUMBER must be the FULL IC NUMBER.addnote command will appear as separate lines.-replace flag is used to replace the current note with the new note.
-replace flag will be ignored. For example, -replacefdshareh will be interpreted as -replace.Examples:
addnote T0123456A n\Patient has diabetes adds a note Patient has diabetes to the person with the IC number T0123456A in ClinicMate.addnote T0123456A n\Patient has diabetes -replace replaces the note of the person with the IC number T0123456A to Patient has diabetes.⚠️ Warning:
n\ in the command might cause undefined behaviour. Please avoid having n\ in the note body.lightbulb Useful Tip:
Users will be able to see specific patient notes on the patient notes panel using the show command. (See show command)
An alternative to check if the note is updated correctly, use the find command. (See find command)
On the patient list panel, the list will be filtered to that specific patient; On the patient notes panel, the updated notes of the specific patient will be shown.
If you'd like to add empty line(s), you can add an empty note (i.e. addnote T0123456A n\ 1 or more times.
Do note that the patient list panel will not display the empty line(s) unless there is a note with other characters before and after the note with just spaces.
The space characters at the start and end of the note are stripped during the execution of this command. So addnote T0123456A n\ Diabetes and addnote T0123456A n\Diabetes give the same note of Diabetes.
↑ Back to Top ↑ Back to Table of Contents
ClinicMate data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
ClinicMate data is saved automatically as a JSON file [JAR file location]/data/clinicmate.json. Advanced users are welcome to update data directly by editing that data file.
⚠️ Warning:
↑ Back to Top ↑ Back to Table of Contents
Q: How do I open my terminal?
A: Here are the instructions to open your terminal for the different types of operating systems:
Q: When will the patient notes panel be cleared?
A: The patient notes panel will be cleared when you use the show command without any IC_NUMBER. Unfortunately, clear or delete command will not clear the patient notes panel.
Q: When using multiple screens, moving the application to a secondary screen and later switching to using only the primary screen, the GUI opens off-screen. What do I do?
A: Delete the preferences.json file created by the application before running the application again.
Q: Is there a limit to the number of patient records ClinicMate can manage?
A: ClinicMate is designed to handle a large number of patient records efficiently. However, performance may vary depending on the hardware specifications of your computer and the amount of data being managed.
Q: How do I load my data from another computer?
A: Let's say that you want to move your data from computer A to computer B. You should:
clinicmate.json file that is located at [JAR file location]/data/clinicmate.json in computer B.clinicmate.json file from computer A to computer B at the same location as above.Q: Can I export patient data from ClinicMate for reporting or backup purposes?
A: Currently, ClinicMate does not support direct export of patient data. However, you can manually copy the data from the data file located at [JAR file location]/data/clinicmate.json for backup or reporting purposes.
Q: Can I customize the fields for patient records in ClinicMate?
A: ClinicMate currently supports predefined fields for patient records (name, phone, email, IC number, age, sex, address). Customization of fields is not supported in the current version.
Q: How secure is the patient data stored in ClinicMate?
A: ClinicMate stores patient data locally on your computer in a JSON file. It is recommended to keep your computer secure and up-to-date with the latest security patches to ensure the safety of patient data.
Q: Is there a way to import patient data into ClinicMate from other software?
A: ClinicMate does not currently support direct import of patient data from other software. However, you can manually enter patient data using the add command.
Q: I am not able to directly access the user guide by pressing on the icon in the help window.
A: Linux users might face some difficulties when trying to directly access the website. Unfortunately, we currently do not have a solution for this. Please access our user guide in the alternative way, which is to copy the URL and pasting it in your web browser.
Q: The patient notes panel does not display the most updated contact I interacted with.
A: Currently, only the find or show command will change whose notes are displayed in the patient notes panel.
Q: The patient notes panel is not showing the full note. Can I expand the display?
A: ClinicMate does not currently support expanding the patient notes panel. However, you can scroll through the notes both vertically and horizontally using the scrollbar provided.
Q: Some of my patient information is being truncated in the patient list panel. How can I view the full information?
A: Unfortunately, ClinicMate displays patient information in a fixed format, including sections such as email and note, that might cause long entries to be truncated (e.g. An excessively long name would cause the name, age and gender to be truncated). This will be fixed in a future release.
Q: Long lines of notes in the patient list panel are being unevenly truncated. Is this normal?
A: Yes, this is a known issue. You can still view the full note using the show command through the patient notes panel.
Q: Can I use addnote repeatedly with the same message?
A: Yes! ClinicMate does not restrict the number of times you can use the addnote command with the same message.
Q: Do you support non-English inputs?
A: We do not have dedicated support for non-English inputs, and some features might not work as expected. We recommend using English inputs for the best experience.
↑ Back to Top ↑ Back to Table of Contents
↑ Back to Top ↑ Back to Table of Contents
These descriptions will help you understand the key terms used in ClinicMate.
| Term | Definition |
|---|---|
| Alphanumeric | Alphanumeric pertains to a character set containing both letters and numbers, encompassing the full range of 26 English alphabet letters (both uppercase and lowercase) along with numerical digits 0 through 9. |
| Case-insensitive | Case-insensitive treatment equates uppercase and lowercase characters, treating them as identical. For instance, both john and John would be considered the same. |
| CLI | CLI, or Command-Line Interface, is a text-based interface enabling users to interact with software via typed commands. |
| Command | A command denotes a user's directive to ClinicMate, instructing it to execute a specific action. For example, the add command adds the patient's details to ClinicMate. |
| GUI | GUI, or Graphical User Interface, facilitates user interaction with software through visual elements like icons, buttons, and windows, providing a more intuitive alternative to text-based commands. |
| JAR | JAR, short for Java Archive, represents a package file format used to bundle multiple Java class files, along with associated metadata and resources, into a single file for distribution purposes. |
| JSON | JSON, standing for JavaScript Object Notation, serves as a lightweight data interchange format that is human-readable and easy for machines to parse, commonly utilized in web applications and configuration files. |
| Parameter | A parameter resembles a field in a form that requires input. In the command edit S1234567A ag\AGE n\NAME, AGE and NAME are parameters within the command. |
| Prefix | A prefix acts as a keyword used to identify a parameter. In the command edit S1234567A ag\AGE n\NAME, ag\ and n\ function as prefixes. |
| Parameter | Description | Constraints |
|---|---|---|
NAME | Name of the patient. | Only contain alphanumeric characters and spaces, and should not be blank. |
PHONE | Phone number of the patient. | Only contain numbers, be at least 3 digits. Should not be blank. |
EMAIL | Email of the patient. | Should be in the format of local-part@domain and should not be blank. |
IC_NUMBER | IC number of the patient. | Case-insensitive and should not be blank. It should start with one letter (S, F, G or M), followed by 7 digits and 1 letter behind. |
AGE | Age of the patient. | Only contain numbers, and should not be blank. |
SEX | Sex of the patient. | Case-insensitive and should not be blank. Only accepts m, f, M, F as inputs. |
ADDRESS | Address of the patient. | Case-insensitive and should not be blank. |
NOTE | Note of the patient | Case-insensitive and can be blank. |
edit Note:
lightbulb Useful Tip:
The email format is local-part@domain.
local-part constraints:
domain name constraints:
↑ Back to Top ↑ Back to Table of Contents
| Action | Format, Examples |
|---|---|
| Add | add n\NAME p\PHONE e\EMAIL i\IC_NUMBER ag\AGE s\SEX a\ADDRESS e.g. add n\John Doe p\88888888 e\johndoe@mail.com i\T0123456A ag\12 s\M a\John street, block 123, #01-01 |
| Clear | clear |
| Delete | delete IC_NUMBERe.g. delete T0123456A |
| Edit | edit IC_NUMBER [n\NAME] [p\PHONE] [e\EMAIL] [i\IC_NUMBER] [ag\AGE] [s\SEX] [a\ADDRESS]e.g. edit T0123456A p\88888888 |
| Add Note | addnote IC_NUMBER n\NOTE [-replace]e.g., addnote T0123456A n\Patient has diabetese.g. addnote T0123456A n\Patient has diabetes -replace |
| Find | find IC_NUMBERe.g. find T0123456A |
| Show | show [IC_NUMBER]e.g. show T0123456A e.g. show |
| Help | help |
| List | list |
| Exit | exit |