ぺーぺーぷーぷーな日々

Claris FileMaker と戯れる日々です。

病床管理で私が基本にしている3つのテーブル

患者情報の管理、とりわけ病床管理で私が基本にしているのは、以下の3つのテーブルです。


1. 患者基本情報テーブル

  • 患者番号、氏名、生年月日、住所、主治医など

2. 入退院(病床移動)履歴テーブル

  • 患者番号、入院日時、入院時病棟、主病名、診療科、退院日時、転帰、部屋移動、病棟転棟など

3. 病床稼働履歴テーブル

  • 患者番号、日付、病棟病床など


1.患者基本情報テーブル、2.入退院履歴テーブルの2つのテーブルは、どうしても必要となるテーブルだと思います。在庫管理に置き換えると、商品マスタと入出庫履歴のようなものです。私はこれに加えてもう1つ、3.病床稼働履歴テーブルを作っています。
この 3.病床稼働履歴 というのは、1つのレコードが「○月○日、○病棟の○病室に○○さんが在院していた」という履歴で、1と2を元に、毎日、スクリプトでレコードを生成しています。その日毎の入院患者名簿を作っているというわけです。病床が稼働している数だけレコードを生成してしまおうというわけです。このレコード数をカウント関数で数えることで、病床稼動数を算出しています。


(追記:その後も集計機能は発展)
kei0114.hatenablog.com


この「病床稼働履歴を生成する」という考えに至った経緯ですが、

  • 平均在院日数や病床稼働率を計算するためには、入退院の件数をカウントしなくてはならない、
  • さらに、その日毎の在院患者数をカウントしなくてはならない。
  • 在院患者のカウントは、病床稼動履歴を作って count関数でレコードをカウントするのが簡単ではないか。
  • そのために、日々の入退院情報など入力・蓄積するための仕組みを作ろう。

と考えたわけです。


毎日、在院患者の数だけレコードを生成するなんて効率が悪い、と思われるとかもしれませんが、これはこれで作っておいた方が用途がいろいろあったりするのです。看護必要度や医療区分、日常生活自立度など病棟種別ごとの指数も、この考えを転用して履歴を生成しています。
基本的な仕組みをFileMakerでつくり、できる限りの定型作業を自動化した結果、現在、手作業として毎日必要になるのは、1日分の入退院や病床移動の入力のみです。平均在院日数や稼働率の計算は、上記3つのテーブルを元にして、毎日、FileMakerが自動集計してくれる(ポチッとな)、という状況を作り、今に至っています。
こうして集計された結果を元に、「今月、平均在院日数を19日以内にするためには、あと○件の入退院が必要」といった予測を立てます。
サマリーや入院患者名簿や記録用紙を作成するにしても、これら3つのテーブルが毎日機能していれば、後々の作業が効率的に行えます。まさに、すべての前提であり基本となっています。


以前は、平均在院日数や病床稼働率の計算をするために、

  • ○月○日
    • 今日の入院数○人、退院数○人、稼動数○人

といった具合に「数字」を記録として残し、それを元に計算していたのですが、紙とExcelでこれをやるとなると大変でした。そして「数字の羅列」だけが主な記録として残っても、そこから元データ(誰が入院したのか)を参照することもできず、どうしても手間がかかっていたものです。病棟日誌も紙に手書きでしたし。


最初のころは、こういった仕組みを作ろうにもデータベースのリレーションの組み方などが、さっぱりわかりませんでした。でも、1人の患者に対して複数の入退院履歴&病床移動履歴という「1対多」の関係が飲み込めれば、それほど難しいわけではありません。ここが私には最初の壁でした。
その他、ちょっとした技も必要ではありますが、上記3つのテーブルの仕組みは、考え方としては単純なので、誰にでも再現は可能ですし、後は地道な手間ひまだけが必要というところでしょうか。


まー、もっと効率のいい方法は、きっと存在すると思うのですが。
私には天才的なひらめきなど全く無いもんですから。


下の画像は、基本情報、病床移動、集計の画面です。


※追記
その後、「2. 入退院(病床移動)履歴テーブル」には少し手を加えています。
簡単に言えば、1レコードにその前後の情報も付加させて、1レコードだけでも情報をつかみやすいよう加工してあります。