2016年07月05日

シェルスクリプトから日医標準レセプトソフトAPIを叩く

先日ORCAカンファレンス2016に参加してきたのですが、今後はデータベースから直接データを取得するのではなく、APIから取得してくださいと言われたので、シェルスクリプトからでもできるのか挑戦してみました。

ここでの例は、ORCAサーバーのホストがlocalhost、ポートが8000、ユーザー名がormaster、パスワードがpassword、患者番号は000001です。

APIはGETメソッドで取得できるため、curlコマンドが使えそうです。また、結果はXMLで返ってくるため、xmllintコマンドで必要なデータを抽出できそうです。xmllitコマンドはlibxml2-utilsパッケージに含まれているため、最初にインストールしてください。

まずはHTTPヘッダーを確認します。次のコマンドを実行します。

$ curl -X GET 'http://localhost:8000/api01rv2/patientgetv2?id=000001' -I -u ormaster:password

次の結果が返ってくれば成功です。

HTTP/1.1 200 OK
Date: Tue, 05 Jul 2016 05:46:43 GMT
Server: glserver/1.4.9
Content-Type: application/xml
Content-Length: 2500

HTTPのステータスの意味を解説したりはしません。

いよいよ患者情報のXMLを取得します。

$ curl -X GET 'http://localhost:8000/api01rv2/patientgetv2?id=000001' -u ormaster:password -o patient.xml

取得したXMLをpatient.xmlとして保存しています。

patient.xmlの中身を確認します。

$ xmllint --shell patient.xml

シェルの使い方はman xmllintで確認してください。

いよいよ患者氏名を取得します。

$ xmllint --xpath "/xmlio2/patientinfores/Patient_Information/WholeName/text()" patient.xml |nkf -w80 --numchar-input

何故か結果がUnicode文字参照で返ってくるため、nkfコマンドでUTF-8に変換しています。nkfコマンドはjma-receiptがセットアップされている環境であればインストールされているはずです。
posted by 株式会社アプセル at 15:11| Comment(0) | TrackBack(0) | 技術
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/175951346
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック