患者基本情報のインポート

病名マスタ、点数マスタのインポートでは全件をインポートしましたが、今度は検索条件として患者番号を指定して、特定のレコードのデータをインポートします。

普段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