1-1.PHPによるAPI利用
ORCAで、httpを使ったAPIが公開されています。
rubyとcでの利用法はORCA公式ホームページ公開されていますが、
PHPを使う方法は公開されていないのでプログラムを書いてみました。
まず患者基本情報を取得するには,file_get_contents関数を使えば
<?php
$xml = file_get_contents("http:#user:password@localhost:8000/api01r/patientget?id=1233");
var_dump($xml);
?>
XMLファイルを得ることができます。
ORCAのAPIはベーシック認証が必要なので、urlの前にユーザー名とパスワードを送信する必要があります。
しかしこの方法では処理に時間がかかるので、curl関数を使うと早く処理できるようです。
<?php
#初期化してリクエストを送るURLを指定
$ch = curl_init(’http:#user:password@localhost:8000/api01r/patientget?id=1234’);
#結果をファイルで受け取る
curl_setopt($ch, CURLOPT_FILE, $fp);
#ヘッダーの出力無し
curl_setopt($ch, CURLOPT_HEADER, 0);
#リクエスト送信
curl_exec( $ch );
#セッションを終了
curl_close( $ch );
?>
受け取るファイルを指定しなければ、出力は標準出力(コンソール出力)となります。
ファイルに書き込むには、下記のようなプログラムとなります
<?php
#ダウンロードするファイルを指定
$tmpfile="patinfoget.xml";
#データ書き込み用ファイルを開く
$fp = fopen($tmpfile, "w");
・・・(上記プログラム)・・・・
#ファイルを閉じる
fclose($fp);
?>
患者基本情報APIはGETメソッドですが、それ以外のAPIはPOSTメソッドを使いますので病名情報取得を例にあげます。
またcurlのセッション初期化とリクエストを送るurlの指定も下記のように分けて書くことも可能です。
<?php
#ユーザー名とパスワードをつけてAPIのURLを指定
$url = 'http:#user:password@localhost:8000/api01r/diseaseget?class=01';
#POSTするデータを設定
$param = <<<XML
<data>
<record>
<record name="disease_inforeq">
<string name="Patient_ID">1234</string>
<string name="Base_Date">2011-09</string>
</record>
</record>
</data>
XML;
#セッションの初期化
$ch = curl_init();
#リクエストを送るURLを指定
curl_setopt( $ch, CURLOPT_URL, $url );
#POSTでデータを取得
curl_setopt($ch, CURLOPT_POST, 1);
#ヘッダーの出力無し
curl_setopt( $ch, CURLOPT_HEADER, 0 );
#POSTするデータ
curl_setopt( $ch, CURLOPT_POSTFIELDS, $param );
#結果をファイルで受け取る(ファイル名を指定していないので標準出力)
curl_setopt($ch, CURLOPT_FILE, $fp);
#リクエスト送信
curl_exec( $ch );
#セッションを終了
curl_close( $ch );
?>