初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2018-07-19 09:04:01

なかなか上達しない
Guest

複数ポータルを使用し、関連レコードを表示したい

すみません。昨日のトピックがなぜか「解決」となっていました。
再投稿させていただきます。

いつもお世話になります。
FMP14 Windows7で作成しております。

当方、医療機関でして、診断書をFMにて作成しております。

ファイル
○患者マスタ
○診断書

テーブル
○t_患者マスタ(別のソリューションからリレーション)
○t_診断書
○t_検索(「患者カナ」「患者カルテNo」「ポータル①行番号」のフィールドを作成)
「t_検索」内の「患者カナ」「患者カルテNo」「ポータル①行番号」の各フィールドはグローバルフィールド設定をしております。

リレーション
t_患者マスタ::患者カナ -×- t_検索::患者カナ(先頭一致にて絞り込めるようにフィルターをかけ、患者カナで昇順ソート)
t_診断書::患者カルテNo -=- t_検索::患者カルテNo

診断書は1患者に対し複数作成しますので、診断書は1患者1レコードになっております。

患者名を検索した際に、過去に作成した診断書のリスト表示をするメニューを作成したく、「検索」テーブルを作成しました。
「検索」テーブルは「患者カナ」「患者カルテNo」フィールドをグローバルフィールドで作成し、「患者名カナ」を入力すると
「患者マスタ」からのリレーションにて患者名がポータル①にてリスト表示されるというのはできたのですが、
ポータル①内の患者リストのある患者名をアクティブ(クリックすると)にすると、同レイアウト内のポータル②に過去に作成した
「診断書」のレコードを表示したいのですが、なかなかうまくいきません。

お恥ずかしながら自身で考えた内容は、
・ポータル①内のある患者をクリックした際、ポータル行番号を取得し、カルテ番号を「t_検索::患者カルテNo」に入力
・カルテ番号が「t_検索::患者カルテNo」に入力されると「t_検索::患者カルテNo」と「t_診断書::患者カルテNo」にて
  ポータル②に該当患者の診断書が表示される
というイメージでした。

過去レスを参照させていただき、「t_検索::ポータル①行番号」のレイアウトに「Get(アクティブポータル行番号)」や
「GetNthRecord ( t_患者マスタ::患者カルテNo ; Get ( アクティブポータル行番号 ) )」など試しましたが、
ポータル①内の患者をクリックしても「t_検索::ポータル①行番号」フィールドへ行番号が入りません。
もしかしたらそもそもの考え方が違うのかもしれません、ご教授いただけないでしょうか。

よろしくお願いいたします。

#2 2018-07-19 09:51:22

チポ
Member

Re: 複数ポータルを使用し、関連レコードを表示したい

> ポータル①内のある患者をクリックした際、ポータル行番号を取得し、カルテ番号を「t_検索::患者カルテNo」に入力
クリックとありますが、
  フィールドがボタン?
  ポータル行がボタン?
  フィールドにスクリプトトリガ?

ポータル行ではダメですが、それ以外なら、その行のレコードのフィールド値を直接取れますから、
例えば
  フィールド設定[ t_検索::患者カルテNo ;  t_患者マスタ::患者カルテNo ]
でいいですよ。


患者マスタ1レコードに一つのカルテがあるのですか??

Offline

#3 2018-07-19 10:44:11

Shin
Member

Re: 複数ポータルを使用し、関連レコードを表示したい

どのような診断書ですか。病院独自のもの?それとも、生命保険などの入院などの証明書?それとも、自賠責や特定疾患などの診断書?
The ご紹介 http://www001.upp.so-net.ne.jp/MedFiles/
というのもありますよ。

患者マスタというファイルがあり、それは今回の話題の外で、参照するだけですか。
診断書ファイルには、診断書のテーブルだけで十分でしょう。検索用のグローバルフィールドも、その中に作ってしまいましょう。(別に専用のテーブルを作ってもいいですが)
患者テーブルのレイアウトに、診断書のポータルをおき、そのポータルからボタンで診断書へ移動させるような仕組みを作られるのが簡単で、運用も楽だと思います。

Offline

#4 2018-07-19 10:47:30

なかなか上達しない
Guest

Re: 複数ポータルを使用し、関連レコードを表示したい

チポ様
早速のご返事ありがとうございます。

お問い合わせの件は下記のとおりです。

チポ wrote:

患者マスタ1レコードに一つのカルテがあるのですか??

はい、患者マスタにカルテは1つとなっています。

チポ wrote:

> ポータル①内のある患者をクリックした際、ポータル行番号を取得し、カルテ番号を「t_検索::患者カルテNo」に入力
クリックとありますが、
  フィールドがボタン?
  ポータル行がボタン?
  フィールドにスクリプトトリガ?

とありますが、自分は、表示されたポータル内のデータを(ボタンもスクリプトも設定せず)単にクリックしアクティブ(その行の
表示を青色に)にしたら対応する行番号が、
「GetNthRecord ( t_患者マスタ::患者カルテNo ; Get ( アクティブポータル行番号 ) )」であれば「Get ( アクティブポータル行番号 ) 」
部分にて取得されると思い、ポータルを取得したいフィールドに「GetNorthRecord・・・」の計算式を入れていました。

ポータルにスクリプトトリガにてスクリプト(OnObjectEnter)を設定し、チポ様のレスのとおり
フィールド設定[ t_検索::患者カルテNo ;  t_患者マスタ::患者カルテNo ]
と設定しましたらあっさり表示されました。

この処理に数日悩んでおりましたが、解決を導いていただきありがとうございました。
さらに勉強し、職員の意図するソリューションを作成できるようにがんばりたいと思います。
チポ様ありがとうございました。

#5 2018-07-19 11:16:12

なかなか上達しない
Guest

Re: 複数ポータルを使用し、関連レコードを表示したい

Shin様

「解決」を押してしまいましたが、ご返答ありがとうございます。
今回の診断書は「障害年金更新」の診断書作成のためのものです。
今までは、EXCELにて作成しておりましたが、FMでの運用を提案されていました。

ご紹介いただいたサイトを見てみました。
この様なサイトがあり、ソフトを提供しているのかと感激しました。

「患者マスタ」は患者の基本情報をおさめていまして、今回は「障害年金診断書」でしたが、他の診断書や情報提供書などの作成もある
と考え、独立させたほうがいいかと思い、独立にて「患者マスタ」を作成し、リレーションにて情報を導くという方法をとっていました。
よくよく考えたら、FMはファイルの中にテーブルをいくつも作れるので、あとあと色々なテーブルが増えるとしても同じファイル内に
作成したほうがよかったかな・・・と考えてしまいました。
ファイルとしては量にもよると思いますが、病院内の1業務(たとえば、「診察予約」「処方箋」「診断書」「各種書類」「日報」など)を
1ファイルとして扱ったほうがよかったのでしょうか。(当院は電子カルテを採用しておりません)

Shin wrote:

診断書ファイルには、診断書のテーブルだけで十分でしょう。検索用のグローバルフィールドも、その中に作ってしまいましょう。(別に専用のテーブルを作ってもいいですが)
患者テーブルのレイアウトに、診断書のポータルをおき、そのポータルからボタンで診断書へ移動させるような仕組みを作られるのが簡単で、運用も楽だと思います。

なるほど、診断書のテーブルだけでその中に検索用のフィールドを置き、別レイアウト等で今回のようなページを作成するということですね。
確かにそれだとすっきりしますね。
患者テーブルのレイアウトに診断書のポータルを置くというのも確かに使う側にとっては便利な機能ですね。参考にといいますか、その機能を
使わせていただこうと思います。

関連するのですが、診断書は多種の診断書がありますが、そのデータをどうするかにもよるかもしれませんが、今回は「障害年金の診断書」でしたが、以後別の診断書をFMで運用するとなった場合に、
・いま作成している「診断書ファイル」で他の診断書も作成できるようにする
・いま作成している「診断書ファイル」の「診断書テーブル」に別々の診断書を(その分フィールドを作成するか、「項目」「データ」の
  フィールドを用意し、診断書選択で診断書の種類を選択したら、対応する項目を「項目」フィールドにいれ、データを入力し
  個別に用意した診断書印刷フォームで印刷させるみたいな)1つのテーブルでまかなう
・別のファイルで「○○診断書」ファイルを作成する
など考えたのですが、一般的な方法は1番目と考えていいですよね

#6 2018-07-19 12:40:42

Shin
Member

Re: 複数ポータルを使用し、関連レコードを表示したい

生命保険向けの診断書や、特定疾患の診断書を作成する同様のソリューションを、以前作ったことがあります。今もメンテナンスはしていますので、実働しているようです
氏名、住所、生年月日などの基本データは、患者テーブルを参照します。
診断書に共通するデータ(病名、初診、治療状況など)は、診断書テーブルへ保存し、診断書ごとに異なるデータ(視野、オージオグラム)などは、診断書ごとにテーブルを作り、そこに保存していくのがいいと思います。
その他の診断書なども、同様に考えられればいいのでは。

Offline

#7 2018-07-19 12:53:01

なかなか上達しない
Guest

Re: 複数ポータルを使用し、関連レコードを表示したい

Shin様

なるほど、いろいろ大変参考になりました。

以後のソリューション作成する上での参考案として、
活用させていただきます。

誠にありがとうございます。

#8 2018-07-19 18:35:10

Shin
Member

Re: 複数ポータルを使用し、関連レコードを表示したい

少しだけですが、サンプルです。
https://www.dropbox.com/s/wtqlbhnzgdkzx … 7.zip?dl=0

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 544.99 KiB (Peak: 565.9 KiB) ]