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

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

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

You are not logged in.

Announcement

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


#1 2020-01-19 11:49:26

ハンク
Member

メモフィールドから文字を抜粋する

いつも大変お世話になっております。

数日前にも同じような質問をさせてもらいましたが、

サンプルに記載しているように、「心エコーメモ」から特定の文字と紐付けた数値もしくはテキストを抜粋するにはどうしたら良いでしょうか?

https://www.dropbox.com/preview/fm-aid10043.fmp12.zip

以前提案していただいたカスタム関数の応用ができず、質問させてもらいました。
アドバイスお願い致します。

Offline

#2 2020-01-20 08:46:48

Moz
Member

Re: メモフィールドから文字を抜粋する

ファイルのリンク切れていませんか?
Dropboxのリンクの取得方法が間違っていませんかね?またはリンクを取得後にファイルを移動させているとか......

ファイルのダウンロードができない方もいらっしゃるので質問は文章でも書かれると良いでしょう。
また以前の投稿に言及する場合はリンクを付けるとどんな内容なのか把握しやすくなります。

Offline

#3 2020-01-20 20:45:51

ハンク
Member

Re: メモフィールドから文字を抜粋する

Mozさん
ご指摘ありがとうございます。

「心エコーメモ」というフィールドに例えば、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
【Dimension】
    LVDd:53mm   LVDs:38mm   IVS:13mm
PW:11mm   EF:54%   FS:28%
【2D】
LA(長軸):55mm   LA(4ch):45×65mm
                         RA(4ch):36×46mm
【LV in flow】
E/A:2.34  DcT:116msec  E/e'
(sep):11.5  E/e'(lat):10.4
【大動脈弁】
   逆流:Ⅱ°〜Ⅲ°    狭窄(ー)
   弁尖:肥厚(+) 石灰化(+) 逸脱(ー) 弁輪部:肥厚(+)  石灰化(+)
   max vel:3.56m/sec   PG peak:50.7mmHg
PG mean:24.8mmHg
        AVA  連続の式:1.13㎠  2Dtrace
法:1.12㎠
       弁輪径:21.5mm  Valsalva洞:30mm
STJ:20mm  上行Ao :34mm
【僧帽弁】
   逆流:trivial    狭窄(ー)
   弁尖:肥厚(+) 石灰化(ー) 逸脱(ー)
弁輪部:肥厚(ー)  石灰化(+)
   弁輪径(4ch):33.3mm  tenthing height
(4ch):8.6mm
【三尖弁】
   逆流:Ⅰ°   TRPG:19mmHg  推定PA
圧:22mmHg  狭窄(ー)
   弁輪径:27mm
【IVC】
  IVC:11mm    呼吸性変動(+)
【心嚢水】
  心嚢水(ー)  右胸水(ー) 左胸水(ー)

左室壁運動  明らかな壁運動以上は認めず

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
という情報を電子カルテ上からコピペして、
用意してある各フィールドに
LVDd  53
LVDs   38
IVS      13
PW      11
EF        54
LA        55
E/A      2.34
DcT      116
E/e'(sep)    11.5
E/e'(lat)      10.4
AR       Ⅱ〜Ⅲ   
AS       (ー)
max vel    3.56   
PG peak    50.7
PG mean   24.8
AVA          1.13
MR        trivial 
MS       (ー)
左室壁運動    明らかな壁運動以上は認めず

のように必要な数値だけ紐付けて抜粋できないでしょうか?

以前、Shinさんに下記の計算式を教えていただき、カスタム関数として作成し、使用できたのですが、
その応用ができずにいます。

Let (
[
	txt = ¶ & TrimAll ( 採血データ ; 3 ; 3 ) ;
	pos = Position ( txt ; ¶ & 項目名 & "|" ; 1 ; 1 ) ;
	lin = ValueCount ( Left ( txt ; pos ) )  ;
	Par = GetValue ( txt ; lin + 1 )
] ;
	GetValue ( Substitute ( Par ; "|" ; ¶ ) ; 3 )

)

アドバイスよろしくお願い致します。

Last edited by ハンク (2020-01-20 21:11:58)

Offline

#4 2020-01-21 09:39:47

Shin
Member

Re: メモフィールドから文字を抜粋する

以前のスレッド に書いているように、その関数の前提は、区切り文字が、| と ¶ であることです。
今回はそれが無い上に、3階建の構造になっています。
さらに項目名が略称に変更され一致していません。
しかも、区切りが、: と :、スペースになっています。スペースを全て改行へ置き換えて、: と : で区切れば、何とかなるかもしれませんが、一部タイトル部分内に改行が混じっているもの(推定PA¶圧)もありますので、改行を全て無視することもできませんので、さらに厄介です。
コピーする前に少し形を整えることはできませんか。テンプレートなどで入力されているのでしたら、それなりに方法はあるかもしれません。

TR とか、TS は抜き出さなくていいのですか。

Last edited by Shin (2020-01-21 12:23:58)

Offline

#5 2020-01-21 13:02:36

ハンク
Member

Re: メモフィールドから文字を抜粋する

Shinさん
お返事ありがとうございます。

電子カルテ上の情報は、そのままコピペした表示(改行など)にしましたが、
手作業で、一手間かかってしまいますが、
【Dimension】
LVDd:53mm
LVDs:38mm
IVS:13mm
PW:11mm
EF:54%
FS:28%
【2D】
LA(長軸):55mm
LA(4ch):45×65mm
RA(4ch):36×46mm
【LV in flow】
E/A:2.34
DcT:116msec
E/e'(sep):11.5
E/e'(lat):10.4
【大動脈弁】
逆流:Ⅱ°〜Ⅲ° 
狭窄(ー)
弁尖:肥厚(+) 石灰化(+) 逸脱(ー) 弁輪部:肥厚(+)  石灰化(+)
max vel:3.56m/sec   PG peak:50.7mmHg
PG mean:24.8mmHg
AVA  連続の式:1.13㎠
2Dtrace法:1.12㎠
弁輪径:21.5mm  Valsalva洞:30mm
STJ:20mm  上行Ao :34mm
【僧帽弁】
逆流:trivial
狭窄(ー)
弁尖:肥厚(+) 石灰化(ー) 逸脱(ー)
弁輪部:肥厚(ー)  石灰化(+)
弁輪径(4ch):33.3mm
tenthing height(4ch):8.6mm
【三尖弁】
逆流:Ⅰ°
TRPG:19mmHg 
推定PA圧:22mmHg 
狭窄(ー)
弁輪径:27mm
【IVC】
IVC:11mm    呼吸性変動(+)
【心嚢水】
心嚢水(ー)  右胸水(ー) 左胸水(ー)

左室壁運動  明らかな壁運動以上は認めず


のように改行を修正すればなんとかなりますか?
項目名はそのまま略称に変更できなくても大丈夫です。
TR、TSもなしで大丈夫です。

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

Offline

#6 2020-01-21 15:38:44

qb_dp
Member

Re: メモフィールドから文字を抜粋する

元のメモから以下の式で大体は取得出来るかと思います。(カスタム関数にしておくのが良いでしょう。)
以下で処理し、取得できなかった分については手動とか...
※mm とかも取得するのでFilterなどで処理が必要です

Let([
_Val=MEMO/*メモ*/
;_itemName=NAME/*項目名 LVDd: など*/
;_Val=Substitute ( test::f1  ; [¶ ; Char(32)] ; [Char(12288);Char(32)] )
;_Val=Substitute ( _Val ; _itemName ; ¶ )
;_Val=GetValue ( _Val ; 2 )
;_Val=Substitute ( _Val ; Char(32) ; ¶ )
;_Val=GetValue ( _Val ; 1 )
];
_Val
)

Last edited by qb_dp (2020-01-21 15:45:07)

Offline

#7 2020-01-21 16:43:27

Shin
Member

Re: メモフィールドから文字を抜粋する

【】の中身を Cat、項目名(: があるものは含めて)を item にしておき、次の式で求められます。
ただ、E/e' (sep): が行跨ぎですので、改行の代わりにスペースにします。(いつも行跨ぎになりますか?)

Let (
[
	txt = Substitute ( memo ;[ "¶(" ; "(" ];[ ¶ ; " " ];[ ":" ; ":" ]) ; 
	txt = GetValue ( Substitute ( txt ;[ "【" & Cat & "】" ; ¶ ]) ; 2 ) ; 
	txt = GetValue ( Substitute ( txt ;[ "【" ; ¶ ]) ; 1 ) ;
	txt = GetValue ( Substitute ( txt ;[ item ; ¶ ]) ; 2 ) ;
	txt = GetValue ( Substitute ( txt ;[ " " ; ¶ ]) ; 1 )
];
	txt	
)

https://www.dropbox.com/s/jr8y92fyzibl1 … 2.zip?dl=0

Last edited by Shin (2020-01-22 10:53:55)

Offline

#8 2020-01-21 23:02:17

ハンク
Member

Re: メモフィールドから文字を抜粋する

qb-dpさん、shinさん
ありがとうございます。まだ作業中ですが、理想通りのものができそうです。

今後ともよろしくお願い致します

Offline

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: 544.11 KiB (Peak: 565.02 KiB) ]