380 likes | 1.15k Vues
ORCA のカルテの表紙. 市川外科 河合正巳. ORCA のうれしいところ. 打ち込んだ住所や名前は再利用されるので、二度手間なし。 従来はナースが名前と住所を入力していたが、事務とそれぞれ打ち込んでいたので間違いが起こる確率は倍増した。 紹介状、診断書にもそのまま使えるので 打ち込む必要なし。 河合チャートシステムは患者名と生年月日の積で identity とするが ( 例 : みやもとむさし 15840519) これも ORCA データを利用するので打ち込む必要なし。. なぜカルテの表紙を作ったか. 当科はカルテ用紙は B5 を使っている。 ORCA
E N D
ORCAのカルテの表紙 市川外科 河合正巳
ORCAのうれしいところ • 打ち込んだ住所や名前は再利用されるので、二度手間なし。 • 従来はナースが名前と住所を入力していたが、事務とそれぞれ打ち込んでいたので間違いが起こる確率は倍増した。 • 紹介状、診断書にもそのまま使えるので • 打ち込む必要なし。 • 河合チャートシステムは患者名と生年月日の積でidentityとするが(例:みやもとむさし15840519) • これもORCAデータを利用するので打ち込む必要なし。
なぜカルテの表紙を作ったか • 当科はカルテ用紙はB5を使っている。 • ORCA • 標準出力はA4である • 県医師会の発行するB5の書式を買えば、 • これに当てはめて印刷可能。 • もしくはORCAに付属のMonpeを使えばレイアウトが作れる。 • 不満 • Monpeを覚えるのが大変そう、教科書もないし・・・。 • フォントが少し中国風? • Windowsで作るのはどうか・・・ • 今年の運転免許の書き換えの時に思いつきました。 • Windowsの方がフォントやアプリがいろいろそろっている。
FileMaker使用の理由 • レイアウトの作成が柔軟 • MS-ACCESSではとてもじゃないけど、レイアウトの調整ができません。 • ODBCサポート • FM8になってもPostgreSQLとの相互通信はできないのですが、 • その方がORCAを壊さなくてちょうどよい。 • スクリプトが意外に強力 • しかも速い • 後述するようにwindows上でglclientを立ち上げてIDをORCAに貼り付けるところまでしてくれます • 河合チャートで使い慣れていた • これが一番の理由か? • サーバー版を使わなくてもネットワーク機能が強力
カルテ表紙を自作する利点 • 初診日につく病名については書く必要なし。 • 字が汚い(すみません)。 • 禁忌薬剤などの個人情報を一緒に保存する • 毎年カルテに転記しなくてよい。
流れ • 事務の受付 • 保険証確認 • 生年月日、住所、勤務先、保険番号と記号 • 自賠責、自費、保険 • 診察 • 診察が終わるまでは、紙カルテは表紙のない情けない状態。 • 病名をつける • カルテ表紙の印刷 • これで紙カルテの完成。 • その日であればカルテはどの順から作ってもよいのです。
受付の仕事 • 新患が来たら • 保険証確認 • ORCAへ入力 • 生年月日、住所、勤務先、保険番号と記号 • 自賠責、自費、保険 • 公費 • 表紙のない3号紙に日付を押して外来に渡す。 • 再来が来たら • 紙カルテを出す
過程3つ • 過程1:SQL発行 • 過程2:表紙作成 • 過程3:印刷
過程1:SQL • 必要な情報:ORCAIDテーブル名 • 患者情報:tbl_ptinf • 保険情報:tbl_pthkninf • 公費情報:tbl_ptkohinf • 病名:tbl_ptbyomei • 以上をそれぞれのORCAのテーブルからもらってきます。 • 実際には次のスライドのようにファイルメーカーでSQLを発行し、ORCAからのデータをインポートします。
SELECT "tbl_ptnum"."ptid", "tbl_ptnum"."ptnum", "tbl_ptinf"."birthday","tbl_ptinf"."home_adrs", "tbl_ptinf"."home_banti","tbl_ptinf"."home_post","tbl_ptinf"."home_tel1","tbl_ptinf"."job","tbl_ptinf"."office_name", "tbl_ptinf"."office_post", "tbl_ptinf"."office_adrs", "tbl_ptinf"."office_banti", "tbl_ptinf"."office_tel", "tbl_ptinf"."kananame","tbl_ptinf"."name", "tbl_ptinf"."ptid","tbl_ptinf"."sex" FROM "tbl_ptnum","tbl_ptinf" WHERE "tbl_ptnum"."ptid" = "tbl_ptinf"."ptid" AND "tbl_ptnum"."ptnum" = 患者情報テーブルから持ってくる。 河合チャートのIDはもともと12000人程度あった。 これを生かすためファイルメーカーとORCAの間にコードの参照表がある。 これがptnumテーブル 勤務先の住所や電話番号も事務さんが入れてくれる。 Query:患者情報
SELECT "tbl_pthkninf"."contkbn", "tbl_pthkninf"."hihknjaname", "tbl_pthkninf"."hknid", "tbl_pthkninf"."hknjanum", "tbl_pthkninf"."hknnum", "tbl_pthkninf"."hojokbn", "tbl_pthkninf"."honkzkkbn", "tbl_pthkninf"."kigo", "tbl_pthkninf"."num", "tbl_pthkninf"."ptid", "tbl_pthkninf"."tekstymd", "tbl_pthkninf"."tekedymd" FROM "tbl_pthkninf" WHERE "tbl_pthkninf"."ptid" = 保険情報を取得する 例によってptidはファイルメーカーと異なるIDだが ファイルメーカー側でリレーションを貼って参照変換している。 Query:保険情報取得
SELECT "tbl_ptkohinf"."ftnjanum", "tbl_ptkohinf"."jkysnum", "tbl_ptkohinf"."kohid", "tbl_ptkohinf"."kohnum", "tbl_ptkohinf"."ptid", "tbl_ptkohinf"."tekstymd", "tbl_ptkohinf"."tekedymd", "tbl_ptkohinf"."paykbn" FROM "tbl_ptkohinf" WHERE "tbl_ptkohinf"."sakjokbn"<>1 and "tbl_ptkohinf"."ptid" ='' 保険情報を取得する 例によってptidはファイルメーカーと異なるIDだが ファイルメーカー側でリレーションを貼って参照変換している。 ORCAは 削除といっても入力した情報は削除せず、削除区分フラグsakjokbnを立てるだけである。 これに気づくのに一晩かかった。 Whereでsakjokbnが立っているもの以外を取り込むよう指定する。 Query:公費情報取得
SELECT "tbl_ptbyomei"."byomei", "tbl_ptbyomei"."ptid", "tbl_ptbyomei"."utagaiflg", "tbl_ptbyomei"."sryymd", "tbl_ptbyomei"."tenkikbn", "tbl_ptbyomei"."nyugaikbn", "tbl_ptbyomei"."hkncombi", "tbl_ptbyomei"."hknnum", "tbl_ptbyomei"."manseikbn", "tbl_ptbyomei"."tenkiymd" FROM "tbl_ptbyomei" WHERE "tbl_ptbyomei"."ptid" =‘ORCAID' and "tbl_ptbyomei"."tenkikbn" <1 病名を取得する 例によってptidはファイルメーカーと異なるIDだが ファイルメーカー側でリレーションを貼って参照変換している。 Whereのあとについて 転帰があるということはその病名は中止か、治癒と判断して取り込まない。 Query:病名取得
過程2 • カルテの表紙ファイルの作成 • 色分け • 年齢別処理(垣老、高齢、老人) • 公費は開始と終了の日付記入 • 慢性疾患、本人など、ハンコを作る • 保険によって病名を選択する • 病名処理 • 癌など、患者に見せたくない病名を自動的に置換する
カルテの色分け • 元々当科では事務員が保険の種類によって • カルテを色分けしています。 • 黄色、緑、白、灰色の背景色で罫線の色も赤と青があります。 • しかもその罫線の形式がまちまち • これを自動化することにしました。 • 背景色をつけるのはインクのコストがかかるので、 • カルテの上下に色帯をつけてみました。 • 上下は逆差しでも見えるためです
保険の種類と色 • ORCAから抜き出して色分け対応しました。 • ファイルメーカーで色分けするには • 色というテキストフィールドを作成 • 青、赤など、必要な色の計算フィールドを下記で作成 • If(色 = "赤","■■■■■■■■■","") • これを表紙の上下に貼り付けます。
カルテの色分け 要注意:国公(031)は名前は国だが 国保ではなく社保 これに気づくのに30分かかりました。
垣老 • 大垣独特の公費 • 65歳から69歳の人で • 公費保険番号が141の人
高齢 • 70歳から73歳 • 高齢受給者を提示したとき • 自己負担金は • 補助区分が • 8の人は2割、 • 9の人は1割り
老人(Ver1) • 73歳以上で • 公費保険番号が027 • 支払い区分取込みが • 1なら1割、 • 2なら2割と表示 • 公費 • 開始日は老人になったときを設定 • 終了日はないので消去する。 • ところが例外処理が必要とわかった! • 高齢という区分が70~73歳とあるが、このルールはここ1年でできたもの。 • 移行措置で71歳の人は老人扱いとなる。
老人(Ver2、例外処理を含む) • 老人の最初の74以上という判定を省略、年齢に関係なく、27の公費を持つ人は老人扱いとする。 • そのような場合、70~73歳でも(処理としては年齢に関係なく)色を老人扱いで例外処理する。 • これに引っかからなければ70~73歳では高齢のままの色が残る。 • 例外処理というよりは老人の判定で老人受給者証を提示したものに限ることとし、年齢判定を撤廃することで実現した処理である。
例外処理:老人の社・国保色分け • 色の例外処理 • 社保、国保別の老人の色にする。 • 高齢でも移行措置により、老人の色とするためこのスクリプトに入ってくる。 • 上の欄1行目の詳細 • 保険情報取得::保険番号取込み = "001" or 保険情報取得::保険番号取込み = "002" or 保険情報取得::保険番号取込み = "006" or 保険情報取得::保険番号取込み = "031" or 保険情報取得::保険番号取込み = "032" or 保険情報取得::保険番号取込み = "033" or 保険情報取得::保険番号取込み = "034"
例外処理:障害者老人 • 障老=If(公費保険番号取込み = “144” , 1, 0 )というフィールドを公費情報取得ファイルに作成 • これをさらに集計する障老sumを作成する。 • 公費ごとに合計 • 一つでも144があれば • 70歳以上ならば老人扱いとする。 • 色分けは前回の老人色分けと同じ例外処理スクリプトを呼ぶ • このためこのスクリプト名は障老と老人がついている。
カルテの枠の書き込み • 従来事務員がハンコを手押ししていた。 • 色つきで枠内に情報(略号)、公費開始年月日などを記載する。 • 垣老、高齢、老人 • 政府管掌 • 慢性疾患 • 重度障害
慢性疾患 • ORCAで慢性区分フラグが1のものが候補である。 • If( 疑いフラグ = 1 , "0", 慢性区分) • によって「糖尿病の疑い」などは慢性疾患としない補正を病名取得ファイル側で計算 • 年齢によって • 73歳までは特定疾患療養指導料 • 74歳以上では慢性生活指導料 • ただし(例外処理) • 971労災保険 • 973自賠責保険 • では慢性としない
重度障害者 • 重度障害枠 • 公費番号が146ならば重度障害と書く
政府管掌 • 保険番号が001は政府管掌と書く • 意味はあるのだろうか・・・
大垣市内かどうか • 市内かどうかも分けていたとのこと • 意義はよくわからない。 • 郵便番号で分けようかとも思ったが、 • ファイルメーカーにpatterncountという便利なものがありました。 • 住所の中に「大垣市」があれば市内。
公費適用年月日 • 開始日 • ただ8桁を区切って日付型に変換しただけ。 • 終了日 • 事務に言わせると、空欄は許されないので、99999999のときは • きりのよい平成500年まで有効とする。 • Date( Middle( 公費情報取得::公費適用開始年月日取込み , 5,2 ) , Right( 公費情報取得::公費適用開始年月日取込み , 2 ) , Left(公費情報取得::公費適用開始年月日取込み , 4 )) • If( 公費情報取得::公費適用終了年月日取込み = "99999999" , Date( 1 , 1 , 2488) , Date( Middle( 公費情報取得::公費適用終了年月日取込み , 5,2 ) , Right( 公費情報取得::公費適用終了年月日取込み , 2 ) , Left(公費情報取得::公費適用終了年月日取込み , 4 )) )
If(保険情報取得::適用終了年月日取込み = "99999999", " 未入力 ", "平成" & NumToText( TextToNum( Middle( 保険情報取得::適用終了年月日取込み , 1 , 4 ) ) -1988) & "年" & Middle( 保険情報取得::適用終了年月日取込み , 5,2 ) & "月" & Middle( 保険情報取得::適用終了年月日取込み , 7 , 2 ) & "日") 長くなりましたが all 9 (「すべてがFになる」という小説がありましたね) のときは「未入力」 そうでないときは 8桁を和暦に変換、必ず平成になるとのこと(事務) 保険有効年月日
If(公費情報取得::公費適用終了年月日取込み = "99999999","NeverEnding", "平成" & NumToText( TextToNum( Middle( 公費情報取得::公費適用終了年月日取込み , 1 , 4 ) ) -1988) & "年" & Middle( 公費情報取得::公費適用終了年月日取込み , 5,2 ) & "月" & Middle( 公費情報取得::公費適用終了年月日取込み , 7 , 2 ) & "日") 開始日 必ず入力されるので、そのまま 終了日 きりのよい平成500年まで有効とするのはあんまりなので テキスト型のフィールドに変更し、999…のときはNervereindingとするようにした。(暇な人は見比べてください) 公費適用年月日訂正
病名リスト • 下の欄に病名が表示されています。 • 上の保険情報の欄に2つの保険が記載されています。 • (上が健康保険、下は労災です) • 保険が一つしかないときは以下の作業は不要です。 • 保険が2つある時は病名リストの保険組合せが0と2となっています。 • ORCAはデフォルトで保険組合せは0になります。 • 2のものをクリックすると2のものだけが表紙に転送されます。
病名処理 • Case( 疑いフラグ =1, 病名取込み & "疑い" ,疑いフラグ = 2, "急性" & 病名取込み , 疑いフラグ = 3 , "急性" & 病名取込み & "疑い" ,病名取込み) • ORCAのフラグを翻訳する。 • 不適切表現を変換する • とりあえず癌はCaに変換 • Substitute(修飾語付き病名Buffer , "癌" ,"Ca" )
判定連結 • 以上を連結してできあがりです。
過程3印刷 • ファイルメーカーはスクリプトでプリンタを切り替えることができません。 • レジストリを変更する技もネットで出ていますがリスクが高そうなのでやめました。 • 診察室では単純レントゲンとか胃カメラとか、プリンタ2台をすでに使っているので表紙は事務受付にプリンタサーバーを別に作り、これが薬剤情報とカルテ表紙をそれぞれ印刷するようにしました。 • 外来診察室では診察を終えたところでglclient for Winで病名をつけます。 • 外来診察室で本日の患者一覧(河合チャート)から、今診た患者をクリックすると、IDが受付の「表紙ファイル」へ転送されます。 • 表紙ファイルは1人分しか常に作りませんので別人を印刷しないようになっています。
これによって医師の受ける一番の恩恵は 初診患者の病名をつけ忘れない、 汚い字で書かなくてよい(私だけかぁ) ということでWSHを使ってglclient for Winを呼び出します。 このソフトはclipboardを使えますので 河合チャート(FM)でWSHを呼び出すと同時に患者のIDをClipboardに入れます。 Glclientが開いたらCTRL+V, Enterで病名登録画面でその患者が待機状態になります。 Dim ret Set WshShell = WScript.CreateObject("WScript.Shell") if WshShell.AppActivate("(M00)マスターメニュー") _ +WshShell.AppActivate("(C02)病名登録-登録") _ +WshShell.AppActivate("(M01N)業務メニュー")=0 then WshShell.Run """C:\Documents and Settings\All Users\Documents\KawaiTemplate\VBA\glclient.bat""" end if 病名をつけるWSH
禁忌 • 患者固有の情報として禁忌がある。 • 毎年カルテが変わるたびに書き写していた。 • これも自動化することとした。 • ORCAではTBL_PTINF.TABOO_1にはいっているが、いちいち呼び出すのも面倒くさい。 • ファイルメーカーで作ってリレーションで貼り付ける。 • これでこの表紙はORCAと従来の河合チャートの両方からの複合データとなった。
ブロック図 ORCA Linux 院長室のファイルサーバー 河合チャートFileMaker 住所、Tel、ID 患者情報 カルテファイル 禁忌薬剤 処方箋 Windows Clients 診察室 表紙FileMaker Print Server 薬剤情報提供 患者に渡す カルテ表紙 病名作成