Storage Conditions and Shelf Life
Storage Conditions and Shelf Life
Business Requirements (general and from IDMP - eStability, please add yours)
A product can be stored. The storage can have environmental conditions - temperature, humidity, pressure, light. A product can be stored in different "states" - opened, unopened, reconstituted, diluted, reconstituted and diluted (e.g. a medicinal product powder that has been initially dissolved (reconstituted) and then added to a carrier infusion solution). This may be a modification of the container (as in the opened/unopened) or a modification of the product itself (as in dilution etc.) A product can have a "shelf life" - the period of time that it is deemed to be usable in a particular state and storage conditions. Note this is different from an expiry date which is an actual date (time stamp) that a manufacturer or other organisation gives to an instance of a product (which may be a whole batch of instances).
It is important to make sure to attach these properties to the right entity. (Example where this goes wrong: when naively associating "sterility" with a device, one overlooks that no device is sterile outside of its package.)
What exists currently in the RIM
There is a Storage act (STORE) that covers "the act of putting something away for safe keeping". The "something" may be physical object such as a specimen, or information, such as observations regarding a specimen".
There is an expirationTime on the Manufactured Material entity class (and children, such as DEV and CONT). This is defined as "the date and time after which the manufacturer no longer ensures the safety, quality, and/or proper functioning of the material". It has a datatype of IVL<TS> (not TS).
There is a stabilityTime on the Manufactured Material entity class (and children, such as DEV and CONT). This is defined as "the duration over which the material is considered useable after it is activated". There are UsageNotes for this attribute: <<If a kind of material is described (determinerCode = KIND), only the width of that interval can be known, i.e., the duration after opening the reagent container at which the reagent substance is considered useable for its normal testing purpose. The timestamps cannot be taken to refer to calendar points in time, and the stabilityTime.low TS may be zero, stabilityTime.high being the scalar magnitude of the duration. For an actual instance of the reagent (determinerCode = Instance), the stabilityTime.low TS marks the calendar time at which the reagent bottle has been opened (or the reagent was otherwise activated). The characteristic (KIND) duration is added to stabilityTime.low to determine the stabilityTime.high TS, the point in time beyond which the reagent is no longer considered useable for its normal purpose.>>
Discussion of Possible Solutions:
Shelf life could be a Characteristic with control-variables, and using the storage act may be appropriate. The actual shelf-life is initially an observation, and a complicated one at that. You have to run a test. You need to know what to check for, break-down products, environmental contamination, growth of unavoidable micro-organisms, whatever it is. The shelf life will be something cut out from a frequency distribution, it will be a probability distribution and finally may be cut into a hard range by picking a confidence level.
If storage object has a shelf-life attribute, then we can do it with the storage object and control variables. If the storage object is just an act, then we can consider to replace it with that shelf-life observation.