Design of Dispensible


Background

A Dispensable is the atomic thing that is given/dispensed to a patient.  How we describe that Dispensable depends on the thing:

  • Drug (pain killers, antibiotics, etc)
    • Dispensing Unit (e.g. each, 10 tab strip)
    • Form (e.g. pill, tablet, capsule)
    • Strength and Dosage Unit (e.g. 500mg, 5ml)
  • Vaccine (e.g. Oral Polio, PCV13, etc)
    • Dispensing Unit (e.g. each, 10 tab strip)
    • Form (e.g. pill, drops, injection)
    • Dosage Unit (e.g. ml)
  • Device
    • Dispensing Unit (e.g. each, 10 tab strip)
    • Form (e.g. Device)


Some examples of Dispensable:

  • Pills that are taken out of their bottle (a primary package) to be dispensed at the pharmacy to a patient (perhaps in other bottles)
  • An injection of a Vaccine that's taken from a vial (a primary package), into a syringe (a device for helping administer the dose), and injected into a patient.
  • A syringe (that if individually wrapped and shipped may also be the primary package), that's used to administer a substance
  • A test (e.g. Malaria rapid test), that a patient may self-administer


It's important to note that not all Dispensables are actually dispensed to a patient, some may be to help treat a patient (e.g. supplies for tests, syringes, etc).  This still draws a distinction between medical commodities and say equipment (microscopes, cold storage, etc) as the number of patients treatable with a Dispensable is more definitively understood.



Design Diagrams


Basic Structure


Global Product and Trade Item

A part of the design contract of OrderableProduct.canFulfil(OrderableProduct) is that the Dispensable between both OrderableProduct's is the same.  In fulfilling this contract, when a TradeItem is associated to a GlobalProduct, that contract must enforce that the Dispensable between the two is the same.  e.g. if a GlobalProduct Ibuprofen has Dispensable A, and its TradeItem Advil has Dispensable B, then logically A.equals(B) is true.

OpenLMIS: the global initiative for powerful LMIS software