Last updated: 6 November 2026
Every doctor has their own medicine master — the list of medicines they prescribe regularly, each with the frequency, duration, instruction and route they usually use. When the doctor writes a prescription, this list is what they pick from, so a consultation can be filled in without typing each line.
The list belongs to one doctor. It is not a hospital-wide catalogue, and it does not touch stock, prices or pharmacy items.
Sidebar → Doctor → (select the doctor) → ID opens the doctor's management page,
/admin/doctor/doctor-mangement/{doctorId}.
Three actions sit at the top of that page:
| Action | What it does |
|---|---|
| Create Medicine | Adds one medicine to the list |
| Search and Edit Medicine | Lists everything on the list, with edit and delete |
| Bulk Upload Medicine | Loads the whole list from an Excel or CSV sheet |
| Signed-in role | What they can do |
|---|---|
| admin / director | Create, edit, delete and bulk upload for any doctor in the hospital |
| doctor | Create, edit, delete and bulk upload for their own list only |
Everything imported is owned by the doctor, not by whoever uploaded it — so an admin can load the list and the doctor can still edit and delete the entries afterwards.
A medicine that is already on the list with the same frequency and duration is refused as a duplicate. The same medicine with a different frequency or duration is a separate entry and is allowed — for example Tab Paracetamol 500mg / 1-0-1 / 5 days and Tab Paracetamol 500mg / SOS / 3 days are two legitimate entries.
Use this when a doctor joins with a list of a few hundred medicines, or when the list needs updating in one go.
| Column | Required | Example |
|---|---|---|
| Medicine | yes | Tab Paracetamol 500mg |
| Frequency | yes | 1-0-1, BD, TDS |
| Duration | yes | 5 days, 1 week |
| Instruction | yes | After food |
| Route | yes | Oral, IV, Topical |
.xlsx, .xls or .csv.The checkbox is on by default and decides what happens to a row whose medicine name is already on this doctor's list:
| Setting | Result |
|---|---|
| Ticked (default) | The row is skipped. The upload succeeds, and the result lists exactly which rows were skipped and what the existing entry's frequency and duration are. |
| Cleared | Each such row is reported as an error and nothing is imported until you remove those rows from the sheet and upload again. |
The comparison uses the medicine name only — trimmed and ignoring case, so
Tab Paracetamol 500mg matches tab paracetamol 500mg . Frequency and duration are
not part of this comparison. This is deliberate: re-uploading a master file that has
grown over time should add the new lines without arguing about the ones you already
have. Clear the checkbox when you want to be shown every line that overlaps instead.
Search and Edit Medicine shows at most
1,000 rows, so anything beyond that would be invisible.All checks run before a single row is saved. If any row fails, the page lists every problem at once in a Row · Medicine · Column · Value · Reason table, which you can download as a CSV, and the list is left exactly as it was.
Two things are always errors, whichever way the checkbox is set:
| Message | What it means | What to do |
|---|---|---|
| "The file has no rows…" | The sheet has a header but no data. | Add medicines from row 2 and upload again. |
"Column X is missing…" | A required header was renamed or deleted. | Restore the header exactly as the template has it: Medicine, Frequency, Duration, Instruction, Route. |
| "This file could not be read…" | The file is not a spreadsheet the app can open, or it is corrupted. | Save it as .xlsx or .csv and upload again. |
| "Dr X already has N medicines. The list holds 1,000 — this file would make M. Import K or fewer." | The upload would push the doctor past 1,000. | Split the file, or remove medicines from the list first. |
| "… is already on Dr X's list. Remove this row from the sheet and upload again." | The checkbox was cleared and a row already exists. | Delete that row, or tick Skip existing medicines. |
| "Duplicate within this file — also on row N." | The same medicine with the same frequency and duration appears twice in the sheet. | Keep one of the two rows. |
| "This doctor does not belong to your hospital." | The doctor ID in the link is not in your hospital. | Open the doctor from Doctor → ID in your own hospital. |
| "You can only upload medicines to your own list." | A doctor tried to upload to another doctor's list. | Ask an admin or director to run the upload. |
| "This medicine could not be saved because it collides with an existing entry…" | Someone added the same medicine at the same moment. | Upload the file again; change the frequency or duration if the row is genuinely different. |
Product releases, ABDM/NHCX and PMJAY changes, and practical notes for running a hospital — a few emails a month. Unsubscribe in one click.