| Version | Date | Changed By | Summary of Changes |
|---|---|---|---|
| 0.1 | 16th September 2026 | Pranoti Monde | Initial draft. Item Master changes for Non-Medical items (2.2.A). Device Master, Device Inventory, Device AMC/Warranty and Device to Camp/Store Mapping (2.2.B–E). |
| 0.2 | 14th October 2026 | Ganesh Shirpure | Updated Purpose (1.1) and added Scope (1.2). Added Hierarchy Node Master (2.2.F), Node to Store Mapping (2.2.G), User Management changes (2.2.H), Role & Privilege Matrix (2.2.I), and one-time Bulk Item Upload (2.2.J). Added Reports & Audit (3) and Acceptance Criteria & Open Questions (4). Corrected section numbering from 2.3.x to 2.2.x. |
1. Introduction
1.1 Purpose
This document captures the business requirements for the Inventory Management module spanning the admin Portal and camp-level local servers (camp laptops), the synchronization between them, the backend APIs supporting the StopTB drug master and local stock management. It also covers the creation of a National → State → District → Block hierarchy mapped to the StopTB programme states, level-based user management with role-wise privileges, and a one-time bulk upload of items into the Item Master using an Excel template.
1.2 Scope
- Creation of a four-level hierarchy (National → State → District → Block) mapped to the 10 StopTB programme states
- Mapping of existing stores to hierarchy nodes
- User creation at each level, with each user mapped to one hierarchy node and one role
- Role-wise privileges, controlling what each user can view and do based on their level and role
- Data visibility restricted to the user’s own node and the levels below it
- One-time bulk upload of items into the Item Master using an Excel template, with validation and an error report
- Audit log of hierarchy, user and bulk upload actions
2. Required Changes in AMRIT Inventory Management Module
2.1 Purpose of This Section
The existing AMRIT platform already has a live Inventory Management Module, with an Admin Portal for master-data configuration. Highlighting the sections that will get added to the flow :
- Supplier Master (No change in the form)
- Manufacturer Master (No change in the form)
- Pharmacological Category Master (No change in the form)
- New Form : Device Master - Refer Section 2.2.B
- Item Category Master (Can include category name like X-Ray machine, PPE kit)
- Unit of Measure Master (No change in the form)
- Item issue method config (No change in the form)
- Expiry date alert config (No change in the form)
- Item Master (Changes suggested) - Refer Section 2.2.A
- New Function: Bulk Item Upload (one-time, via Excel) – Refer Section 2.2.J
- New Form : Device Inventory - Refer Section 2.2.C
- New Form : Device AMC/Warranty (linked to Device Inventory) - Refer Section 2.2.D
- Facility type master
- Main store and substore
- New Form: Node to Store Mapping – Refer Section 2.2.G
- Item to Store Mapping
- Item to facility mapping
- New Form : Device to Camp/Store Mapping - Refer Section 2.2.E
- Van/parking place to store mapping.
- User Management (Changes suggested) – Refer Section 2.2.H
- New Config: Role & Privilege Matrix – Refer Section 2.2.I
This BRD is not proposing a new module from scratch - it is defining the changes required on top of what already exists. This section exists specifically to answer that question for the Admin Portal component, where all inventory master data is configured and from which it synchronizes out to various service line.
2.2 Section wise Detailing
2.2.A. Item Master (existing form, changes only)
Item Type stays a two-way radio (Medical / Non-Medical) - Device is deliberately not a third Item Type; it is handled by the new masters in Tables 2.3.2 & 2.3.3
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Item Type | Radio button |
|
|
| Item Category | Dropdown (single-select) | e.g. Drugs, Non-Medical Consumables, Lab Devices, Devices/Equipment, PPE |
|
| Item Code | Text | — |
|
| Item Name | Text | — |
|
| Snomed CT Code | — | Enabled only when Item Type = Medical. | |
| Snomed CT Term | — | Enabled only when Item Type = Medical. | |
| Strength | — | Enabled/mandatory only when Item Type = Medical. | |
| UOM |
| Shown for both Medical and Non-Medical | |
| Drug List Type | — | Enabled only when Item Type = Medical. | |
| Item Form | — | Enabled only when Item Type = Medical. | |
| Pharmacology Category | — | Enabled only when Item Type = Medical. | |
| Manufacturer | Dropdown/Text | From Manufacturer Master | Mandatory for all Item Types. |
| Drug Type |
| Enabled only when Item Type = Medical. | |
| Composition | Enabled/mandatory only when Item Type = Medical. | ||
| Route Of Admin | Enabled only when Item Type = Medical. | ||
| Item Description | Text (multi-line) | Free text | Optional, shown for all Item Types. |
2.2.B. Device Master (NEW)
Generic device catalog, e.g. "Truenat Device," "X-ray Device," "Glucometer." Consumables tied to a device (e.g. glucometer strips) are not here - they stay in regular Item Master.
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Device Code | Text | Free text |
|
| Device Name | Text | e.g. Truenat Device, X-ray Device, Glucometer |
|
| Device Description | Text (multi-line) | Free text | Optional |
2.2.C. Device Inventory (NEW)
Item Master → Device Inventory (NEW) — the specific, physical units owned (e.g. this facility's actual glucometer unit).
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Device Master Reference | Dropdown | From Device Master |
|
| Device Number / Serial Number | Text | Free text |
|
| Manufacturer | Dropdown/Text | From Manufacturer Master |
|
| Device Brand Name | Text | Free text | Optional. |
| Supplier | Dropdown | From Supplier Master | Optional. |
| Date of Purchase | Date picker | Date | Optional. |
| Cost | Numeric | Currency value | Optional. |
| AMC Cost (summary) | Numeric | Currency value | Optional — quick-reference figure; full AMC details captured separately in Table D. |
2.2.D. Device AMC/Warranty (NEW, separate form, linked to Device Inventory)
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Device Inventory Reference | Dropdown | From Device Inventory (Device Number) | Mandatory. |
| AMC Vendor | Dropdown/Text | From Supplier Master or free text | Optional. |
| AMC Start Date | Date picker | Date | Optional. |
| AMC End Date | Date picker | Date | Optional. Should trigger an expiry-style alert similar to batch expiry, but for AMC/warranty lapse. |
| AMC Cost | Numeric | Currency value | Optional. |
| Asset Status | Dropdown |
|
|
2.2.E. Device to Camp/Store Mapping
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Device Inventory Reference | Dropdown | From Device Inventory (Device Number) | Mandatory. |
| Store/Facility | Dropdown | From Facility Type Master / Main Store & Substore | Mandatory. |
| Assigned Date | Date picker | Date | Optional. |
| Mapping Status | Dropdown |
| Optional. |
2.2.F. Hierarchy Node Master
This form defines the four-level hierarchy (National → State → District → Block) that the inventory module currently lacks. There is one National node, with the 10 StopTB programme states under it. Each State has its districts under it, and each District has its blocks. Every node will later be linked to a store (Section 2.2.G), and users are mapped to these nodes (Section 2.2.H).
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Hierarchy Level | Dropdown (single select) | National, State, District, Block | Mandatory. |
| Node Code | Text | Free text, e.g. NAT-01, MH, MH-PUN, MH-PUN-HVL | Mandatory. Must be unique. |
| Node Name | Text | Free text, e.g. Maharashtra, Pune, Haveli | Mandatory. |
| Parent Node | Dropdown | Nodes from one level above | Mandatory for State, District and Block. Disabled for National. Only nodes one level above can be selected (State → National, District → State, Block → District). |
| Location Code (LGD) | Dropdown | From existing AMRIT State / District / Block location master | Mandatory for State, District and Block. Reuse the existing location master; do not create duplicate locations. |
| Programme | Dropdown (multi-select) | StopTB (TBMJA); others in future | Mandatory. Only StopTB-tagged nodes appear in StopTB screens. |
| Status | Dropdown | Active, Inactive | Mandatory. Default Active. An inactive node cannot have new users mapped to it. |
Rules
- Only one National node can exist.
- National Admin can create and edit State nodes. State Admin can create and edit District and Block nodes only within their own state.
- A node cannot be inactivated while active users are mapped to it.
- A node cannot be deleted once created. It can only be inactivated.
2.2.G. Node to Store Mapping
This form links each hierarchy node to a store in the existing Main Store / Substore master. Existing stores, stock and reports keep working unchanged. Each node gets one main store, and Blocks can also have substores.
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Hierarchy Node | Dropdown | From Hierarchy Node Master (2.2.F) | Mandatory. Only Active nodes shown. |
| Store | Dropdown | From existing Main Store / Substore master | Mandatory. A store can be mapped to only one node. |
| Store Role | Dropdown | Main, Sub | Mandatory. Each node can have only one active Main store. |
| Effective From | Date picker | Date | Mandatory. Default today. Cannot be a future date. |
| Status | Dropdown | Active, Inactive | Mandatory. Default Active. |
Rules
- Every Active node must have exactly one Active Main store before users can be mapped to it.
- National Admin can map stores for National and State nodes. State Admin can map stores for District and Block nodes within their own state.
- Changing a node’s Main store keeps the old mapping as Inactive, so the history is kept.
- A store cannot be unmapped while it holds stock. This check applies once stock transfer is introduced.
2.2.H. User Management (existing form, changes only)
The existing user creation form gets new fields so that each user is mapped to one hierarchy node and one role. The node controls what data the user can see: their own node and everything below it. The role controls what the user can do (Section 2.2.I).
| Name of Data Field | Field Type | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Full Name | Text | Free text | Mandatory. Existing field, no change. |
| Mobile Number | Numeric | 10 digits | Mandatory. Must be unique. Used for OTP and password reset. |
| Email ID | Text | Email format | Optional. Needed for email alerts. |
| Username | Text | Auto-suggested, editable | Mandatory. Must be unique. Existing field, no change. |
| Designation | Dropdown | e.g. State Programme Officer, DTO, Pharmacist, STS, Block Store In-charge | Mandatory. |
| Hierarchy Level | Dropdown | National, State, District, Block | NEW. Mandatory. |
| Hierarchy Node | Dropdown | From Hierarchy Node Master (2.2.F), filtered by the selected level | NEW. Mandatory. Shows only nodes within the logged-in admin’s own hierarchy. |
| Role | Dropdown | Roles valid for the selected level (2.2.I) | NEW. Mandatory. |
| Store | Auto-filled | Main store of the selected node (2.2.G) | NEW. Read-only. |
| Status | Dropdown | Active, Inactive, Locked | Mandatory. Default Active. |
Rules
- An admin can create users only at their own level or below, and only within their own hierarchy. National Admin can create users at any level. State Admin can create users only for their own state and the districts and blocks under it.
- Each user is mapped to one node and one role.
- When a staff member is transferred, the admin re-maps the user to the new node. The old mapping and all transactions done under it are kept.
- Inactivating a user does not delete their past transactions.
- After login, the user sees data only for their own node and the nodes below it. This restriction must be enforced in the backend APIs, not only on screen.
2.2.I. Role & Privilege Matrix (NEW)
This config defines the roles available at each hierarchy level and what each role can do. Super Admin can edit the matrix. The defaults are below.
Roles
| Role | Hierarchy Level | Main Responsibility |
|---|---|---|
| Super Admin | Platform | Configures roles, privileges and system settings (AMRIT/Piramal team). |
| National Admin | National | Manages Item Master, bulk item upload, State nodes and State users. |
| State Admin | State | Creates District and Block nodes and users within own state. |
| National Store Manager | National | Manages the national store. |
| State Store Manager | State | Manages the state store. |
| District Store Manager | District | Manages the district store. |
| Block Store User | Block | Manages the block store. |
| Viewer | Any level | Read-only access to masters and reports for own node and below. |
Privilege Matrix
Y = allowed for all nodes, Sub = own node and nodes below, Own = own node only, – = not allowed.
| Privilege | Super Admin | National Admin | State Admin | National Store Mgr | State Store Mgr | District Store Mgr | Block Store User | Viewer |
|---|---|---|---|---|---|---|---|---|
| Configure roles and privileges | Y | – | – | – | – | – | – | – |
| Create / edit National node | Y | – | – | – | – | – | – | – |
| Create / edit State nodes | Y | Y | – | – | – | – | – | – |
| Create / edit District and Block nodes | Y | Y | Sub | – | – | – | – | – |
| Node to Store Mapping | Y | Y | Sub | – | – | – | – | – |
| Create / edit users | Y | Y | Sub | – | – | – | – | – |
| Item Master: create / edit | Y | Y | – | – | – | – | – | – |
| Bulk Item Upload | Y | Y | – | – | – | – | – | – |
| Item Master: view | Y | Y | Y | Y | Y | Y | Y | Y |
| View stock and reports | Y | Sub | Sub | Own | Sub | Sub | Own | Sub |
| View audit log | Y | Sub | Sub | – | – | – | – | – |
Rules
- A role can only be assigned to a user at a matching hierarchy level. For example, State Admin can only be assigned to a State-level user.
- A user can never see or select a node outside their own hierarchy in any dropdown, report or API.
- Privileges for stock transfer (dispatch, receipt, block stock entry) will be added to this matrix when that BRD is taken up.
2.2.J. Bulk Item Upload (One-time activity)
This function lets National Admin load the full item list into the Item Master in a single upload, instead of entering items one by one. Items uploaded at central level apply to the national store and all StopTB states. The template columns match the Item Master fields in Section 2.2.A, and the same mandatory rules apply. Medical-only columns can be left blank for Non-Medical items.
Excel template columns
| Name of Data Field | Field Type (in Excel) | Value/Options | Validation/Logic/Condition |
|---|---|---|---|
| Item Type | Dropdown list | Medical, Non-Medical | Mandatory. |
| Item Category | Dropdown list | From Item Category Master | Mandatory. Must match an existing category. |
| Item Code | Text | Free text | Mandatory. Unique within the file and against existing Item Master. |
| Item Name | Text | Free text | Mandatory. |
| SNOMED CT Code | Text | Free text | Optional for Medical. Leave blank for Non-Medical. |
| SNOMED CT Term | Text | Free text | Optional for Medical. Leave blank for Non-Medical. |
| Strength | Text | e.g. 500 | Mandatory when Item Type = Medical. Leave blank for Non-Medical. |
| UOM | Dropdown list | From Unit of Measure Master | Mandatory for all item types. |
| Drug List Type | Dropdown list | From existing master | Optional for Medical. Leave blank for Non-Medical. |
| Item Form | Dropdown list | From existing master, e.g. Tablet, Syrup | Optional for Medical. Leave blank for Non-Medical. |
| Pharmacology Category | Dropdown list | From Pharmacological Category Master | Optional for Medical. Leave blank for Non-Medical. |
| Manufacturer | Dropdown list | From Manufacturer Master | Mandatory for all item types. Must match an existing manufacturer. |
| Drug Type | Dropdown list | Scheduled, Non-Scheduled | Optional for Medical. Leave blank for Non-Medical. |
| Composition | Text | Free text | Mandatory when Item Type = Medical. Leave blank for Non-Medical. |
| Route of Admin | Dropdown list | From existing master | Optional for Medical. Leave blank for Non-Medical. |
| Item Description | Text | Free text | Optional for all item types. |
Upload process
- National Admin opens Bulk Item Upload and downloads the Excel template. The template contains the column headers, mandatory columns marked with *, dropdown lists for master values, and one sample row each for Medical and Non-Medical.
- Admin fills in the items and uploads the file (.xlsx only, max 5,000 rows and 10 MB).
- The system validates every row and shows a preview with counts of valid rows, error rows and duplicate rows.
- If there are errors, the admin downloads an error file. It contains the original rows plus an “Error Reason” column, so the admin can correct the rows and re-upload.
- The admin clicks Confirm. Nothing is saved if any row has an error (all-or-nothing).
- The system saves the items and shows a summary of rows added. The upload is recorded in the audit log along with the uploaded file.
Rules
- Only Super Admin and National Admin can use Bulk Item Upload (Section 2.2.I).
- Column headers and their order must match the template exactly, otherwise the file is rejected.
- Dropdown values must match existing master values. Matching is case-insensitive.
- An Item Code that already exists in Item Master is rejected as a duplicate. This upload adds new items only and does not update existing ones.
- Master values used in the file must already exist, for example Manufacturer, Category and UOM. Add any missing masters before uploading.
- Items added through bulk upload can be edited later through the normal Item Master form.
3. Reports & Audit
These reports cover the hierarchy, users and bulk upload. Each user sees data only for their own node and the nodes below it. All reports can be exported to Excel and PDF.
3.1 Reports
| Report Name | Content | Filters | Primary Users |
|---|---|---|---|
| Hierarchy Node List | All nodes with level, code, name, parent node, mapped main store and status | Level, State, District, Status | Super Admin, National Admin, State Admin |
| Nodes Without Store Mapping | Active nodes that have no Active Main store, which blocks user mapping | Level, State | National Admin, State Admin |
| User List | Users with name, mobile, designation, level, node, role and status | Level, Node, Role, Status | Super Admin, National Admin, State Admin |
| User Activity | Users per node, last login date, and users who have not logged in for 30 days | Level, Node, Role, Date range | Super Admin, National Admin, State Admin |
| Item Master List | All items with type, category, code, name, UOM, manufacturer and source (manual entry or bulk upload) | Item Type, Category, Source | All roles |
| Bulk Upload Log | Each upload with date, uploaded by, file name, total rows, rows added, rows rejected and status | Date range, Uploaded by, Status | Super Admin, National Admin |
3.2 Audit Trail
| Action Logged | Details Captured |
|---|---|
| Hierarchy node created / edited / inactivated | User, date-time, node, old value, new value |
| Node to Store mapping created / changed | User, date-time, node, old store, new store |
| User created / edited / re-mapped / inactivated | User who made the change, date-time, affected user, old value, new value |
| Role and privilege changes | User, date-time, role, privilege changed, old value, new value |
| Bulk item upload | User, date-time, file name, row counts, the uploaded file and the error file |
| Item Master create / edit | User, date-time, item code, old value, new value |
| Login / logout / failed login | User, date-time, IP address |
Rules
- The audit log is read-only and cannot be edited or deleted by any role.
- The audit log is kept for at least 5 years (to be confirmed with the programme team).
- Super Admin can view the full audit log. National Admin and State Admin can view it only for their own node and the nodes below.
Format of exising inventory: