病名のインポート
ORCAから患者基本情報をインポートする事が出来たので、次は病名をインポートしてみます。
患者番号で検索してODBC経由で病名をインポートする場合、当該患者に複数の病名が登録されていれば、複数のレコードが帰ってきます。
病名のインポート用の別DBファイル「病名取得」を用意して一旦そこにデータを取込み、必要な病名(転機のない病名)だけを書き連ねた文字列を生成して「患者登録」に送るようにしてみます。
病名は患者病名情報テーブル"tbl_ptbyomei"に病名コード"byomeicd"で記録されています。
病名コードを病名に変換するのには、「病名ルックアップ」とのリレーションを使うことにします。
なお、患者基本情報のインポートで述べたのと同様に「表の結合」を使った"ptnum"による検索でも良いのですが、すでに患者基本情報のインポートで"ptid"が「患者登録」に取得済みであることを前提に、ここでは"ptid"を検索条件としてインポートしています。
新規データベースを「病名取得」を作成し、まずフィールド定義です。
最低限必要なフィールドは、
(1)No. <数字フィールド> 検索対象の患者番号を入力するフィールド。
(2)ptid <数字フィールド> 「患者登録」からルックアップで自動入力。
(3)病名 <テキスト・フィールド> 「病名ルックアップ」ルックアップで自動入力。
(4)病名取込み <テキスト・フィールド> ORCAからのデータ取込み用。
(5)転機区分 <テキスト・フィールド> ORCAからのデータ取込み用。
(6)疑いフラグ <数字フィールド> ORCAからのデータ取込み用。
(7)クエリー <グローバル・フィールド> SQL文の共通部分を格納する。
SELECT
"tbl_ptbyomei"."byomei",
"tbl_ptbyomei"."ptid",
"tbl_ptbyomei"."utagaiflg",
"tbl_ptbyomei"."sryymd",
"tbl_ptbyomei"."tenkikbn"
FROM "tbl_ptbyomei"
WHERE "tbl_ptbyomei"."ptid" =
(8)クエリー全文 <計算フィールド>
=クエリー & ptid
(9)修飾語付き病名 <計算フィールド> 疑いフラグを反映させた病名に変換する。
=Case( 疑いフラグ = 1 , 病名 & "疑い" ,疑いフラグ = 2, "急性" &
病名 , 疑いフラグ = 3 , "急性" & 病名 & "疑い" ,病名)
(10)貼り付ける病名 <計算フィールド> 修飾語付き病名のうち転機のついていない病名だけ残す。
=If( Length(修飾語付病名) >= 1 , If( Length(転機区分) >=1 , "" , 修飾語付病名
& "、" ) , "" )
(11)病名列記 <テキスト・フィールド>
後述するスクリプト「病名を作成」を実行することにより、このフィールドに病名を羅列していきます。
最後のレコードのこのフィールド値が最終的な病名の文字列になります。
フィールド定義が終わったら、次はスクリプトを作成します。
(1)スクリプト「病名をインポート」
患者基本情報のインポートで説明した手順と同様にして「レコードをインポート」スクリプトステップを作成し、データがインポート出来ることを確認てください。
(2)スクリプト「病名を作成」
レコード/検索条件/ページへ移動[最初の]
Loop
コピー[選択、「貼り付ける病名」]
貼り付け[病名列記]
コピー[選択、「病名列記」]
レコード/検索条件/ページへ移動[最後まできたら終了、次の]
貼り付け[病名列記]
End Loop
これを実行すると、最後のレコードの病名列記フィールドに最終的な病名の文字列ができあがります。
「患者登録」から「病名取得」を起動してバックグラウンドで処理を実行させ、できあがった病名の文字列を「患者登録」に返したら自動的に終了するように動作させたいので、一度「患者登録」に戻って次の二つを追加しておきます。
テキスト・フィールド「病名」を作成する。
スクリプト「病名貼り付け」を作成する。
貼り付け[選択、「病名」]
閉じる[「病名.fp5」]
全レコードを表示
再び「病名取得」に戻り、スクリプトを用意します。
(3)スクリプト「新規レコード」
全レコードを表示
対象レコード削除[ダイアログなし]
新規レコード/検索条件
貼り付け[選択、「No,」]
(4)スクリプト「スクリプト連結」
スクリプト実行[サブスクリプト、「新規レコード作成」]
スクリプト実行[サブスクリプト、「病名をインポート」]
スクリプト実行[サブスクリプト、「病名を作成」]
スクリプト実行[サブスクリプト、外部:「患者登録」]
最後の行の、外部:「患者登録」では、「患者登録」に先ほど作ったスクリプト「病名貼り付け」を指定。
もう一度「患者登録」に戻り、
スクリプト「病名のインポート」を作成する。
コピー[選択、「No.」]
スクリプト実行[サブスクリプト、外部:「病名取得」]
外部:「病名取得」 は(4)で作った「スクリプト連結」です。
これで「患者登録」でスクリプト「病名のインポート」を実行すれば病名が取得出来るはずです。
HOME TOP↑ ORCAのページのTOP