推定のしくみ
Android版・CLI版とも同じ計算です。
1本あたりの日数(通常期間)
イレギュラーでない、使い切った記録のうち 直近3本の平均 を整数日に四捨五入して使います。 「平均より直近の実績のほうが実態に近い」という経験からです。
途中廃棄・紛失・中断などはイレギュラーにして除外できます。 イレギュラーが1つあれば、それより前の実績はたどりません
1日の点眼回数などが変わったときは「点眼パターン変更」(CLI版は
pattern)で直近の1本をイレギュラーにし、 変更後の実績だけで推定します実績が1本・2本しかないときは、その1本・2本の平均を使います。実績が無いときは推定できず、必要本数は「相談」になります
極端に短い記録(中央値の 0.7 倍未満)は自動で除外します
開封後の廃棄期限は推定の上限にはしません。 うっかり使い続けることもあるので、超過したら知らせるだけにしています
必要本数
開封分残日数 = 通常期間 − (来院日 − 開封日)
在庫残日数 = 開封分残日数 + 未開封の本数 × 通常期間
足りない日数 = 次回来院日までの日数 − 在庫残日数
必要本数 = ceil(足りない日数 ÷ 通常期間) + 予備1本 (マイナスは0)
必要本数は、処方をお願いする本数です。0 は処方不要です
来院日の時点で通常期間を超えて使っている1本は、残り0日として数えます。開封中の1本が無いときも0日です
予備を1本見込むので、足りない日数が少しマイナス(余る)でも、1本分(通常期間)以上余らない限り必要本数は1になります
1回の処方で出してもらえる本数の上限は、条件がはっきりしないので設けていません
計算の例
通常期間が26日の目薬を 9/11 に開封し、来院日が 9/25、次回来院日が60日後、未開封が0本の場合:
開封分残日数 = 26 − (9/25 − 9/11 = 14日) = 12日
在庫残日数 = 12 + 0 × 26 = 12日
足りない日数 = 60 − 12 = 48日
必要本数 = 48 ÷ 26 = 1.8… を切り上げて2本、予備1本を足して 3本
定数
予備・次回来院日の既定の期間は、次の定数で変えられます
(次回来院日の既定の期間は、Android版の「設定」や CLI版の interval でも変えられます)。
定数 |
場所 |
既定値 |
|---|---|---|
|
|
1 |
|
|
60(日。来院日から次回来院日まで) |