従来はCLAIMやdbsインタフェースを使ってデータベースにアクセスする必要があったのですが、jma-receipt 4.5からはglserverとHTTPプロトコルを介してAPI呼出しが可能になりました(プログラム更新を行なって最新の状態にしておく必要あり)。現状ではまだまだ呼び出せるものが少ないのですが、簡単に呼び出せてコーディングが楽なのがいいですね。XMLの処理の方はちょっと面倒ですが。
将来的には、DB構造が変更された際にAPI互換性を保って抽象的にアクセスできるかどうかが気になりますね。ここが中途半端でDB構造変更のたびに修正が必要になるようだと、自分でSQL叩いたほうが早いということになりますから。いずれはAPIバージョンの定義とかもされるんでしょうか。
追記: 下記の内容はやや古くなっており、日医のサイトでjma-receipt 4.6に対応したAPIのサンプル等が公開されているので、そちらを参考にしたほうが良いかと思います。http://www.orca.med.or.jp/receipt/tec/api/patientget.rhtml
orca.med.or.jp - 日医標準レセプトソフト 新API http://www.orca.med.or.jp/receipt/tec/api/index.rhtml 下記は、2010/11/5時点でまだスクリプトが掲載されていなかったので 患者情報を取得する、簡単なサンプルを作ってみました。 患者番号 00001の氏名を取得して表示します。 (患者番号/パスワード等はスクリプト中にハードコードしてあり エラーハンドリング等は行なっていませんので、各自の環境に 合わせて設定してください。) スクリプトダウンロード orca_api.rb ----------------------------------------------------------------- #!/usr/bin/env ruby # ORCA APIサンプル 患者氏名の取得 require 'uri' require 'net/http' require 'rexml/document' Net::HTTP.version_1_1 ptid = '00001' user = 'ormaster' password = 'ormaster' host = 'localhost' port = '8000' req = Net::HTTP::Get.new("/orca12/patientget?id=#{ptid}") req.basic_auth(user, password) Net::HTTP.start(host, port){|http| @res = http.request(req) } document = REXML::Document.new(@res.body) puts document.elements['data/record/record/record[@name="Patient_Infomation"]/string[@name="WholeName"]'].text -----------------------------------------------------------------