Third-Culture-Software / bhima

A hospital information management application for rural Congolese hospitals
https://docs.bhi.ma/
GNU General Public License v2.0
220 stars 105 forks source link

(design) Stock Management #1072

Closed jniles closed 7 years ago

jniles commented 7 years ago

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:

  1. Stock Dashboard - a pharmacy dashboard to manage its stock
  2. Stock Registry - list of all items currently in stock
  3. Stock Movements - lost of all movements of stock (EXIT and ENTRY)
  4. Stock Entry - Enter Ordered, Transferred, or Returned Stock
  5. Stock Exit - Exit Invoiced, Transferred, or Lost Stock
  6. Stock Adjustment - Increase or Decrease Depot Stock
Stock Dashboard

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:

  1. [info] Incoming Transfer (when another depot transfers to the current depot)
  2. [info] Incoming Purchase (when a purchase order is made with a depot as the delivery point)
  3. [info] Stock Overage - when the amount of stock is greater than could be consumed by the historical usage.
  4. [warning] Stock Near Expiry - when some lots are near their expire day
  5. [warning] Stock Near Depletion - when some inventory items are almost used up.
  6. [danger] Stock Out - when some inventory items are completely out of stock.
  7. [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

stock registry Fig 2: Stock Registry Accessed from the Stock Dashboard stock registry filters applied 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:

  1. status - None, Expired, Low Stock, Near Expiry
  2. lot number - an ID for the lot.
  3. depot - the depot in which the lot is contained.
  4. inventory item - finds all stock of a particular inventory item.
  5. 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

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

stock entry Fig 5: Stock Entry Module stock entry purchase Fig 6: Stock Entry from Purchase Order

This module allows a pharmacist to import stock into the depot from:

  1. Purchase Orders
  2. Stock Transfers
  3. Service Returns
  4. 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

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:

  1. A Depot (Stock Transfer)
  2. A Patient (Patient Distribution)
  3. A Service (Service Distribution)
  4. 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

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?

jniles commented 7 years ago

Closing this as outdated - Stock Management landed in master in #1353