なので、2年前のあるブログの中の、特に、ブログ1とブログ2を参考にして、これをAngularJS版に改編することで、スマホに表示する患者基本情報データを取得できるだろうと考えた。
.function getPatientData(patientId) { var url = 'http://hustler***.softether.net/~*******/api01rv2/ patientgetv2.xml'; patientData = null; $.ajax({ type: 'GET', url: url, async: false, cache: false, dataType: "xml" }).done(function(xml, status, error){ if (status == 'success') { patientData = $(xml).find('Patient_Information'); } else { alert('文書データ取得失敗'); } }).fail(function(xhr, status, error){ var message = "xhr.status = " + xhr.status + ", xhr.statusText = " + xhr.statusText + ", status = " + status + ", error = " + error; alert('サーバから応答がありません: ' + message); }); }
2年前のあるブログを見る限り、患者情報をGETメソッドを使って、取得していることが分かった。GETメソッドを使うにあたって、アプリに渡すためのURLを指定しなければならない。ここでは、2,3行目に、URLが指定されていた。このURLはどんなのか、見てみると、このような画面が出てきた。
ORCAの患者基本情報がAPIとして処理されて、レスポンスされていた。
そこで、ORCAのサイトを見てみると、ここを参考にしたら、APIとして処理され、患者基本情報が返却されそうだと分かった。
また、ver5以降から引数のformatによってJson形式でも返却できることが可能になっていので、それを使う。
なので、ORCAのサイトのテスト方法にのっているURLをもとに、localhostをIPアドレス「172.16.108.251」に変更し、id=の後を、患者番号である1または0001を指定したURLにアクセスしてみた。
図1:URLにアクセスした結果 |
アクセスした結果、図1のような画面が出てきて、エラーが発生した。APIとして処理された患者基本情報が返却されないと、作業が進まないので、エラーがでた原因を追究し、遅れを取り戻していきたい。
今回は2年前のあるブログの患者基本情報の取得方法を理解することに時間がかかったり、図1のようなエラーが出てしまったりと、作業が思うように進まなかった。次回は、エラーの原因を解決し、APIとして処理された患者基本情報を入手し、URLを得た状態で、2年前のあるブログのようなプログラムを参考に、AngularJS版に改変し、患者基本情報データの取得が行えるのか検証していきたい。
【コメント】
日レセAPIを使ってORCAから患者基本情報を取得するには次のようなURLを書きます。http://172.16.108.251:8000/api01rv2/patientgetv2?id=00001&format=jsonこれは、患者ID=00001の患者の基本情報をJSON形式で返却することをリクエストするURLです。ちなみに、この例が示すようにORCAのWebAPIはRESTfulではありません。通常のクエリストリングで患者IDなどのパラメタを渡しています。
ブラウザに上記URLを打ち込むと、次のような認証要求画面が表示されます。
図2 ORCAの認証画面(Firefoxの場合) |
図3 ORCAからのレスポンス |
図4 レスポンスのソース表示 |
図5 レスポンスをJSON Pretty Printにかけたもの |
{ "patientinfores": { "Information_Date": "2018-08-10", "Information_Time": "07:08:48", "Api_Result": "00", "Api_Result_Message": "処理終了", "Reskey": "Patient Info", "Patient_Information": { "Patient_ID": "00001", "WholeName": "山下 浩介", "WholeName_inKana": "ヤマシタ コウスケ", "BirthDate": "1970-12-06", "Sex": "1", "HouseHolder_WholeName": "山下 浩介", "Home_Address_Information": { "Address_ZipCode": "*******", "WholeAddress1": "岡山県**市**", "WholeAddress2": "*丁目*?*", "PhoneNumber1": "***-**-****" }, "Contraindication1": "********", "Allergy1": "********", "Infection1": "********", "TestPatient_Flag": "0", "NickName": "カルテ例1 P56", "Reduction_Reason": "00", "Reduction_Reason_Name": "該当なし", "Discount": "00", "Discount_Name": "該当なし", "Condition1": "00", "Condition1_Name": "該当なし", "Condition2": "00", "Condition2_Name": "該当なし", "Condition3": "00", "Condition3_Name": "該当なし", "Ic_Code": "01", "Ic_Code_Name": "現金", "Community_Cid_Agree": "False", "FirstVisit_Date": "2017-12-18", "LastVisit_Date": "2018-01-17", "HealthInsurance_Information": [ { "Insurance_Combination_Number": "0001", "InsuranceCombination_Rate_Admission": "0.30", "InsuranceCombination_Rate_Outpatient": "0.30", "Insurance_Nondisplay": "N", "InsuranceProvider_Class": "009", "InsuranceProvider_Number": "01400019", "InsuranceProvider_WholeName": "協会", "HealthInsuredPerson_Symbol": "41061242", "HealthInsuredPerson_Number": "9635", "RelationToInsuredPerson": "1", "HealthInsuredPerson_WholeName": "山下 浩介", "Certificate_StartDate": "2017-10-25", "Certificate_ExpiredDate": "9999-12-31", "Insurance_CheckDate": "2017-10-25" }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} ] } } }これを下記のORCAの患者登録画面と比較してみます。
図6 同じ患者番号のORCAの患者登録画面 |
さて、 これでORCAのWebAPIを利用して患者基本情報をJSON形式で取得できることがわかりました。しかし、図2の認証はどうすればよいのでしょう?
まさか、患者基本情報を取得する都度、認証画面が現れて、ユーザ名とパスワードを入力するわけにもいきません。
なんとか、OpenDolphinのように、スマホアプリのプログラムで認証情報をORCAへ渡したいものです。
それについてはORCAのドキュメントを調べるか、2年前のブログから探し出すか、あるいはネット上の情報から見つけ出す以外にありません。挑戦してみましょう。
0 件のコメント:
コメントを投稿