The instructions for different drug prescriptions can vary greatly. Implementations of this class
represent different ways to code those instructions. For example the simple dosing implementation
covers a common case like "X dose, with Y frequency, for Z duration" whereas a different
implementation would cover
"200mg for the first week, then up to 400mg for the rest of the prescription". Implementations of
this class should store their data in the appropriate fields on the DrugOrder and Order object.
In some cases they could store JSON in the dosing instructions field.
NOTE: Any class that implements this interface should have a default constructor.
Get human-readable version of dosing instructions for a particular locale All dosing
instructions can be localized, so the result, especially any free text may remain in the
original language. In general, it's expect that most implementations will write orders in a
single language and then want to translate instructions to the patient's preferred language
when printing orders for the patient. In all other cases, it will want to call this method
with the user's locale (i.e., context.getLocale()).
Implementations of this interface may be able to infer the auto-expiration date from other
fields on the DrugOrder. If the expiration date cannot be determined, then this method
may return null (i.e., null means duration of order is unknown).