[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-tech:01877] OrcaAPI を利用する患者情報
- To: orca-tech@xxxxxxxxxxxxxx
- Subject: [orca-tech:01877] OrcaAPI を利用する患者情報
- From: koji yuen <koji.yuen@xxxxxxxxx>
- Date: Sun, 2 Feb 2014 14:28:49 +0900 (JST)
- Priority: normal
エクセルからOrcaのAPIを利用するVBAプログラムをつくってみました
今回は患者情報取得のGETメソッドによるものです。
Windows7がShift-JIS、OrcaのAPIがutf-8のリナックス形式ファイルなので、
文字化けなどの処理に手間をくいました。
Orcaからのレスポンスはxmlファイルに保存するようにしてあります。
レスポンスを読み込んでxmlを自前のVBAプログラムで処理も可能ですが,
やはりエクセルのxml読み書き機能を使ってxmlファイルを処理するのが王道と考えまし
た。
バグやプログラムに対するアドバイスお聞かせください。
Excel2010で動きます。
なおプログラムは、すず工房さんのHPを参考にさせていただきました。
http://it-doc.jp/index.php/excelforwork/vba/181-get-html
ゆうえん医院@岡山
------------------------------------------------------------
Sub get_orca_api(API As String, xml_file as String)
'要求されたAPIにGETリクエストする
Dim Http As Object
Dim inStrm As Object
Dim URL As String
Dim HOST As String
Dim PORT As String
Dim USER As String
Dim PASSWD As String
HOST = "192.168.0.1" 'OrcaサーバーのIPアドレス
PORT = "8000"
USER = "ormaster"
PASSWD = "ormaster"
URL="http://" & HOST & ":" & PORT & API
'MsgBox (URL)
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET", URL, False, USER, PASSWD
'False:同期通信を指定
Http.send '要求を送信
If Http.Status = 200 Then '同期通信のチェック
'受信データが文字化けするので文字コード変換する
Set inStrm = CreateObject("ADODB.Stream")
With inStrm
.Open
.Position = 0
.Type = 1 'TypeBinary バイナリのまま
.Write Http.responseBody 'streamに書き込む
.Position = 0
.Type = 2 'TypeText テキストを指定
.Charset = "UTF-8"
'stream から読み取られるデータを指定文字エンコードに変換
.savetofile xml_file, 2
'指定されたファイルに書き込む
.Close
End With
Set inStrm = Nothing
End If
Set Http = Nothing
End sub
Sub orca_patientgetv2(pat_id AS String)
Dim api_command As String
Dim out_file As String
api_command = "/api01rv2/patientgetv2?id=" & pat_id
out_file = "patinetget_v2.xml"
get_orca_api api_command, out_file
End Sub
----------------------------------------------------------