The heart of any institution is its people, the OpenHMIS project is creating tools to help that "heart" beat more smoothly. Providing quality medical services is a challenge and, while OpenMRS is a great help toward meeting that challenge, it does not directly address the administrative needs of a medical institution. This is where the OpenHMIS modules come in: we are creating OpenMRS modules that provide the tools to help institutions run more effectively.
The OpenHMIS Inventory Module is a simple inventory management system that runs within OpenMRS. As the name implies, it is a tool to help with inventory management and is at the center of many other institutional services such as Billing, Pharmacy, and Lab. This module specifically targets small-mid sized institutions that need a simple inventory management system and thus does not (currently) provide all the features that a more full-fledged inventory management system has. The main features include:
Future versions may include support for:
|1.6 - 2.0||29-Apr-2015||1.6 - 2.0 Notes|
The REST Web Services module must first be configured if this has not already been done.
The configuration for the Inventory Module is done through the Inventory Settings page:
There are only two settings that can be configured:
Auto Generate Operation Number: Whether or not to generate an operation number when a new stock operation is created.
Identifier Source: The Idgen module identifier source used to generate the operation number.
Once the module has been installed, an OpenHMIS Inventory Module section will appear on the administration page with the following links:
|Inventory Role Creation||Add or remove the required privileges to use the inventory module to/from a role or create a new role with those privileges.|
|Manage Items||Add, edit, retire, and purge the items (that is, the products and services) that are used by your institution.|
|Manage Departments||Add, edit, retire, and purge the item departments.|
|Manage Institutions||Add, edit, retire, and purge the external institutions that item stock can be distributed to.|
Add, edit, retire, and purge the stockrooms and view stockroom details.
|Manage Operation Types||Add, edit and retire the stock operation types.|
|View Stock Operations||View and process stock operations.|
|Generate Item Mappings||Generate item to concept mappings.|
To effectively use the inventory module, it is important to understand the different objects and how they relate.
|Item||The information about a product or service that can be purchased or tracked at an institution.|
|Item Stock||A physical item that is located in a stockroom or distributed to an external institution or patient. This includes a quantity and an optional expiration date. Item stock can only be created for items that are marked as having physical inventory.|
|Stockroom||A location where item stock is stored.|
|Stock Operation Type|
The kind of stock operation to be performed. The module currently includes six stock operation types:
|Stock Operation||Moves one or more item stock into, within, or out from the institution, as defined by the Stock Operation Type.|
|Transaction||Records the individual changes in item stock in a given stockroom. For example, if a single item stock is transferred from the Main stockroom to the Pharmacy stockroom, two transactions would be created; one for the item stock deduction from Main and another for the item stock addition to Pharmacy.|
|Batch Operation||Refers to the Stock Operation when a given quantity of Item Stock was added into the system.|
Stock operations have a status which determines the current state:
|New||The operation has been created but not yet processed by the system.|
|Pending||The operation has been started and is currently in progress.|
|Completed||The operation has been finished.|
|Canceled||The operation was canceled and any processing that was done while pending is reversed.|
As the status of the stock operation changes, the requested item stock changes are applied to the source and/or destination stockrooms as defined by the stock operation type.
|Adjustment||Item stock changes negated and applied to source||Nothing||Item stock changes reversed|
|Disposed||Item stock changes applied to source||Nothing||Item stock changes reversed|
|Distribution||Item stock changes negated and applied to source||Nothing||Item stock changes reversed|
|Receipt||Nothing||Item stock changes applied to destination||Nothing|
|Return||Nothing||Item stock changes applied to destination||Nothing|
|Transfer||Item stock changes negated and applied to source||Item stock changes applied to destination||Source item stock changes reversed|
Much of inventory management revolves around stockrooms and item stock. The following section explains how the Inventory Module tracks changes to item stock and how to resolve data issues.
The OpenHMIS Inventory Module is a permissive inventory system and will allow negative item stock quantities in a stockroom.
This is allowed so that the system does not get in the way of work that needs to be done. However, it is important to note that if this is allowed to go unchecked it will result in data that is meaningless. If the inventory system indicates a different item stock quantity than actually exists, there are two ways to correct this:
|The second of these options is almost always preferable as it reflects what actually occurred rather than just adjusting the quantities to "magically" match. A future version of the inventory module will support creating historical stock operation that can be applied so that all subsequent stock operations get updated appropriately.|
The item stock quantities that can be viewed on the stockroom detail page can be a little deceptive. The item stock quantity is actually broken down by both the item stock expiration date (if there is one) and the originating operation (called the Batch Operation), we call the the Item Stock Detail. These details are not currently visible on the Stockoom page where only the cumulative total for each item stock is visible, but the item stock details will be added in a future version.
When transferring or distributing item stock it is assumed that item stock from the oldest batch operation are moved first and then, if there is still any remaining quantity to move, the next oldest item stock batch operation is used and so on. The same logic applies for item stock with an expiration, except that the item stock that will expire the soonest is automatically chosen unless the user selects expiration when creating a new stock operation.
When Auto is selected rather than a specific expiration the system will satisfy the item stock request from the closest expiration first, then the next closest, and so on until the requested quantity has been met.
|Unless there is some specific reason that the closest to expire item stock is not being transfered or distributed, the Auto option should be selected. This allows the system to self correct in the situation where the quantity becomes negative and the missing operations are then created.|
When viewing a stock operation with item stock details that were automatically selected the details will not show the specific batch or expiration, instead they will be listed as (Auto).
The Inventory Dashboard is the landing page to perform inventory-related activities. From this dashboard users can view and process their stock operations as well as create new stock operations. The dashboard is accessed from the Inventory link on the right side of the OpenMRS header:
The dashboard displays a list of the Pending stock operations for current user:
Clicking on a stock operation item will display the operation details:
The stok operation details section will appear below the list. In it you can view all the operation information, the item stock that is part of the operation, and process (that is, Complete or Cancel) the operation.
Clicking on the New Operation link will display a form to create a new stock operation:
To create a new operation:
Adding Item Stock works in much the same way as adding items to a bill in the Cashier Module. To search, simply start typing the name of the item you want to add and a list will display the items found:
With the autocomplete list displayed, either use the arrow keys or mouse to select the desired item and press the <Tab> or <Enter> key to add the item:
You can now enter the item stock quantity and, if the item is expirable, the expiration. Depending on the operation type, the expiration will either be a dropdown or a date entry area. Stock operations with no source stockroom (at the time of writing that is just the Receipt operation type) require the entry of the expiration for all expirable items. If a default expiration period has been defined for the item (in days), the expiration will default to that number of days from the current date.
Clicking on the Create Operation button will save the operation and set the status to Pending.