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

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

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

You are not logged in.

Announcement

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


#1 2019-06-06 13:32:29

naonao
Member

複数のレコードを一つのテキストフィールドに張り付ける

FMpro17です。ポータルで一人一人の薬の処方箋を作っています。
4つのレコードを他のテーブルのテキストフィールドに改行しながら張り付けたいのですがどうしてよいかわかりません。
教えていただけませんか
テーブル1に氏名フィールドと
番号    処方番号        薬品名          量     服薬回数 の6つのフィールドがあります。
下記の4レコードの処方薬をテーブル2のカルテの記録フィールド(テキスト)1レコードに転記したいのです。
番号    処方番号        薬品名             量         服薬回数

1-1         ①      シロスタゾールOD錠100㎎    2錠        2×朝・夕食後               
2-1         ②      アトルバスタチン錠10mg    1錠                   
2-2               ランソプラゾールOD錠15mg     1錠
2-3               劇アムロジピン錠2.5mgPH    1錠     1×朝食後

4つのレコードを記録フィールドに転記する
1-1         ①      シロスタゾールOD錠100㎎    2錠        2×朝・夕食後               
2-1         ②      アトルバスタチン錠10mg    1錠                   
2-2           ランソプラゾールOD錠15mg     1錠
2-3           劇アムロジピン錠2.5mgPH    1錠     1×朝食後
処方箋は発行した後カルテ記載があるので4レコードを記録フィールド(テキスト)1レコードに張り付けたいのです。

Last edited by naonao (2019-06-06 14:59:44)

Offline

#2 2019-06-06 13:56:32

Hiro
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

・「4つのレコード」とその照合条件などの説明は?
・元テーブルには、転記する5フィールドと完成形データが揃っていますか?

Offline

#3 2019-06-06 15:04:08

naonao
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

「4つのレコード」とその照合条件などの説明は?
4つのレコードの内容をを違うテーブルの1レコード1フィールドに張り付ける
元テーブルには、転記する5フィールドと完成形データが揃っていますか?
揃っています
今までは薬の用法をカルテに書きそれから処方箋を発行していました。
処方箋を発行した後カルテに書き込みたいのです。

Last edited by naonao (2019-06-06 15:15:08)

Offline

#4 2019-06-07 02:49:26

Hiro
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

単に「4つのレコード」と言ってますが、
無知の機械が分かるよう、それらの所在場所とか抽出条件とか、
基本的条件説明を問うているのですよ!

それと、1フィールドに表組みを収めると表組みが崩れますが、
それは良いのですか?

Offline

#5 2019-06-07 07:26:11

koeda
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

細かい仕様はわかりませんが、大まかには
1)テーブル1に「番号 & 処方番号 & 薬品名 & 量 & 服薬回数」を求める計算フィールド(テキストを返す)を定義する
2)1)の計算フィールドの一覧を求める集計フィールドを定義する
3)2)をテーブル2に転記する

3)の転記方法もいろいろあると思いますが、転記後に編集することがあるのかとか、速度の問題とか、
要求によってベストな方法は変わってくると思います。
編集する必要がないのなら、わざわざカルテのテーブルに転記しなくても、カルテのレイアウトで処方箋のフィールドを
参照するだけでも良いかもしれませんね。

Last edited by koeda (2019-06-07 07:38:36)

Offline

#6 2019-06-07 10:59:13

naonao
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

hiroさん説明不足で済みません。うまく説明できていると思ってました。
koedaさんの手順どうりです。
テーブル1で患者処方箋を作ります。この処方箋は薬局に提出します。
例では**さんの処方箋には薬の種類が4レコードあるということです。1つの薬は番号 、処方番号、薬品名 、量、 服薬回数が1つのレコードでなっています。
4種類の薬が**さんに出ているのです。それを**さんのカルテ(テーブル2)に転記し追加編集し、Dr.のコメントも入れられるようにしたいのです。

1)テーブル1に「番号 & 処方番号 & 薬品名 & 量 & 服薬回数」を求める計算フィールド(テキストを返す)を定義する
これは理解できました。
2)1)の計算フィールドの一覧を求める集計フィールドを定義する
「集計フィールドを定義する」必要があるのですか。1)を変数に置きLoopを組み張り付けていくと3)に改行ができません
3)2)をテーブル2に転記する

3)の転記方法もいろいろあると思いますが、転記後に編集することがあるのかとか、速度の問題とか、
要求によってベストな方法は変わってくると思います。
転記の方法がわからないのです。先ほども書いたように3)で改行できず、最後のレコードしか残りません。

編集する必要がないのなら、わざわざカルテのテーブルに転記しなくても、カルテのレイアウトで処方箋のフィールドを
参照するだけでも良いかもしれませんね。

よろしくお願いします

Offline

#7 2019-06-07 11:59:07

シャバダバ
Guest

Re: 複数のレコードを一つのテキストフィールドに張り付ける

こんな感じでしょうか
LOOP処理とか無しですが

ダウンロード

#8 2019-06-07 12:06:12

Shin
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

処方箋側のレコードにも、服薬回数情報を含めるレコードと、含めないレコードが混在しているので、正規化に反しますので、理論的には考慮が必要でしょう。
例えば、各処方の第1レコードが削除されると、服用方法も削除されますね。また、その順を変更したい時にはカットペーストが必要になります。(全部の薬に入力してあり、印刷時に第1レコードのみに表示させる機能であれば問題ありませんが)
また、カルテのテーブルには、テキストで挿入することが必須なのですか。(ここの構造を変え、参照させるようにすれば、ずいぶん楽になります)

Offline

#9 2019-06-07 12:30:29

Hiro
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

>#4 Hiro wrote:

単に「4つのレコード」と言ってますが、
無知の機械が分かるよう、それらの所在場所とか抽出条件とか、
基本的条件説明を問うているのですよ!

それと、1フィールドに表組みを収めると表組みが崩れますが、
それは良いのですか?

どうも、未だ2問とも答えてもらえないようなので、私はここで退散させてもらいます。

Offline

#10 2019-06-07 21:22:15

koeda
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

naonao wrote:

2)1)の計算フィールドの一覧を求める集計フィールドを定義する
「集計フィールドを定義する」必要があるのですか。1)を変数に置きLoopを組み張り付けていくと3)に改行ができません
3)2)をテーブル2に転記する

3)の転記方法もいろいろあると思いますが、転記後に編集することがあるのかとか、速度の問題とか、
要求によってベストな方法は変わってくると思います。
転記の方法がわからないのです。先ほども書いたように3)で改行できず、最後のレコードしか残りません。

計算フィールドの結果をリスト化するには、集計フィールドを使う方法のほか、シャバダバさんのサンプルに
あるようにList関数を使う方法や、naonaoさんが試みているようにスクリプトでLoopを使う方法もあります。
(ロジックに誤りがあって、まだうまく動いていないようですが)
例えば…
変数の設定[ $myList ; List(投薬::結合文字列) ]

あとで編集が必要とのことなので、カルテ本文の末尾にテキストとして追記するとすれば
カルテ本文のフィールドに、カルテ本文 & 改行 & リストを設定することになります。
例えば…
フィールド設定[ カルテ::本文カルテ ; カルテ::本文カルテ & ¶ & $myList ]

Last edited by koeda (2019-06-07 21:23:07)

Offline

#11 2019-06-10 17:36:13

naonao
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

shinさんの各処方の第1レコードが削除されると、服用方法も削除されますね。また、その順を変更したい時にはカットペーストが必要になります。(全部の薬に入力してあり、印刷時に第1レコードのみに表示させる機能であれば問題ありませんが)
1-1         ①      シロスタゾールOD錠100㎎    2錠        2×朝・夕食後               
2-1         ②      アトルバスタチン錠10mg    1錠                   
2-2               ランソプラゾールOD錠15mg     1錠
2-3               劇アムロジピン錠2.5mgPH    1錠     1×朝食後
1-1 2-1 2-2はポータルで薬の並び替えに使っています。薬の処方箋は2-1 2-2 2-3は飲むタイミングが同じなので2-3(最後の薬)の服用方法の所に入れる。(薬を分包する時にわかりやすくするようです)
1-1 ① 酸化マグネシウム錠330mg 2錠     2×朝・夕食後
2-1 ② ファモチジン錠10「サワイ」 1錠
2-2   毒ウブレチド錠5㎎ 1錠         1×朝食後
3-1 ③ タムスロシン塩酸塩OD錠0.2mg「サワイ」 1錠
3-2   センノシド錠12mg「YD」 2錠     1×夕食後
4-1 ④ イーケプラ錠500mg  1錠
4-2   テネリア錠20mg(院外) 1錠      1×朝食後   こんな感じです

カルテは医師、看護、介護が日付と時間を入れ同じフィールドに記録を入れるようになっていますのでどうしても処方をテキストで張りつけなければなりません。
  患者カルテ  ***さま  (日付、時間、カルテ内容、部門、記録者のフィールド)
R1.6.10 15:00 今日は朝から下痢気味。褥瘡処置を行う。  看護  佐藤
R1.6.10 14:00 処方 1-1 ① 酸化マグネシウム錠330mg 2錠     2×朝・夕食後
                  2-1 ② ファモチジン錠10「サワイ」 1錠
                  2-2   毒ウブレチド錠5㎎ 1錠         1×朝食後   
                 発熱がある場合は連絡。                   Dr  三田
R1.6.10 12:00 トイレに行く。あまり出ない      介護 久保
List関数の使い方を知りませんでした。Listはレコードを作った順番にしか表示できないのですか。薬の追加、削除があるので順序がバラバラになると思うのですが。
(ポータルは1-1 2-1 2-2で薬の並び替えしてますので問題ないのですが。)
koedaのアドバイスのloopを使ったスクリプトは上手くできました。フィールド設定[ カルテ::本文カルテ ; カルテ::本文カルテ & ¶ & $myList ]の使い方を知りませんでした。
皆さんありがとうございました

Offline

#12 2019-06-10 18:02:42

Shin
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

> 薬の処方箋は2-1 2-2 2-3は飲むタイミングが同じなので2-3(最後の薬)の服用方法の所に入れる。(薬を分包する時にわかりやすくするようです)
用法の位地を上下勘違いしていましたが、同じことです。その最後の薬品が中止になったり、その下に追加されたら、用法を再入力ですよね。これって、よく忘れられて、用法が複数入ったり、抜けたりするんですよ。

テキストでのペーストですが、上のサンプルは看護記録ですね。介護記録でも同じだと思いますが、これらは、自己編集は法律上禁止されているのでテキストでの張りつけは支障無いと思います。
医師の記録では、オーダリングとの関連ですが、そのままオーダーとしてのデータとして編集できるのが楽なのでは。また、処方を変更する権限を持っていますので、テキストを編集されてしまうと、元データはどうするのでしょう。

Offline

#13 2019-06-11 11:15:20

naonao
Member

Re: 複数のレコードを一つのテキストフィールドに張り付ける

印刷時に第1レコードのみに表示させる機能であれば問題なし
第1レコードでも最終レコードでもよいのですがその時だけ服用回数を印刷することなどできるのですか。第1か最終かを判断させる方法がわかりません。そして選択されたときに服用回数を印刷することも僕のレベルではできません。

オーダリングとの関連ですが、そのままオーダーとしてのデータとして編集できるのが楽なのでは
テキストで打って処方箋を出すという順序ではなく処方箋を発行(薬剤師に紙ベースで渡しています)して後で記録する流れになっています。処方箋が先のほうが薬の選択を選べる(薬品マスターからの値一覧)ので速い簡単との事。

ついでにシャバダバさんのList関数ですが前にも書きましたが
List関数はレコードを作った順番にしか表示できないのですか。データーをソートかけてもListフィールドでの表示が変わりません。薬の追加、削除があるので順序がバラバラになると思うので並ぶ順番が変わってくれたら良いのですが。

Last edited by naonao (2019-06-11 11:19:07)

Offline

#14 2019-06-14 09:23:11

シャバダバ
Guest

Re: 複数のレコードを一つのテキストフィールドに張り付ける

解決で上がっていたので、気が付きませんでした。

List関数の並びを変えるのは、過去ログにもあって、計算式の中で並び替え大変だとは思うのですが、
処方箋を入力するポータル内で、番号順(数字)、薬品名(テキスト)という表示のソート規則があれば、削除したり、挿入してもスクリプトで
List関数の表示変更が可能かもしれません。(前にUPしたサンプルなどで試してみてください)

まず、List関数で表示されていたフィールドの計算式を止めて普通のテキスト(処方箋テキスト)に戻します。


スクリプトは

フィールド設定 [ 処方箋テキスト ; "" ]
変数を設定 [ $並換 ; SortValues (  List ( ポータル明細側の::結合フィールド ) ; 1  ) ]
フィールド設定 [ 処方箋テキスト; $並換 ]

※ソートヴァリュのロケール 1なら昇順テキスト、-1なら降順テキスト、2なら昇順数字、-2なら降順数字を選択して並び換えできませんでしょうか。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 566.73 KiB (Peak: 587.64 KiB) ]