After further circulating the "product model" with representatives of GS1, USAID, BI&A LRM (Intellicog - Logical Reference Model) it has become clear that a few changes to the OpenLMIS "product model" would help put the community and the code-base a step further in learning from best practices.


High-level changes:



Changes in orange:



Final diagram:



Examples


TradeItem fulfills for TradeItem (EDI TradeItem Align)


TODO, however this should mostly follow EDI Item Data Notification - which for OpenLMIS would start as a direct substitution model.


TradeItem fulfill for CommodityType


Given a classification system such as UNSPSC for Mefloquine (used to prevent/treat Malaria):

Drugs and Pharmaceutical Products (51100000) → Antiprotozoals (51101900) → Mefloquine (51101902)


In OpenLMIS, this hierarchy would represent each level in the above as a CommodityType.  There are of course a number of manufacturers/brands of Mefloquine that would be represented as TradeItems.  e.g. Altimef and Confal (source).  To create a fulfilable relationship between Altimef and Confal with Mefloquine we need the following:


Therefore these links rely heavily on the information that may be found in TradeItems and classification systems.  Where we need to go further, so that we may list Mefloquine on our order form, we must create Orderable's for Mefloquine that work with the particulars of the TradeItem.  If Altimef comes in individual pills of 100mg, and Confal comes in strips of 2 pills of 25mg then we will need to create Orderables in OpenLMIS for Mefloquine that will match with those Dispensibles from Altimef and Confal.