ORCA APIを利用する(Get)


ニッチな話題ですがお仕事で扱っている日医がオープンソースとして主に診療所等など用に公開しているORCAについて外部アプリケーションから患者の氏名などのデータを利用する案件があったのでメモ。

ORCAからデータを取得するにはAPIを使用するかPostgresqlのDBから直接読み込む方法があるがスマートな方法であるAPIを使用する事にした。

以下VB.Netでのサンプル。
このサンプルは唯一getメソッド?でアクセルするタイプのAPIです。
(https://www.orca.med.or.jp/receipt/tec/api/patientget.html)

サンプルはエラー処理などキチンとしていないのでもし再利用する方がいましたらその辺注意してください。
またC#のサンプルが本家にありますのでそちらも参考にしてください。

Dim USER As String = “ormaster”
Dim PASSWD As String = “ormasterpass”
Dim URL As String

URL = “http://192.168.0.5:8000/api01rv2/patientgetv2?id=<ptnum>”
URL = Replace(URL, “<ptnum>”, “1”) ‘患者番号

Dim ResultXML As String

Dim req As HttpWebRequest = CType(HttpWebRequest.Create(URL), HttpWebRequest)
req.Method = “GET”
req.Credentials = New NetworkCredential(USER, PASSWD)
req.PreAuthenticate = True
Dim res As HttpWebResponse = Nothing

Try
res = DirectCast(req.GetResponse(), HttpWebResponse)

Catch wex As WebException
If wex.Status = WebExceptionStatus.ProtocolError Then
Dim err As HttpWebResponse = DirectCast(wex.Response, HttpWebResponse)

        Dim errcode As Integer = CInt(err.StatusCode)

        Console.WriteLine(err.ResponseUri)
Console.WriteLine(“Response server => {0}”, err.Server)
Console.WriteLine(“{0}:{1}”, errcode, err.StatusDescription)

        err.Close()
Else
Console.WriteLine(wex.Message)
End If
End Try

If res IsNot Nothing Then
Dim str As Stream = res.GetResponseStream()
Dim strread As New StreamReader(str)

    ResultXML = strread.ReadToEnd()

    strread.Close()
str.Close()
res.Close()
End If

GC.Collect()
req.Abort()

‘正常に取れたらResultXMLをparseする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です