みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも勉強させていただいております
今回質問があり、投稿させていただきました
Windows10
FMP Ver12
の環境で使用しております
病院における救命センターへの入院台帳を作成しており
現在
テーブルとして
①入院台帳
②血液検査結果テーブル
を作成してリレーションを組んで行っています
入院台帳には
ICU(集中治療室)への入院日の順に順次患者登録を行っており
患者によっては1度の入院で病状によってはICUに入ったり一般病棟へ移ったりを繰り返しているような患者もいます
そのようなデータで入院回数を算出させたいのですが
台帳番号 ID 名前 入院日 ICU入室日 ICU退室日 退院日 病名.....
000001 0001 日本太郎 2020.01.01 2020.01.02 2020.01.04 2020.01.30
000002 0012 日本花子 2020.01.02 2020.01.02 2020.01.06 2020.01.10
000003 0001 日本太郎 2020.01.01 2020.01.06 2020.01.08 2020.01.30
000004 0102 日本次郎 2020.01.04 2020.01.06 2020.01.11 2020.01.16
000005 0232 米国太郎 2020.01.04 2020.01.07 2020.01.17 2020.01.22
000006 0111 日本三郎 2020.01.05 2020.01.07 2020.01.14 2020.01.16
000007 0042 日本四郎 2020.01.05 2020.01.07 2020.01.25 2020.01.30
000008 0001 日本太郎 2020.01.01 2020.01.06 2020.01.08 2020.01.30
000010 0001 日本太郎 2020.03.01 2020.03.02 2020.03.04 2020.03.20
000011 0001 日本太郎 2020.03.07 2020.03.11 2020.03.16 2020.03.20
たとえば上記のようなDataの場合
000001 0001 日本太郎 2020.01.01 2020.01.02 →入院1回目、ICU入室1回目、全期間を通してICU入室1回目
000002 0012 日本花子 2020.01.02 2020.01.02 2020.01.06 2020.01.10
000003 0001 日本太郎 2020.01.01 2020.01.06 →入院1回目、ICU入室2回目、全期間を通してICU入室2回目
000004 0102 日本次郎 2020.01.04 2020.01.06 2020.01.11 2020.01.16
000005 0232 米国太郎 2020.01.04 2020.01.07 2020.01.17 2020.01.22
000006 0111 日本三郎 2020.01.05 2020.01.07 2020.01.14 2020.01.16
000007 0042 日本四郎 2020.01.05 2020.01.07 2020.01.25 2020.01.30
000008 0001 日本太郎 2020.01.01 2020.01.06 →入院1回目、ICU入室3回目、全期間を通してICU入室3回目
000010 0001 日本太郎 2020.03.01 2020.03.02 →入院1回目、ICU入室4回目、全期間を通してICU入室4回目
000011 0001 日本太郎 2020.03.07 2020.03.11 →入院2回目、ICU入室1回目、全期間を通してICU入室5回目
日本太郎が複数回入院歴があるため
それらに対して入院回数およびICUへの入室回数を求めたいのです
台帳自体がICUの入室をもとに作成しているため
全体を通してうのICUへの入室回数は
自己リレーションシップを組んで、関数でCount(IDのフィールド)、リレーションシップの検索条件に台帳番号≦台帳番号で何とか表示させることができました
しかし、入院回数やその入院の中でICUへの入室回数がどうやってもうまくできませんでした
いい方法がございましたら、ご教示いただけますと幸いです。
Offline
1入院ごとに入院IDを振れば簡単では。
それごとのテーブルがあればもっと簡単でしょう。
Offline
チポ様
返信ありがとうございます。
たしかに、一つの入院ごとで作っていればそういったことも可能なのでしょうが
もともと前任者から、以前に作成されていたデータの引継ぎを行ったため
そのようなデータ型になっておりました。
数千件あるため、入院毎で組みなおすのが大変なため、手っ取り早く
一患者ごとで入院回数をうまいことできないものかと思い投稿した次第です。
エクセルに落とし込んで、エクセルの方でソートをかけて、
IF関数で入院回数、入室回数を算出させて再びFMPの方にインポートする形で入院回数は何とか算出できそうですが、
今後もそれをちょこちょこ繰り返していくのが手間なこともあり
自動的に算出できればと思った次第です。
Offline
集計機能を使えば、簡単です。
いまのテーブルで、集計用のレイアウトを作ります。ガイドを使えば簡単ですが、。
患者IDをキーにした小計パート、その中に患者IDと患者名をおきます。
入院日をキーにした小計パートを作り、入院日をおきます。
ボディーパートには、台帳番号 ICU入室日 退室日をおきます。
患者ID、入院日でソートすればいいでしょう。
台帳番号をカウントする集計フィールドを作り、入院日小計パートにおけば、数えてくれます。
Offline
集計レイアウトでは、
単純に各患者の入院回数を数えることはできませんね。
前レスの提案のテーブルは現テーブルからインポートで簡単に作れますよ。
新たにテーブルを作り、フィールドを
ID
入院日
IDと入院日
入力値の自動化の計算式
ID & 入院日(日付の書式をそろえるため YYMMDDのようなものがいいでしょう)
入力値の制限
ユニーク・常時
として、もとのテーブルの全レコードをインポートすると、
Dと入院日の値の重複を排除してレコードが作られます。
このテーブルの同IDのレコード数が入院回数です。
Offline
入院回数も必要なんですか。
最近のバージョンでしたら、テキストの集計でユニークを数えれば出せるのですが。
本来は、
患者マスター、入院テーブル、ICUテーブルに分けるべきでしょうね。
患者ID ー 患者ID
入院番号 ー 入院番号
台帳番号
というリレーションを張るといいでしょう。
とりあえず、入院番号を与えましょう。
IDと入院日で自己リレーションします。入院番号フィールドを作り、リレーション::台帳番号で全置換します。
今のテーブルを2回複製して、それぞれそれらの名前にしておきます。
患者マスターではIDを常時ユニークに、入院テーブルでは入院番号を常時ユニークにしておきます。
それぞれのテーブルに現在の台帳のレコードをそのままインポートすれば、それぞれにユニークになります。不要なフィールドを削除すれば、理論的にただしい構造になります。それをポータルで表示していけばいいでしょう。この構造でしたら、集計でカウントできます。
Last edited by Shin (2020-05-14 15:51:48)
Offline
チポ様、Shin様
返信ありがとうございます。
無事、入院回数なども算出することができました。
ありがとうございます!
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 570.26 KiB (Peak: 586.77 KiB) ]