120 likes | 285 Views
禁断の病名チェッカー. SELECT distinct "tbl_sryact"."ptid", "tbl_ptnum"."ptnum", "tbl_sryact"."creymd", "tbl_sryact"."upymd", "tbl_sryact"."sryym", "tbl_ptinf"."birthday", "tbl_ptinf"."name", "tbl_ptinf"."kananame" FROM "tbl_sryact" where "tbl_ptnum"."ptid" = "tbl_sryact"."ptid" AND
E N D
SELECT distinct "tbl_sryact"."ptid", "tbl_ptnum"."ptnum", "tbl_sryact"."creymd", "tbl_sryact"."upymd", "tbl_sryact"."sryym", "tbl_ptinf"."birthday", "tbl_ptinf"."name", "tbl_ptinf"."kananame" FROM "tbl_sryact" where "tbl_ptnum"."ptid" = "tbl_sryact"."ptid" AND "tbl_ptnum"."ptid" = "tbl_ptinf"."ptid" AND "tbl_sryact"."sryym"= distictをつけることでかなり絞れる(昨日2005年08月14日(日曜日)の時点で9000が1400くらいになった)が、一部重複する。 Fromにtbl_ptnum、 tbl_ptinfを指定しなくてもよいのだろうか? とりあえずこれで8月14日の時点で1400件ヒット Whereの2つは河合チャートIDを持ってくるため tbl_ptnum"."ptid" = "tbl_ptinf"."ptid" "tbl_ptnum"."ptid" = "tbl_sryact"."ptid“ 最後のsryymで Year(Today) &Right( "00" & Month(Today),2) で現在の月(デフォルト、実際は前の月かも、毎回指定可能)を得る クエリー & 診療年月日とする 今回に限りptidは出てこない。 まずはその月にかかった患者を捜す
重複患者を減らす。 • IDでソート • グローバルへIDをコピー • 次のレコードのIDが • バッファ(直前のレコードのID)と同じ時はレコード削除 • 同じでなくなるまでループ • ループを抜け出したら(直前と違うIDになったら) • そのレコードのIDを再びバッファに入れて繰り返す。 • できたものを河合チャートIDのみエクスポート
チェッカーファイル • 繰り返しループ
IDを患者IDをコピーから取得 • 意外なことにルックアップというもの、いったんコピーしたらIDを変更しない限りそのまま行く。 • 従ってループしてもそれぞれのレコードではIDはつられて変動することはない。 • まずは患者ID取得でORCAIDを取得
IDごとに病名を一気にまとめる。 • 病名列記、ここは癌をcaに置き換えたものでよい。 • 要するにカルテ表紙に使ったものを流用している。
SELECT "tbl_sryact"."ptid", "tbl_sryact"."srykbn","tbl_sryact"."srycd1","tbl_sryact"."srycd2","tbl_sryact"."srycd3","tbl_sryact"."srycd4","tbl_sryact"."srycd5", "tbl_sryact"."srysuryo1", "tbl_sryact"."srysuryo2", "tbl_sryact"."srysuryo3", "tbl_sryact"."srysuryo4", "tbl_sryact"."srysuryo5","tbl_sryact"."creymd", "tbl_sryact"."upymd","tbl_sryact"."sryym" FROM "tbl_sryact" WHERE “tbl_sryact”.“sryym”=その月を作成 AND "tbl_sryact"."ptid" = Sryymがその処置をした年月(日はない) Year(Today) &Right( "00" & Month(Today),2) 処方、処置を取得するquery
処方、処置を取得する • ループの最初のifは • 同じ日の処方・処置をまとめるため • 処理日がバッファと違っていたら • (すなわり日付が代わったら) • バッファにいったん処置日を待避 • 作成日を出力 • 処方を出力
<RecordBegin> <NameBegin> 000014、姿三四郎、1823/09/11 <NameEnd> <ByomeiBegin> 脳梗塞_肩関節周囲炎_不安神経症_骨粗鬆症_心房細動_肋間神経痛_閉塞性動脈硬化症_高脂血症_メニエル氏病_胸椎椎間板ヘルニア_顔蜂窩繊炎_感染性口内炎_結膜炎_骨盤挫傷_変形性頸椎症_ <ByomeiEnd> <ShoriBegin> 20050802作成分 再診(診療所)10 継続管理加算10 慢性疾患生活指導料(診療所)10 理学療法(4)(集団療法)10 関節腔内注射1デカドロン注射液3.3mg1管0 皮下、筋肉内注射1ラスカルトン注10エルカトニン単位1mL1管0 点滴注射1アルトフェッド注射液200mL1瓶重ソー注「トーワ」7%20mL2管ノルポート注3mL1管0 頭部単純CT撮影1画像記録用フィルム(半切)1枚0 コンピューター断層診断10 20050803作成分 アルファスリーカプセル1μg1カプセルフェロ・グラデュメット1錠イーシー・ドパール錠1錠メトドリン錠2mg1錠内服薬剤1 オノンカプセル112.5mg2カプセルビタダン錠2錠内服薬剤10 ベネット錠2.5mg1錠内服薬剤10 トーク0.118%20mL外用薬剤10 調剤料(内服薬・浸煎薬・屯服薬)10 調剤料(外用薬)10 処方料(その他)10 老人薬剤情報提供料(健康手帳に記載しない場合)10 特定疾患処方管理加算(処方料)10 <ShoriEnd> <RecordEnd> 擬似XML形式で出力する。 テキストファイルへ出力
replaceallfast "",""; replaceallfast " ",""; replaceallfast "",""; replaceallfast "\t","\n",regular; 置き換えで見やすい形へ。 秀丸を使ったチェック
//文書を分ける searchdown "<RecordBegin>"; beginsel; searchdown "<RecordEnd>"; golineend; cut; openfile""; paste; 患者一人あたりを1ファイルに分割する。