残薬管理ページの作成: Notion 解説 (10)

はじめに

いろんな科で薬を処方してもらうと、薬の更新期限がわかりにくくなります。常に残薬数を気にしていないと、通院時に薬を所望してもらうべきなのか判断に困ります。朝、その日分の薬を用意するときに、残薬量を目分量で把握はできるのですが、システム化しておきたいと考えていました。当初は、iPhone で管理できる専用アプリを作ろうとも考えていました。

今朝、電車の中で リマインダの作成: Notion 解説(7) - hkob’s blog のことを考えていたところ、同じ形で Formula で自動計算できるのではと考え、仕様を設計してみました。薬を処方してもらったときに、残薬数を追加するだけで、基本は情報をトップページに表示しておくだけという簡単なものができました。せっかくなので、設計手順を記載しておこうと思います。

設計指針

  • いつものようにデータベースは隠し、表は Linked database で必要なものだけを見せる形にする。
  • 薬は頻繁に変わる場合があるので、「有効」フラグをつけて再利用できるようにする
  • 日付に合わせて自動的に残薬数を計算するようにする
  • 現在の薬がいつまで持つのかも表示する (次の通院時まで持つのか、薬だけ処方しに行かなければいけないのかがわかる)

データベースの属性

データベースの各属性を示しておきます。最初は入力が必要な項目です。

  • Name [String]: 薬の名前を入れる。
  • 有効 [Boolean]: 現在服薬している場合にチェックを入れる。
  • 確認日 [Date]: 薬の残数を確認した日を入れる。薬が処方された時はその日付を入れる
  • 確認日残数 [Number]: 確認日の朝の時点の残薬数を入れる。薬が処方された時は、過去の残薬数に処方された数を追加する。
  • 一日使用数 [Number]: 1日に服薬する薬の量を入れる。

残りは全て Formula です。上記の情報から計算します。念のため、使用した Formula も記載しておきます。

  • 朝残数 [Formula]: 朝の時点の残薬数です。確認日から今日までの日数を数え、一日使用数を掛け算したものを確認日残数から引いているだけです。
prop("確認日残数") - dateBetween(dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), prop("確認日"), "days") * prop("一日使用数")
  • 夜残数 [Formula]: 朝の残数から1日使用数を引いているだけです。人によってどっちが知りたいかは不明なので、両方用意しておきました。ビューには必要な方のプロパティを表示すればいいと思います。
prop("朝残数") - prop("一日使用数")
  • 終了予定 [Formula]: 確認日残数を一日使用数で割った日付を確認日に足しているだけです。端数は無視しています。ちゃんとやるなら floor か ceil を付けるべきでしょうが、大体の日付がわかればよいかと思ったためです。
dateAdd(prop("確認日"), prop("確認日残数") / prop("一日使用数") - 1, "days")

データとしてはこんな感じになります。

f:id:hkob:20210324182553p:plain
残薬管理のデータベース

参照側のビューの設定

参照側は夜残数と終了予定さえ見えればいいかということでこんな感じになりました。毎日自動更新されるので、自分のよく見るページの片隅にでも置いておけばよいと思います。また、処方してもらった時だけデータベースを開き、確認日と残数だけ更新すればよいだけになります。

f:id:hkob:20210324182737p:plain
参照側のビュー

薬の画像などを追加して、ギャラリービューにしてもよいかもしれませんね。

f:id:hkob:20210324184128p:plain
ギャラリービュー

おわりに

自宅に帰ったら、実際に残薬を数えて使ってみたいと思います。なお、今回の残薬管理のテンプレートも公開しています。もし興味を持ったら、Duplicate してみてください。

また、今回は残薬管理としましたが、毎日コンスタントに減るものなら同じように使えるかと思います。さらにリマインダの技術をこれに適用すれば、○日ごとに○個減る消耗品管理機能にも拡張できそうです。要望があれば、こちらもサンプルテンプレートを作って配布してみたいと思います。


はてなブログに書いた Notion 記事一覧