-
Notifications
You must be signed in to change notification settings - Fork 3
Informedica.GenOrder.Lib
A library to map Order
to Equations
that can be solved by the Informedica.GenSolver.Lib
, using the Informedica.Units.Lib
to convert all values to base values.
A medical order is mainly used to prescribe medication, but can also be used to prescribe feeding, parenteral nutrition, maintenance fluids etc.. The prescribed order needs:
- Lookup, for example which medication products are available, how to dose them and how to prepare the prescription for administration.
- Often, there are also calculations involved. Particularly the calculation of dose and the preparation of the medication can be quite complicated.
- Finally, the whole process follows a cyclic pattern in which a administered prescription can lead to additions or alterations.
In order to be able to perform the necessary calculations in each step of the medication cycle a specific modelling of an Order
is needed.
The following model will be used for an Order
:
So an Order
consists of the following types:
-
Order
: models a specific order identified by anId
. -
Prescription: models how an
Orderis prescribed. An
Ordercan only be described in a single
Prescription`. -
Orderable
: something that can be "ordered". AnOrder
can have only oneOrderable
. -
Component
: anOrderable
can consist of 1 toc
Components
. -
Item
: aComponent
can contain 1 toi
Items
. AnItem
can have 1 tog
UnitGroup
variations. - Each
Orderable
,Component
andItem
can have one or moreDose
. The number ofDoses
depends on thea
Adust
of theOrder
This means that you can express a Dose
for example both per kg bodyweight and per BSA (body surface area). Each Item
can be expressed both in, for example, mass units and molar units.
The following quantities/values can be identified involved in calculation of an Order
:
No | Short Name | Long Name | Unit | Description |
---|---|---|---|---|
1 | id.n.g.itm.cmp.qty | ItemComponentQuantity | Item Unit | Quantity of Item in a Component |
2 | id.n.g.itm.cmp.cnc | ItemComponentConcentration | Item Unit / Component Unit | Concentration of Item in a Component |
3 | id.n.g.itm.orb.qty | ItemOrderableQuantity | Item Unit | Quantity of Item in an Orderable |
4 | id.n.g.itm.orb.cnc | ItemOrderableConcentration | Item Unit / Orderable Unit | Concentration of Item in an Orderable |
5 | id.n.g.itm.dos.qty | ItemDoseQuantity | Item Unit | Dose Quantity of an Item |
6 | id.n.g.itm.dos.tot | ItemDoseTotal | Item Unit / Time Unit | Dose Total of an Item |
7 | id.n.g.itm.dos.rte | ItemDoseRate | Item Unit / Time Unit | Dose Rate of an Item |
8 | id.n.g.itm.dos.ord | ItemDoseOrder | Item Unit | Dose Total in an Order |
9 | id.n.g.itm.dos.qty.adj | ItemDoseQuantityAdjust | Item Unit / Adjust Unit | Adjusted Dose Quantity of an Item |
10 | id.n.g.itm.dos.tot.adj | ItemDoseTotalAdjust | Item Unit / Adjust Unit / Time Unit | Adjusted Dose Total of an Item |
11 | id.n.g.itm.dos.rte.adj | ItemDoseRateAdjust | Item Unit / Adjust Unit / Time Unit | Adjusted Dose Rate of an Item |
12 | id.n.g.itm.dos.ord.adj | ItemDoseOrderAdjust | Item Unit / Adjust Unit | Total adjust Dose in an Order |
13 | id.n.g.itm.cnv | ItemUnitGroupConversionFactor | Item Unit / Item Unit | Conversion Factor from Base Unit Group |
14 | id.n.cmp.qty | ComponentQuantity | Component Unit | Quantity of Component |
15 | id.n.cmp.orb.qty | ComponentOrderableQuantity | Component Unit | Quantity of Component in an Orderable |
16 | id.n.cmp.orb.cnc | ComponentOrderableConcentration | Component Unit / Orderable Unit | Concentration of a Component in an Orderable |
17 | id.n.cmp.orb.cnt | ComponentOrderableCount | Count Unit | Amount of Components in an Orderable |
18 | id.n.cmp.ord.qty | ComponentOrderQuantity | Component Unit | Quantity of Component in an Order |
19 | id.n.cmp.ord.cnt | ComponentOrderCount | Count Unit | Amont of Components in an Order |
20 | id.n.cmp.dos.qty | ComponentDoseQuantity | Component Unit | Dose Quantity of an Component |
21 | id.n.cmp.dos.tot | ComponentDoseTotal | Component Unit / Time Unit | Dose Total of an Component |
22 | id.n.cmp.dos.rte | ComponentDoseRate | Component Unit / Time Unit | Dose Rate of an Component |
23 | id.n.cmp.dos.qty.adj | ComponentDoseQuantityAdjust | Component Unit / Adjust Unit | Adjusted Dose Quantity of an Component |
24 | id.n.cmp.dos.tot.adj | ComponentDoseTotalAdjust | Component Unit / Adjust Unit / Time Unit | Adjusted Dose Total of an Component |
25 | id.n.cmp.dos.rte.adj | ComponentDoseRateAdjust | Component Unit / Adjust Unit / Time Unit | Adjusted Dose Rate of an Component |
26 | id.orb.qty | OrderableQuantity | Orderable Unit | Quantity of Orderable |
27 | id.orb.ord.qty | OrderableOrderQuantity | Orderable Unit | Quantity of Orderable in an Order |
28 | id.orb.ord.cnt | OrderableOrderCount | Count Unit | Amount of Orderable in an Order |
29 | id.orb.dos.qty | OrderableDoseQuantity | Orderable Unit | Dose Quantity of an Orderable |
30 | id.orb.dos.tot | OrderableDoseTotal | Orderable Unit / Time Unit | Dose Total of an Orderable |
31 | id.orb.dos.rte | OrderableDoseRate | Orderable Unit / Time Unit | Dose Rate of an Orderable |
32 | id.orb.dos.qty.adj | OrderableDoseQuantityAdust | Orderable Unit / Adjust Unit | Adjusted Dose Quantity of an Orderable |
33 | id.orb.dos.tot.adj | OrderableDoseTotalAdjust | Orderable Unit / Adjust Unit / Time Unit | Adjusted Dose Total of an Orderable |
34 | id.orb.dos.rte.adj | OrderableDoseRateAdjust | Orderable Unit / Adjust Unit / Time Unit | Adjusted Dose Rate of an Orderable |
35 | id.pres.freq | PrescriptionFrequency | Count Unit / Time Unit | Frequency of administration |
36 | id.pres.time | PrescriptionTime | Time Unit | Duration of an administration |
37 | id.ord.adj | OrderAdjust | Adjust Unit | Quantity used to adjust dose |
38 | id.ord.time | OrderTime | Time Unit | Duration of the order |
- id: should be replaced by an unique identifier of the order
- n: should be replaced by the name of the
Item
andComponent
- g: should be replaced by the unit group used for the
Item Unit
- adj: should be replaced by the type of adjustment, bodyweight or BSA
These variables are used in the following list of Equations
:
No | Short Name | Long Name |
---|---|---|
1 | id.n.g.itm.cmp.qty = id.n.g.itm.cmp.cnc x id.n.cmp.qty | ItemComponentQuantity = ItemComponentConcentration x ComponentQuantity |
2 | id.n.g.itm.orb.qty = id.n.g.itm.orb.cnc x id.orb.qty | ItemOrderableQuantity = ItemOrderableConcentration x OrderableQuantity |
3 | id.n.g.itm.orb.qty = id.n.g.itm.cmp.cnc x id.n.cmp.orb.qty | ItemOrderableQuantity = ItemComponentConcentration x ComponentOrderableQuantity |
4 | id.n.g.itm.dos.qty = id.n.g.itm.cmp.cnc x id.n.cmp.dos.qty | ItemDoseQuantity = ItemComponentConcentration x ComponentDoseQuantity |
5 | id.n.g.itm.dos.qty = id.n.g.itm.orb.cnc x id.orb.dos.qty | ItemDoseQuantity = ItemOrderableConcentration x OrderableDoseQuantity |
6 | id.n.g.itm.dos.qty = id.n.g.itm.dos.rte x pres.time | ItemDoseQuantity = ItemDoseRate x PrescriptionTime |
7 | id.n.g.itm.dos.qty = id.n.g.itm.dos.qty.adj x id.ord.adj | ItemDoseQuantity = ItemDoseQuantityAdjust x OrderAdjust |
8 | id.n.g.itm.dos.tot = id.n.g.itm.cmp.cnc x id.n.cmp.dos.tot | ItemDoseTotal = ItemComponentConcentration x ComponentDoseTotal |
9 | id.n.g.itm.dos.tot = id.n.g.itm.orb.cnc x id.orb.dos.tot | ItemDoseTotal = ItemOrderableConcentration x OrderableDoseTotal |
10 | id.n.g.itm.dos.tot = id.n.g.itm.dos.qty x pres.freq | ItemDoseTotal = ItemDoseQuantity x PrescriptionFrequency |
11 | id.n.g.itm.dos.tot = id.n.g.itm.dos.tot.adj x id.ord.adj | ItemDoseTotal = ItemDoseTotalAdjust x OrderAdjust |
12 | id.n.g.itm.dos.rte = id.n.g.itm.cmp.cnc x id.n.cmp.dos.rte | ItemDoseRate = ItemComponentConcentration x ComponentDoseRate |
13 | id.n.g.itm.dos.rte = id.n.g.itm.orb.cnc x id.orb.dos.rte | ItemDoseRate = ItemOrderableConcentration x OrderableDoseRate |
14 | id.n.g.itm.dos.rte = id.n.g.itm.dos.rte.adj x id.ord.adj | ItemDoseRate = ItemDoseRateAdjust x OrderAdjust |
15 | id.n.g.itm.dos.ord = item.dos.tot x id.ord.time | ItemDoseOrder = ItemDoseTotal x OrderTime |
16 | id.n.g.itm.dos.ord = item.dos.rte x id.ord.time | ItemDoseOrder = ItemDoseRate x OrderTime |
17 | id.n.g.itm.dos.qty.adj = id.n.g.itm.cmp.cnc x id.n.cmp.dos.qty.adj | ItemDoseQuantityAdjust = ItemComponentConcentration x ComponentDoseQuantityAdjust |
18 | id.n.g.itm.dos.qty.adj = id.n.g.itm.orb.cnc x id.orb.dos.qty.adj | ItemDoseQuantityAdjust = ItemOrderableConcentration x OrderableDoseQuantityAdjust |
19 | id.n.g.itm.dos.qty.adj = id.n.g.itm.dos.rte.adj x pres.time | ItemDoseQuantityAdjust = ItemDoseRateAdjust x PrescriptionTime |
20 | id.n.g.itm.dos.tot.adj = id.n.g.itm.cmp.cnc x id.n.cmp.dos.tot.adj | ItemDoseTotalAdjust = ItemComponentConcentration x ComponentDoseTotalAdjust |
21 | id.n.g.itm.dos.tot.adj = id.n.g.itm.orb.cnc x id.orb.dos.tot.adj | ItemDoseTotalAdjust = ItemOrderableConcentration x OrderableDoseTotalAdjust |
22 | id.n.g.itm.dos.tot.adj = id.n.g.itm.dos.qty.adj x pres.freq | ItemDoseTotalAdjust = ItemDoseQuantityAdjust x PrescriptionFrequency |
23 | id.n.g.itm.dos.rte.adj = id.n.g.itm.cmp.cnc x id.n.cmp.dos.rte.adj | ItemDoseRateAdjust = ItemComponentConcentration x ComponentDoseRateAdjust |
24 | id.n.g.itm.dos.rte.adj = id.n.g.itm.orb.cnc x id.orb.dos.rte.adj | ItemDoseRateAdjust = ItemOrderableConcentration x OrderableDoseRateAdjust |
25 | id.n.g.itm.cmp.qty = id.n.g.itm.cnv x id.n.g.itm.cmp.qty | ItemComponentQuantity = ItemUnitGroupConversionFactor x ItemComponentQuantity |
26 | id.n.g.itm.cmp.cnc = id.n.g.itm.cnv x id.n.g.itm.cmp.cnc | ItemComponentConcentration = ItemUnitGroupConversionFactor x ItemComponentConcentration |
27 | id.n.g.itm.orb.qty = id.n.g.itm.cnv x id.n.g.itm.orb.qty | ItemOrderableQuantity = ItemUnitGroupConversionFactor x ItemOrderableQuantity |
28 | id.n.g.itm.orb.cnc = id.n.g.itm.cnv x id.n.g.itm.orb.cnc | ItemOrderableConcentration = ItemUnitGroupConversionFactor x ItemOrderableConcentration |
29 | id.n.g.itm.dos.qty = id.n.g.itm.cnv x id.n.g.itm.dos.qty | ItemDoseQuantity = ItemUnitGroupConversionFactor x ItemDoseQuantity |
30 | id.n.g.itm.dos.tot = id.n.g.itm.cnv x id.n.g.itm.dos.tot | ItemDoseTotal = ItemUnitGroupConversionFactor x ItemDoseTotal |
31 | id.n.g.itm.dos.rte = id.n.g.itm.cnv x id.n.g.itm.dos.rte | ItemDoseRate = ItemUnitGroupConversionFactor x ItemDoseRate |
32 | id.n.g.itm.dos.ord = id.n.g.itm.cnv x id.n.g.itm.dos.ord | ItemDoseOrder = ItemUnitGroupConversionFactor x ItemDoseOrder |
33 | id.n.g.itm.dos.qty.adj = id.n.g.itm.cnv x id.n.g.itm.dos.qty.adj | ItemDoseQuantityAdjust = ItemUnitGroupConversionFactor x ItemDoseQuantityAdjust |
34 | id.n.g.itm.dos.tot.adj = id.n.g.itm.cnv x id.n.g.itm.dos.tot.adj | ItemDoseTotalAdjust = ItemUnitGroupConversionFactor x ItemDoseTotalAdjust |
35 | id.n.g.itm.dos.rte.adj = id.n.g.itm.cnv x id.n.g.itm.dos.rte.adj | ItemDoseRateAdjust = ItemUnitGroupConversionFactor x ItemDoseRateAdjust |
36 | id.n.g.itm.dos.ord.adj = id.n.g.itm.cnv x id.n.g.itm.dos.ord.adj | ItemDoseOrderAdjust = ItemUnitGroupConversionFactor x ItemDoseOrderAdjust |
37 | id.n.cmp.orb.qty = id.n.cmp.orb.cnc x id.orb.qty | ComponentOrderableQuantity = ComponentOrderableConcentration x OrderableQuantity |
38 | id.n.cmp.orb.qty = id.n.cmp.qty x id.n.cmp.orb.cnt | ComponentOrderableQuantity = ComponentQuantity x ComponentOrderableCount |
39 | id.n.cmp.ord.qty = id.n.cmp.qty x id.n.cmp.ord.cnt | ComponentOrderQuantity = ComponentQuantity x ComponentOrderCount |
40 | id.n.cmp.ord.qty = id.n.cmp.dos.tot x id.ord.time | ComponentOrderQuantity = ComponentDoseTotal x OrderTime |
41 | id.n.cmp.ord.qty = id.n.cmp.dos.rte x id.ord.time | ComponentOrderQuantity = ComponentDoseRate x OrderTime |
42 | id.n.cmp.dos.qty = id.n.cmp.orb.cnc x id.orb.dos.qty | ComponentDoseQuantity = ComponentOrderableConcentration x OrderableDoseQuantity |
43 | id.n.cmp.dos.qty = id.n.cmp.dos.rte x pres.time | ComponentDoseQuantity = ComponentDoseRate x PrescriptionTime |
44 | id.n.cmp.dos.qty = id.n.cmp.dos.qty.adj x id.ord.adj | ComponentDoseQuantity = ComponentDoseQuantityAdjust x OrderAdjust |
45 | id.n.cmp.dos.tot = id.n.cmp.orb.cnc x id.orb.dos.tot | ComponentDoseTotal = ComponentOrderableConcentration x OrderableDoseTotal |
46 | id.n.cmp.dos.tot = id.n.cmp.dos.qty x pres.freq | ComponentDoseTotal = ComponentDoseQuantity x PrescriptionFrequency |
47 | id.n.cmp.dos.tot = id.n.cmp.dos.tot.adj x id.ord.adj | ComponentDoseTotal = ComponentDoseTotalAdjust x OrderAdjust |
48 | id.n.cmp.dos.rte = id.n.cmp.orb.cnc x id.orb.dos.rte | ComponentDoseRate = ComponentOrderableConcentration x OrderableDoseRate |
49 | id.n.cmp.dos.rte = id.n.cmp.dos.rte.adj x id.ord.adj | ComponentDoseRate = ComponentDoseRateAdjust x OrderAdjust |
50 | id.n.cmp.dos.qty.adj = id.n.cmp.orb.cnc x id.orb.dos.qty.adj | ComponentDoseQuantityAdjust = ComponentOrderableConcentration x OrderableDoseQuantityAdjust |
51 | id.n.cmp.dos.qty.adj = id.n.cmp.dos.rte.adj x pres.time | ComponentDoseQuantityAdjust = ComponentDoseRateAdjust x PrescriptionTime |
52 | id.n.cmp.dos.tot.adj = id.n.cmp.orb.cnc x id.orb.dos.tot.adj | ComponentDoseTotalAdjust = ComponentOrderableConcentration x OrderableDoseTotalAdjust |
53 | id.n.cmp.dos.tot.adj = id.n.cmp.dos.qty.adj x pres.freq | ComponentDoseTotalAdjust = ComponentDoseQuantityAdjust x PrescriptionFrequency |
54 | id.n.cmp.dos.rte.adj = id.n.cmp.orb.cnc x id.orb.dos.rte.adj | ComponentDoseRateAdjust = ComponentOrderableConcentration x OrderableDoseRateAdjust |
55 | id.orb.ord.qty = id.ord.cnt x id.orb.qty | OrderableOrderQuantity = OrderableOrderCount x OrderableQuantity |
56 | id.orb.ord.qty = id.orb.dos.tot x id.ord.time | OrderableOrderQuantity = OrderableDoseTotal x OrderTime |
57 | id.orb.ord.qty = id.orb.dos.rte x id.ord.time | OrderableOrderQuantity = OrderableDoseRate x OrderTime |
58 | id.orb.dos.qty = id.orb.dos.rte x pres.time | OrderableDoseQuantity = OrderableDoseRate x PrescriptionTime |
59 | id.orb.dos.qty = id.orb.dos.qty.adj x id.ord.adj | OrderableDoseQuantity = OrderableQuantityAdjust x OrderAdjust |
60 | id.orb.dos.tot = id.orb.dos.qty x pres.freq | OrderableDoseTotal = OrderableDoseQuantity x PrescriptionFrequency |
61 | id.orb.dos.tot = id.orb.dos.tot.adj x id.ord.adj | OrderableDoseTotal = OrderableDoseTotalAdjust x OrderAdjust |
62 | id.orb.dos.rte = id.orb.dos.rte.adj x id.ord.adj | OrderableDoseRate = OrderableDoseRateAdjust x OrderAdjust |
63 | id.orb.dos.qty.adj = id.orb.dos.rte.adj x pres.time | OrderableDoseQuantityAdjust = OrderableDoseRateAdjust x PrescriptionTime |
64 | id.orb.dos.tot.adj = id.orb.dos.qty.adj x pres.freq | OrderableDoseTotalAdjust = OrderableDoseQuantityAdust x PrescriptionFrequency |
65 | id.orb.qty = sum(id.n.cmp.orb.qty) | OrderableQuantity = Sum(ComponentOrderableQuantity) |
66 | id.orb.dos.qty = sum(id.n.cmp.dos.qty) | OrderableDoseQuantity = Sum(ComponentDoseQuantity) |
67 | id.orb.dos.tot = sum(id.n.cmp.dos.tot) | OrderableDoseTotal = Sum(ComponentDoseTotal) |
68 | id.orb.dos.rte = sum(id.n.cmp.dos.rte) | OrderableDoseRate = Sum(ComponentDoseRate) |
69 | id.orb.dos.qty.adj = sum(id.n.cmp.dos.qty.adj) | OrderableDoseQuantityAdjust = Sum(ComponentDoseQuantityAdjust) |
70 | id.orb.dos.tot.adj = sum(id.n.cmp.dos.tot.adj) | OrderableDoseTotalAdjust = Sum(ComponentDoseTotalAdjust) |
71 | id.orb.dos.rte.adj = sum(id.n.cmp.dos.rte.adj) | OrderableDoseRateAdjust = Sum(ComponentDoseRateAdjust) |