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 ); 

?>

 


戻る