患者基本情報のインポート
病名マスタ、点数マスタのインポートでは全件をインポートしましたが、今度は検索条件として患者番号を指定して、特定のレコードのデータをインポートします。
普段ORCAの操作をしている際にユーザーが使用する患者番号は”ptnum”という列名の値ですが、ORCAが内部で患者を識別するために使用しているのは”ptid”
という列名の値です。両者の照合は、テーブル” tbl_ptnum”に記録されています。” tbl_ptnum”以外のテーブルには”ptnum”列が存在しませんので、それらから特定患者のデータを取り出すためには、”ptid”で検索なければなりません。
そこでまず、”ptnum”を指定して” tbl_ptnum”から該当する”ptid”をインポートしてみます。
下記のSQL文では患者番号が7650の患者の”ptid”を問い合わせています。
検索条件は、WHEREの後に記述します。
見やすくするためにカンマの次で改行してあります。
SQL文の中には改行を含めても動作に問題はありません。
なお、”ptnum”は、ORCAの仕様にあわせて全部で20桁になるように末尾にスペースを付加しておく必要があります。
SELECT
"tbl_ptnum"."ptid",
"tbl_ptnum"."ptnum"
FROM "tbl_ptnum"
WHERE "tbl_ptnum"."ptnum" = '07650 '
これを実行すると(方法は後述)、7694とデータが送られてきました。
これで"ptid"が分かったので、今度はこれを使って"tbl_ptinf"へ、生年月日、自宅住所、番地、郵便番号、電話番号、職業、カナ氏名、漢字氏名、性別を問い合わせてみます。
SELECT
"tbl_ptinf"."birthday",
"tbl_ptinf"."home_adrs",
"tbl_ptinf"."home_banti",
"tbl_ptinf"."home_post",
"tbl_ptinf"."home_tel1",
"tbl_ptinf"."job",
"tbl_ptinf"."kananame",
"tbl_ptinf"."name",
"tbl_ptinf"."ptid",
"tbl_ptinf"."sex"
FROM "tbl_ptinf"
WHERE "tbl_ptinf"."ptid" = 7694
以上の手順で患者基本情報をインポートする事が出来ました。
”ptnum”と”ptid”との関係をわかりやすくするために、二段階の問い合わせをしましたが、
実は「表の結合」を使うと上記の二つのステップは一つにまとめられます。
"ptid"列をキーにして"tbl_ptnum"と"tbl_ptinf"を結合するには下記のようにします。
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"."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" = '07650 '
最後の1行が患者番号を指定する検索条件ですが、この行を取り除けば全件を一気にインポートします。
以上をふまえてファイルメーカーProでの作業に入ります。
新規データベース「患者登録」を作成し、まずはフィールド定義です。
最低限用意するフィールドは、
(1)「No.」 <患者番号を格納する数字フィールド>
(2)「番号変換」 <(1)を20桁の"ptnum"に変換する計算フィールド>
当院の場合、患者番号に前ゼロなし5桁のシリアル番号を採用しているので、計算式は以下のようになります。
=Case( Length(No.) = 1 , "0000" & No. & " ", Length(No.) = 2 , "000" & No.& " ",Length(No.) = 3 , "00" & No.& " ",Length(No.) = 4 , "0" & No.& " ",No.& " " )
(3)「クエリー」 <SQL文の共通部分を格納しておくグローバル・フィールド>
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"."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" =
(4)「クエリー全文」 <(2)と(3)を連結する計算フィールド>
計算式は =クエリー&"'" & 番号変換 & "'"
(5)〜 <生年月日等のインポートしたデータを保存する各フィールド>
フィールド定義ができたら、適当なレイアウトを一つ作成し、次はデータをインポートするためのスクリプトを作成します。
(1) 新規レコードを作成して、No.に患者IDを入力。ORCAに登録済みの番号にしてください。
(2) スクリプト・メニューのスクリプト編集で、「レコードのインポート」ステップを作成。
ここでは「ダイアログなしで実行」にはチェックをいれないでください。
「ファイル指定...」ボタンをクリックする。
(3) 「ファイルを開く」ダイアログで「ODBCデータソース...」を選択。
(4) 「ODBCデータソースを選択」ダイアログで、PostgreSQLを選択。
(5) 「パスワード入力」ダイアログで、ORCAのユーザ名、パスワードを入力。
OKボタンを押すとORCAサーバーと接続します。
(6) 「ODBC SQLクエリーの指定」ダイアログで、フィールド値を選択し、
「クエリー全文」フィールドを選択。
スクリプト編集ダイアログに戻るので、OKボタンを押して編集を終了。
(7) 作成したスクリプトを実行してください。
「フィールドデータのインポート順」ダイアログで、インポート順を指定。インポート方法は、
「現在の対象レコード内で一致するレコードを更新する」を選択。インポートボタンを押下。
(8) うまくいったら、「レコードのインポート」ステップは「ダイアログなしで実行」に変更しておくとよいでしょう。スクリプト編集を閉じるときにでるダイアログで、インポート順は「置換」を選択してください。
HOME TOP↑ ORCAのページのTOP