Prototype 2 の説明
1.
Fileの構成と解説
A_Pinfo....受診者の基本情報
B_Daily....日々の診療コスト計算
C_Recpt...月々のレセプト計算
R_Floppy....電算レセプト
N_Doctor....診療録(カルテ)データ
(以下のFileは裏方Fileです)
D_Rawdt....個々の診療データ, B,Cに共用できる
E_Diagno....診断データ
F_Prescp....院外処方データ
G_Code....マスターデータ(診療行為, 薬剤, 病名)
このシステムではPrototype1の基本構造を維持しながら,
それを発展させて実際の運用に即したFile構成にしています。診断名File, 診療録File,
電算レセプトFileを追加しました。細部は正確ではありません。どのようにFile
間の連携をとるかという点に重点を置いています。各Fileのデータを重複させないで再利用することを重視しています。
Filemakerはv7以降になって, one
fileに複数のTableを格納できるようになりましたが, 実際のところ,
目的が異なるFileは独立して作成したほうが使い勝手がよいという印象を持っています。One Fileに複数のTableを組み込むと,
Tableを切り替えたとき, それに合わせて適当なLayoutに切り替えなければならず, その手間はかなりたいへんです。また,
Windowを複数使えるという仕様になりましたが,
これは混乱のもとになるのではないかと感じています。また, ScriptはTableごとに分けられないので, 1
tableに100くらいのScriptがあると,
複数のTableで膨大な数のScriptになり, それをまとめてメンテするのは大変です。実際のところ, Master data(診療行為,
薬剤,
病名)くらいをone Fileにするくらいでよいと思います。このPrototype2では G_Code
Fileにマスターデータをまとめて格納しています。
主要File間のrelationの取り方は Prototype1の方法を踏襲しています。
N_Doctor(診療録)Fileは 基本的に受診年月日&回数 (15ケタ),
R_Floppy(電算レセプト)Fileは基本relationとして受診年月(12ケタ)を利用しています。
2. 受診者基本情報...A_Pinfo File
prototype1よりは実用に近くなっています。
ボタン"Open All"を押せば, prototype2のすべてのFileがopenします。
ボタン"復帰 ", "回避"は別項目で説明します。
ボタン"受診", で任意の日付の受診レコードば, B,C,N Fileに作成されます。
ボタン"今日の受診"で今日の受診処理が行われます。
右のポータル欄にBの受診履歴が表示されます。それをクリックすると, Bのレコードに移動します。
3. 窓口計算....B_Daily File
左上の"診察", "処置" etcの欄の項目を選択し, ボタンを押すと, 下の"診療項目"ポータル欄に実際のdataが自動入力されます。
ここで生成されるレコードはD Fileに格納されます。B Fileのポータルでは15ケタのrelation keyが使われます。
"院外処方"ポータル欄に薬剤コード(例えば CRS5)を入力するとLookupでクラリス錠小児用[50mg]という薬剤が入力されます。
"院外処方"ポータル欄に直接コード入力することもできます。この院外処方レコードは F Fileに格納されます。
実は N File (診療録)に先に医師が診療項目, 処方を入力しておけば, そのdataを このBに転送して, ラクチン自動入力が可能です。
これは, 医師の指示を間違いなく入力するという意味で, また, 省力化という意味でも理想的です。
最後に"確定"ボタンを押せば, 窓口請求金額が表示されます。
右上の診断名ポータルには, 手動で病名を入力しますが, これもN Fileの記事から病名を自動で拾い挙げることができます。このレコードはE
Fileに格納されます。
4. レセプト....C_Recpt File
B Fileのポータルで作成された診療項目レコード(D
File)は12ケタのrelation key (ID番号6 & 年4 & 月2)も有しており,それでC
Fileとrelationすることができます。それによって1ヶ月分のD File レコードが C Fileに集められます。
下の図は紙レセプトをイメージしてレイアウトしたものですが, 細部は未完成です。
1件処理ボタンを押すと, 診療項目レコードの重複検出, その包括, 病名選別処理が行われます。
今後はレセプトを電算化して, 磁気データとして提出請求しなければなりません。上記の紙レセプトレコードを自動的に電算化するシステムをC
Fileに組み込んでいます。(下図) このポータルのレコードはR_Floppy Fileに格納されます。
5. 電算レセプト...R_Floppy File
R Fileに集められた社保, 国保別の電算レコードに医療機関レコード(タイトル), 合計点レコードを追加します。
"タイトル書きだし" ボタンを押すと追加されます。修正画面で, 社保, 国保, 合計点の部分を修正します。
"レコード書きだし"ボタンを押すと, 右の磁気レコードField dataが
"xxxxx.tab" として書き出されます。あとで そのFile名を "receiptc.uke"
に書き換えます。このFile名でオンライン請求できます。この名前は社保, 国保とも同一なので,
上書き保存されないように別Folderに格納します。
別のレイアウトでタイトル, 合計点レコードを修正します。(自動化することもできます)
以上で基本的な構成とレコード作成, File連携の概要を説明しました。
最後に
6. 診療録...N_Doctor
Fileの説明をします。
診療録情報は基本的には, simple textの文字情報がよいと考えています。理由は
1. 長く保存するものなので, data容量が膨大になりやすく, 文字dataが最適
(ただし, 絵とかイラストなどは, pathを繋げて, 本体は別のFileに格納するとよい)
2. 診療録が残っておれば, そこからすべての診療行為が再現できる, というシステムが望ましい。
3. 診療録の文字dataを拾い上げてそれをもとに診療項目を自動入力できれば, 中間入力ミスを防ぎ, 省力化にもなる。
(この方法を用いれば, 事務員が医師のカルテを見てB Fileに診療項目を入力する手間は不要です。)
下図に連携図を示します。
A Fileの受診ボタンを押すと, B,C,の他にN (診療録)Fileにもその日のレコードが作成されます。
N Fileに診察・検査・処置, 院外処方などをTextで記入します。(ATOKなどの辞書をフルに利用します。)
Nの"転送入力"ボタンを押すと, それらのField内容が Bの指示Fieldに転送され, 引き続いて, その文を解析してBに自動入力します。
(*処置セ/創傷処置1/...は B Fileの同セットを指示しています。" * ", スラッシュ"/"を各々項目の頭. 区切りと認識します。)
(CRS5=クラリス錠小児用[50]/4/5/2/...はCRS5=クラリス錠小児用[50]を 4x5, 朝夕2分服 の意味です。)
7. "別のウインドーで...."というエラー

(エラー1)

(エラー2)
v6までのFilemakerでは特に問題が起きなかったのですが, v7以降では,
上記のエラーが頻発します。単独で使用していても(エラー1), File共有(小規模のServer & Clients
System)で稼働させているときも(エラー2)発生します。 ひとりの利用者がレコードのFieldに書き込み状態にあるときに,
別の利用者がそのレコードに書き込むというときにこのエラーがでるのは理解できますし, v6以前でもありました。しかし上図のエラーは,
そのような状態でないときにでも発生します。特に単独使用時に発生するエラー1には手を焼きます。現在のところその発生理由を正確に理解できていません
が,
relation関係が"深い"状況のときに発生するようです。relation関係にあれば常時発生するわけでもない,
というのが悩ましいところです。複数の利用者で,
いったん"それぞれのパソコンのactive recordを はずしてやる",
と回避(解除)できます。そのエラーが発生したときにそれを回避するScriptをA Fileに作りました。A,B, C,N
Fileをループさせて, active recordを強制的に変更するScriptです。
私はこのエラー1が頻発したために解決法が分からず, いったん
v6からv7への移行作業を一時断念しました。種々の解説書にもこのエラーの発生理由の納得できる解説がありません。"いまいましいエラー"です。現在運
用中のシ
ステムでもたびたび発生するのですが, 回避Scriptでしのいでいます。
また, このエラーが発生しにくいように, Scriptの書き方にコツもあるようです。
6 の解説で, NからBに 指示内容を"Field設定"で転送して, それをBで読み取って自動入力させるScriptは実行時(B
File)に必ず, そのエラーが発生します。それを, 逆方向, つまりB側からNの指示内容を吸い上げるScriptをBにつくっておいて,
それをBで自動読み取り自動入力させるとそのエラーは発生しません。それらの一連の動作をNでScriptにしたものが"指示転送入力"Scriptで
す。(downloadしたN
Fileで検証して下さい)
実運用に向けての課題