This issue is to track Stock Management and its implementation in 2.x. Note that this issue does not cover changes to Purchase Orders and Inventory (#1064, #1065, #1063).
Stock Management Modules
The following modules need to be developed:
Stock Dashboard - a pharmacy dashboard to manage its stock
Stock Registry - list of all items currently in stock
Stock Movements - lost of all movements of stock (EXIT and ENTRY)
Stock Entry - Enter Ordered, Transferred, or Returned Stock
Stock Exit - Exit Invoiced, Transferred, or Lost Stock
Stock Adjustment - Increase or Decrease Depot Stock
Stock Dashboard
Fig 1: Stock Dashboard
The stock dashboard provides a depot's view of their stock situation. It has links to Stock Entry, Stock Exit, and Stock Adjustment modules, a graph to show the groups of inventory in the depot, a panel for information about the stock quantities and alerts, and a list of recent movements concerning the depot.
The following alerts should be displayed:
[info] Incoming Transfer (when another depot transfers to the current depot)
[info] Incoming Purchase (when a purchase order is made with a depot as the delivery point)
[info] Stock Overage - when the amount of stock is greater than could be consumed by the historical usage.
[warning] Stock Near Expiry - when some lots are near their expire day
[warning] Stock Near Depletion - when some inventory items are almost used up.
[danger] Stock Out - when some inventory items are completely out of stock.
[danger] Stock Expired - when some lots in the pharmacy are expired.
There should also be links to the Stock Registry to show the stock currently available in the depot. There should be a link to all movements associated with the depot.
Stock Registry
Fig 2: Stock Registry Accessed from the Stock DashboardFig 3: Stock Registry Filtered for Stock Alerts
This module contains all the stock in the enterprise. By default, it should only show the stock with quantity greater than 0.
The Stock Registry should have the following filters:
status - None, Expired, Low Stock, Near Expiry
lot number - an ID for the lot.
depot - the depot in which the lot is contained.
inventory item - finds all stock of a particular inventory item.
inventory group - finds all stock of a particular inventory group.
The Stock Registry should allow inline filtering of the displayed data. It should allow printing to PDF.
Stock Movements
Fig 4: Stock Movements (Registry)
This module should list all the movements in and out of depots, as well as their source. It should have filters for the columns. It should allow printing to PDF.
Stock Entry
Fig 5: Stock Entry ModuleFig 6: Stock Entry from Purchase Order
This module allows a pharmacist to import stock into the depot from:
Purchase Orders
Stock Transfers
Service Returns
Patient Returns
The "Returns" case comes into play when an error occurred with a patient distribution or a service finds that it had far too much stock.
Both Purchase Orders and Stock Transfers should allow the user to select a Purchase Order or Stock Transfer record to import and automatically fill out all rows possible. For Stock Transfer, this will be a completed form. For Purchase Orders, a pharmacist will still need to create the lots before submitting.
Stock Exit
Fig 7: Stock Exit
The Stock Exit module behaves the same as the Stock Entry module, but allows a user to exit stock to:
A Depot (Stock Transfer)
A Patient (Patient Distribution)
A Service (Service Distribution)
A Loss
The Patient Exit should optionally allow a user to tag an invoice or several invoices billed to the patient, ordered by date. These are not required, but the user may import the inventory items from the invoice(s) they have selected.
Stock Adjustment
Fig 8: Stock Adjustment
Stock adjustments account for any increase/decrease in stock. These should allow a user to specify a reason for the stock adjustment, and allow them to create lots or diminish lots as needed.
Note:
The modules Stock Entry, Stock Exit, and Stock Adjustment should produce receipts that can be printed and signed by the pharmacist and anyone else involved in the transaction.
This issue is to track Stock Management and its implementation in 2.x. Note that this issue does not cover changes to Purchase Orders and Inventory (#1064, #1065, #1063).
Stock Management Modules
The following modules need to be developed:
Stock Dashboard
Fig 1: Stock Dashboard
The stock dashboard provides a depot's view of their stock situation. It has links to Stock Entry, Stock Exit, and Stock Adjustment modules, a graph to show the groups of inventory in the depot, a panel for information about the stock quantities and alerts, and a list of recent movements concerning the depot.
The following alerts should be displayed:
There should also be links to the Stock Registry to show the stock currently available in the depot. There should be a link to all movements associated with the depot.
Stock Registry
Fig 2: Stock Registry Accessed from the Stock Dashboard Fig 3: Stock Registry Filtered for Stock Alerts
This module contains all the stock in the enterprise. By default, it should only show the stock with quantity greater than 0.
The Stock Registry should have the following filters:
status
- None, Expired, Low Stock, Near Expirylot number
- an ID for the lot.depot
- the depot in which the lot is contained.inventory item
- finds all stock of a particular inventory item.inventory group
- finds all stock of a particular inventory group.The Stock Registry should allow inline filtering of the displayed data. It should allow printing to PDF.
Stock Movements
Fig 4: Stock Movements (Registry)
This module should list all the movements in and out of depots, as well as their source. It should have filters for the columns. It should allow printing to PDF.
Stock Entry
Fig 5: Stock Entry Module Fig 6: Stock Entry from Purchase Order
This module allows a pharmacist to import stock into the depot from:
The "Returns" case comes into play when an error occurred with a patient distribution or a service finds that it had far too much stock.
Both Purchase Orders and Stock Transfers should allow the user to select a Purchase Order or Stock Transfer record to import and automatically fill out all rows possible. For Stock Transfer, this will be a completed form. For Purchase Orders, a pharmacist will still need to create the lots before submitting.
Stock Exit
Fig 7: Stock Exit
The Stock Exit module behaves the same as the Stock Entry module, but allows a user to exit stock to:
The Patient Exit should optionally allow a user to tag an invoice or several invoices billed to the patient, ordered by date. These are not required, but the user may import the inventory items from the invoice(s) they have selected.
Stock Adjustment
Fig 8: Stock Adjustment
Stock adjustments account for any increase/decrease in stock. These should allow a user to specify a reason for the stock adjustment, and allow them to create lots or diminish lots as needed.
Note:
The modules Stock Entry, Stock Exit, and Stock Adjustment should produce receipts that can be printed and signed by the pharmacist and anyone else involved in the transaction.
@IMA-WorldHealth/bhima-core What do you think?