By: Team T12-3
Since: Feb 2019
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Application Interface
- 4. Features
- 5. Commands
- 5.1. Viewing help :
help
- 5.2. Adding a new medicine :
add
- 5.3. Listing all medicines :
list
- 5.4. Locating medicines :
find
- 5.5. Editing a medicine :
edit
- 5.6. Deleting a medicine :
delete
- 5.7. Viewing medicine information page :
select
- 5.8. Sorting the batch table :
sort
- 5.9. Updating batch records :
update
- 5.10. Managing the warning panel :
warning
- 5.11. Exporting as CSV file format :
export
- 5.12. Printing labels :
label
- 5.13. Listing entered commands :
history
- 5.14. Undoing previous command :
undo
- 5.15. Redoing the previously undone command :
redo
- 5.16. Clearing all entries :
clear
- 5.17. Exiting the program :
exit
- 5.18. Saving the data
- 5.1. Viewing help :
- 6. Frequently Asked Questions (FAQ)
- 7. Commands Summary
- 8. Terminology
- 9. Appendix A: File Naming Convention
Welcome to the MediTabs User Guide! Over here, you can find step by step instructions on setting up MediTabs and learn ways to take advantage of the features provided to optimise your clinic’s inventory management. Interested? You can jump to Section 2, “Quick Start” to get started. Enjoy!
MediTabs is a desktop application for managing medicine stock taking. Managing medicine can be time consuming and frustrating due to the overwhelming number of medicines in the market. Thus, MediTabs was created to provide pharmacist with a straightforward and efficient way to keep track of and maintain their inventory.
With MediTabs, medicine data is organized in a format that helps you quickly locate the information you need. MediTabs also sieves out and provides you with critical information such as which medicines are low in stock, expiring soon or have expired so that you can ensure your inventory is well maintained. Functionality to help you with tasks which require medicine data such as medicine labelling and inventory analysis is also provided, making MediTabs the only application you need for all things inventory related.
MediTabs supports Windows, Linux and macOS operating systems.
If you are looking for a medicine stock taking application for clinics, MediTabs is the product for you. Whether you are an owner of a clinic or a pharmacist in charge of your clinic’s medicine inventory, you can use MediTabs to help improve your workflow. It is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, MediTabs can get your medicine stock taking done faster than traditional GUI apps.
-
Ensure you have Java version
9
installed on your computer. -
Download the latest version of
meditabs.jar
here. -
Copy the
meditabs.jar
file to the folder you want to use as the home folder for your MediTabs application. -
Double-click the file to start the app. The GUI should appear in a few seconds.
ℹ️This program requires a minimum resolution of 1200*810. Best viewed in full screen.
-
Type a command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list
: lists all medicines in the inventory -
add
n/Paracetamol c/3M Pharmaceuticals
: adds a new medicine namedParacetamol
to the inventory with the manufacturing company3M Pharmaceuticals
-
delete
3
: deletes the 3rd entry shown in the current list -
exit
: exits the application
-
-
You can refer to Section 5, “Commands” for details of each command.
-
Having trouble setting up MediTabs? You can refer to the Section 6, “Frequently Asked Questions (FAQ)” for solutions to common problems you might encounter. Do you require further assistance? If so, you can also post your queries here and our team will do our best to assist you.
Command Box
-
Type commands into the command box and press Enter to execute them.
-
You may refer to Section 7, “Commands Summary” for a list of all possible commands.
Result Display
-
The result from executing the command will be displayed in the Result Display.
-
If commands are entered incorrectly, error messages will be shown here.
Medicine List
-
Medicine list provides a list view of the inventory.
-
The list may contain all medicine in the inventory, or a filtered view if the
find
command was executed. -
The list is sorted lexicographically by medicine name, insensitive to casing.
Information Panel
-
You can select a medicine from the medicine list by using the
select
command. e.g.select 1
selects the first medicine in the list. -
After selecting a medicine, information about the medicine will be displayed in the information panel.
Warning Panel
-
The warning panel displays a list of medicines running low on stock and a list of expiring/expired medicine batches.
-
Warnings will be logged in the warnings panel until changes are made to medicines and/or batches displayed, or to the thresholds controlling what is displayed.
-
Image below shows the labelled components of the warning panel:
As an inventory management application, MediTabs supports basic functionalities (add, edit, delete, list). On top of these basic functions, MediTabs also boasts several features tailored to your needs. These features aim to streamline your inventory management process, thereby enhancing your user experience.
Having a way to keep track of individual batches of medicine makes medicine management more efficient as problematic batches can easily be located and removed. However, with so many different batches of the same medicine, you need an effective way to organize them or it could get confusing.
The information panel provides all the details and information you need about each batch of medicine in a neat and organized manner.
You can easily refer to the batch table provided in the information panel while updating and managing your inventory. Simply select a medicine using the select
command to view all its relevant details. You may refer to Section 5.7, “Viewing medicine information page : select
” for more details.
You can also sort the table by any of its columns with the sort
command to suit your needs and preference. You may refer to Section 5.8, “Sorting the batch table : sort
” for more details.
The warning panel provides an overview of pressing issues that have to be taken care of. With a quick glance, you will be able to identify expiring or expired batches of medicine, and medicines running low in stock.
On top of that, the warning panel features flexible thresholds that can be changed according your needs and preferences with a simple command, adding to your user experience.
You can learn about related commands related in Section 5.10, “Managing the warning panel : warning
”.
You can export the current medicine inventory data shown in the GUI as Comma-separated values (CSV) file format which is supported by many commonly used spreadsheet applications such as Microsoft Excel (Windows), LibreOffice (Linux) or Numbers (macOS).
Motivation
This feature is especially useful if you want to save the current medicine inventory data shown in the GUI in a file so that it can be printed later or if you want to organise the medicine inventory data using a spreadsheet application for you, your superior or your supplier’s reference.
In addition, you can even use the spreadsheet application to convert the CSV file to Microsoft Excel format and use all the functionalities provided by Microsoft Excel such as drawing graphs or chart to display the overview of your clinic’s medicine inventory.
You can use the export
command to take advantage of this feature. You can learn more about how to use the export
command here.
Our team is constantly working to improve your user experience. Here are some features to look forward to in our next release.
When typing fields that include medicine name, a list of suggested medicine names will appear after you input the first letter.
ℹ️
|
Press the ↑ and ↓ arrows to select from the generated list of suggestions. |
MediTabs will store information about your monthly stock level and predict the optimal amount of stock needed for the future. It will be possible to forecast inventory needs up to 3 months in advance with no extra effort from you as all analysis and calculations will take place with data already provided by routine use of MediTabs. It will also be possible to import past inventory data to increase accuracy of forecasting immediately without having to wait for the application to collect data.
ℹ️
|
Importing or allowing MediTabs to collect data for 6 months or more will produce a more accurate forecast. |
You can download and install integration addons created for MediTabs such as addons which allows MediTabs to integrate with different third party services which your clinic might currently be using.
Format: install an/NAME_OF_ADDON
ℹ️
|
Only integration addons that have been verified by our team can be downloaded and installed in MediTabs. This is to ensure that the addons are secure and have no malicious code due to the increasing cybersecurity threat. |
Benefits of integration addon support are as follows:
-
Provides greater flexibility as as you might choose to integrate with different third-party services which are currently used by your clinic, to allow for easier transition between services.
-
Allows you to customise MediTabs with features that your clinic requires without any unnecessary features which might not be relevant to your clinic’s workflow.
An example of an integration addon which would be supported by MediTabs:
-
Singapore’s Health Sciences Authority (HSA) - To integrate the Singapore HSA’s medical database with MediTabs which allows easy retrieval of important information such as when medicine is requested to be recalled by the HSA.
ℹ️
|
This feature can be improved to support medical databases of different countries. |
Due to the nature of medical inventories, the integrity of data stored is of utmost importance. The next release will feature data encryption to keep your inventory safe and keep unauthorised users away. With this feature, you will be required to log in with a password to view and edit your inventory. This feature can be disabled if it is not required for your needs.
Preview of results for Export and Label Commands to be available in the UI.
-
Current implementation: You may have to manually search for the external files created in their respective folders.
-
In v2.0, a snapshot of the resulting files will be previewed under the UI for easier reference. This further streamline the inventory management and improve your usability.
-
Below is a mock up on how the UI may look like with the features integrated.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/Paracetamol
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/Paracetamol t/fever
or asn/Paracetamol
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/fever, t/painkiller t/inflammation
etc.. -
Parameters can be in any order e.g. if the command specifies
n/NAME c/COMPANY_NAME
,c/COMPANY_NAME n/NAME
is also acceptable. -
INDEX
refers to the index number shown in the displayed medicine list. The index must be a positive integer 1, 2, 3, … -
If only one input is required but more than one valid input is entered, only the last input will be registered e.g.
n/Paracetamol n/Ibuprofen
, onlyIbuprofen
is registered.
Adds a new medicine to the inventory.
Format: add n/NAME c/COMPANY_NAME [t/TAG]…
Warning
|
Medicines already in the inventory cannot be added again. A duplicate medicine is one with the same name and same manufacturing company. |
Examples:
-
add n/Paracetamol c/3M Pharmaceuticals
-
add n/Ibuprofen c/Takeda Pharmaceutical Co. t/fever
Shows a list of all medicine in the inventory.
Format: list
-
The details of the medicine shown in the list include: name, company, total quantity, next expiry date and tags.
Finds medicine whose details contain any of the given keywords and displays them in the list.
Format: find PREFIX KEYWORD [MORE_KEYWORDS]…
-
n/
: name of medicine is searched. -
c/
: company name of medicine is searched. -
t/
: tags of medicine are searched. -
b/
: batch number of batches of medicine are searched.
-
Only the category indicated by the entered prefix will be searched. You can only enter one prefix at a time. Prefix must be entered before keywords.
-
The search is case insensitive. e.g
sodium
will matchSodium
. -
The order of the keywords does not matter. e.g.
Sodium Levothyroxine
will matchLevothyroxine Sodium
. -
Only full words will be matched e.g.
Sod
will not matchSodium
. -
Medicines matching at least one keyword will be returned (i.e.
OR
search). e.g.Sodium Ibuprofen
will returnLevothyroxine Sodium
andIbuprofen
.
Examples:
-
find n/ Sodium
Levothyroxine Sodium
andNaproxen Sodium
are displayed in the list. -
find c/ 3M Johnson Pharmaceutical
All medicines from companies with names containing3M
,Johnson
orPharmaceutical
such as3M Pharmaceuticals
are displayed in the list. -
find t/ fever
All medicines with tagfever
are displayed in the list. -
find b/ NDC
All medicines with batches with batch number containingNDC
such asNDC 0777-3105-02
are displayed in the list.
Edits an existing medicine in the inventory.
Format: edit INDEX [n/NAME] [c/COMPANY_NAME] [t/TAG]…
-
Edits the medicine at the specified INDEX.
-
At least one of the optional fields must be provided.
-
Existing values will be updated to the input values.
Examples:
-
list
edit 2 n/Prednisone c/Johnson & Johnson
Edits the name of the 2nd medicine in the list to bePrednisone
and company to beJohnson & Johnson
. -
find n/ Prednisone
edit 1 t/
Remove tags from the 1st medicine in the results of thefind
command.
Deletes the specified medicine from the inventory.
Format: delete INDEX
Examples:
-
list
delete 2
Deletes the 2nd medicine in the list. -
find n/ Gabapentin
delete 1
Deletes the 1st medicine in the results of thefind
command.
Selects a medicine and loads the information page of the medicine.
Format: select INDEX
-
Loads the information page of the medicine at the specified
INDEX
in the information panel. -
The information page consists of a table with details of all batches of the selected medicine.
-
These details include: batch number, quantity and expiry date.
-
The total quantity and next expiry date of the medicine is also displayed at the bottom of the table.
Examples:
-
list
select 2
Selects the 2nd medicine in the inventory and loads its information page. -
find n/ Gabapentin
select 1
Selects the 1st medicine in the results of thefind
command and loads its information page.
Sorts the batch table in the medicine information page based on the entered property and direction
Format: sort p/PROPERTY d/DIRECTION
-
batchnumber
: sorts the table by batch number (lexicographically). -
expiry
: sorts the table by expiry date. -
quantity
: sorts the table by quantity.
-
ascending
: sorts the table in ascending order. -
descending
: sorts the table in descending order.
Examples:
-
sort p/expiry d/descending
The table is sorted starting from the batch with the furthest expiry date. -
sort p/quantity d/ascending
The table is sorted starting from the batch with the lowest quantity.
Updates batch details of a medicine.
Format: update INDEX b/BATCH_NUMBER [q/QUANTITY] [e/EXPIRY_DATE]
-
Updates details of a batch in the batch records of the medicine at specified
INDEX
. -
At least one of the optional fields must be provided.
-
If the entered batch number does not already exist in the record, a new batch record is created. Both quantity and expiry date must be entered for new batches.
-
If the batch number already exists, the quantity or expiry date of the batch is replaced with the new information entered.
-
If quantity of a batch is updated to
0
, it will be removed. -
The total quantity and next expiry date of the medicine will also be updated.
-
Note that in order to prevent confusion, you cannot set expiry date to a passed date. You also cannot add a new batch with 0 quantity.
Examples:
-
list
update 2 b/NDC 0777-3105-02 q/30 e/11/2/2020
Updates quantity and expiry date of batchNDC 0777-3105-02
in the batch records of the 2nd medicine in the list to30
and11/2/2020
. A new record is created if batchNDC 0777-3105-02
did not already exist. -
find n/ Gabapentin
update 1 b/GKP1684 q/50
Updates quantity of batchGKP1684
in the batch records of the 1st medicine in the results of thefind
command to50
. An error message is shown if batchGKP1684
did not already exist. -
list
update 1 b/HK85412 q/0
Removes batchHK85412
from the batch records of the 1st medicine in the list. An error message is shown if batchHK85412
did not already exist.
Manage the threshold for expiry date and low stock warnings to alter the contents of the warning panel.
Format: warning [e/EXPIRY_THRESHOLD] [q/LOW_STOCK_THRESHOLD] [SHOW]
Provide only one of the optional fields available.
If the thresholds are not set, the default threshold for expiry will be 10 days, and 20 for low stock.
Thresholds set by the user are saved and will be used when the application is launched again.
Important
|
All thresholds must be positive integers. |
-
EXPIRY_THRESHOLD
should be number of days before expiry date. -
LOW_STOCK_THRESHOLD
should be in number of stock remaining. -
SHOW
is case insensitive.
Examples:
-
warning e/30
Medicine batches that have expired or with expiry dates within 30 days to expiry from today will be displayed in the warning panel. -
warning q/10
Medicines with a total quantity of less than or equal to 10 will be displayed in the warning panel. -
warning show
Current thresholds used for the warning panel will be shown in the result display.
Exports the current medicine inventory data shown in the GUI as CSV file format.
Format: export [FILE_NAME]
-
The
FILE_NAME
field is optional. You can refer to Section 9, “Appendix A: File Naming Convention” for supported file name format if you want to specify a file name for the exported CSV file. -
If no file name is specified, the
export
command uses the default file name format according to the date and time of export. -
The specific date and time format used if no file name is specified is
dd_MMM_yyyy_HH_mm_ss
e.g.18_Mar_2019_10_28_00
-
The file extension for a CSV file is
.csv
-
The exported file can be found in the default
exported
folder which can be found in the home folder used for your MediTabs application. -
If the default
exported
folder is not found in the home folder, MediTabs will automatically create the folder when theexport
command is executed.
Important
|
Medicines without any batches are not included in the exported CSV file as they would not have any useful information such as the quantity and expiry dates which are important in the keeping track of your medicine inventory. This is by design, as our team believes that the exported CSV file should only provide useful detailed information. |
Examples:
-
export
Exports the current medicine inventory data shown in the GUI to a CSV file which has a default file name format{Date of export}_{Time of export}
. e.g.18_Mar_2019_10_28_00
-
export example
Exports the current medicine inventory data shown in the GUI to a CSV file which has the filenameexample
.
Warning
|
If a file with the specified file name already exists in the default exported folder, the file would not be exported and an error message "Could not export data to csv file: {Specified File Name} already exists in "exported" directory"
|
A sample image of how the medicine inventory data in the exported CSV file is organised:
ℹ️
|
From the image above, you can observe that the exported CSV file only contains essential information such as the medicine batches, quantity and expiry date for each batch of medicine and which medicines are low in stock, expiring soon or have expired for easier reference. |
-
You can label any specific medicine information in the inventory through the Portable Document Format (PDF).
Open the PDF file under the PDF folder to view and print your selected medicine. -
Label will include name of medicine and standard label template.
This includes the company that manufactured it, expiry date and the tags that was set with it. -
Your format for using the command should follow:
label INDEX [f/FILE_NAME]
-
File name is optional.
-
Outputs the label for the medicine at the specified INDEX.
-
If no file name is specified, the default file name is
to_print
. -
The index refers to the index number shown in the displayed medicine list.
All PDF files can be found under the PDF folder
Fig 5.12.1 PDF folder highlighted
Examples:
-
Open up the software interface. (Fig 5.12.2)
Fig 5.12.2 Software interface
-
Key in
list
followed by
label 1
.
This selects the 1st medicine in the inventory and output the information to a default PDF file namedto_print
. -
You can open the file in the PDF folder (Fig 5.12.1) with your preferred PDF reader to print the medicine information.
A example below of how the label information will look like (Fig 5.12.2)
Fig 5.12.2 Medicine information
-
If you want to name the output file, follow the steps below:
-
find n/ Simvastatin
label 1 f/Simvastatin
Similar to the example above, the 1st medicine information will be output to a file nameSimvastatin
. (Fig 5.12.3)Fig 5.12.3 Simvastatin medicine information
WarningThe label
command will overwrite theto_print
file when filename is not specified. Do print the required file first before using thelabel
command again.-
Please follow Appendix A for naming conventions.
-
-
Lists all the commands that you have entered in reverse chronological order.
Format: history
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
Restores the inventory to the state before the previous undoable command was executed.
Format: undo
ℹ️
|
Undoable commands: those commands that modify the inventry’s content ( |
Examples:
-
delete 1
list
undo
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
Q: Where can I find Java version 9
?
A: You can download Java version 9
here. We recommend installing Java SE Development Kit 9.0.4
on your computer.
Q: (Windows Only) I followed the instructions in Section 2, “Quick Start” but the GUI did not appear?
A: This is a commonly known issue with JDK on Windows. You can learn more about the issue here: Link
We recommend following the steps below to solve this issue:
-
Ensure that you only have Java version
9
installed on your computer. Uninstall any other versions of Java which might be present on your computer. -
Download the latest version of
jarfix.exe
here. -
Double-click the file to allow the program to fix this issue.
ℹ️
|
If you encounter any problems running jarfix.exe , you can read the documentation available on the website for more detailed instructions on how to run the program on your computer.
|
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous MediTabs folder.
-
Add
add n/NAME c/COMPANY_NAME [t/TAG]…
e.g.add n/Paracetamol c/3M Pharmaceuticals t/fever
-
Clear :
clear
-
Delete :
delete INDEX
e.g.delete 3
-
Edit :
edit INDEX [n/NAME] [c/COMPANY_NAME] [t/TAG]…
e.g.edit 2 n/Amoxicillin c/GlaxoSmithKline t/antibiotic
-
Exit :
exit
-
Export :
export [FILE_NAME]
e.g. export Records -
Find :
find PREFIX KEYWORD [MORE_KEYWORDS]…
e.g.find n/ paracetamol
-
Help :
help
-
History :
history
-
Label :
label INDEX
e.g.label 1
-
List :
list
-
Redo :
redo
-
Select :
select INDEX
e.g.select 2
-
Sort :
sort p/PROPERTY d/DIRECTION
e.g.sort p/quantity d/ascending
-
Undo :
undo
-
Update :
update INDEX b/BATCH_NUMBER [q/QUANTITY] [e/EXPIRY_DATE]
e.g.update 2 b/A030F21 q/1000 e/25/1/2020
-
Warning :
warning [e/EXPIRY_THRESHOLD] [s/LOW_STOCK_THRESHOLD] [SHOW]
e.g.warning e/20
,warning s/10
,warning show
-
List: This refers to the currently displayed list (possibly filtered).
-
Inventory: This refers to the storage containing all medicines that have been added. Display all medicines in the inventory by using the
list
command. -
Batch: This refers to a group of medicine with the same name, medical properties and manufacturing date. There may be more than one batch of medicine with the same name, but they will have different batch numbers and manufacturing dates. View all batches of a medicine by using the
select
command.
MediTabs uses the following file naming convention when file name field is used e.g. The export
command’s optional [FILE_NAME]
field. The file naming convention is to ensure consistency and to avoid potential bugs involving file names with different operating systems such as Windows, Linux and macOS
Format: Start with an alphabet or number followed by alphabets, numbers, underscore or hyphen
ℹ️
|
File name does not include file extension such as .csv and .pdf . You do not have to include file extension when specifying the file name field such as in export [FILE_NAME] . MediTabs will handle the file name extension for you.
|
Examples of correct and incorrect file names:
Correct | Incorrect |
---|---|
|
|
|
|
|
|
|
|
Important
|
You must follow the file naming convention format when specifying the file name field for any commands that support file name as a field. |
Caution
|
The characters of the file name cannot contain any spacing or symbols, including but not limited to, \/:*?"<>|.+[]{};!@#$%^&~` Reserved names, indicated in Windows documentation, are also not allowed to be used as file names such as COM1 and LPT8 . The reserved names are case insensitive for example, com1 or CoM1 are also reserved names. You can read more about file naming conventions in Windows here.
|