ORCAのAPI用のハンドラーの紹介

次はORCAが用意したAPIを使ったやり方を紹介しておきます。
cmd_API

ちなみにこのハンドラーは8年前に作った物なので、今ならもうちょっと解りやすくcmdを書き直すことも出来ると思うんですが、上手く動いている時に形にこだわっても意味が無いので手をつけてません。 おそらく誰か別の人の書いたコマンドをそのまま踏襲したのだと思います・・・。 例えば、ハンドラー内11行目、echo でxml_データーをパイプ("|")を使って送らなくても、-dの後に @-の代わりにquoted form of q's XML_でよい気もしますね。 ただどんなことが起こるのか一つ一つ検証していくと凄く時間がかかるので、上手く行っているときはあまり見栄えにこだわらない方がよいと思って手を付けずにいます。 
ちなみにXMLはUNIXなどならアイテム毎に改行を入れても問題無く動作しますが、マックは改行コードが違うので入力されるXMLには改行を入れないか、あるいは、
set q's xml to do shell script "echo " & quoted form of q's xml & "|sed 's/^ *//g'|tr -d '\\r'"
といった改行を削除するコマンドを入れておいてもよいかもしれませんね。 ちなみに上記は実際試してませんので実行するときは自分で検証してみてください。

さて順番に解説して見ましょう。



これも1行目はデフォルト値の登録
次のif/else/end if文はDebug時にサーバーを切り替えるための構造です。  ORCAのAPIはポート番号8000番なので8000番に設定してます。  
10行目からのtry文のエラー処理はXML文を要求しないコマンドが一つだけあるので、それに対応してます。
このプログラムはRequest XMLを {xml_:RequestXML}に格納して、ORCAのAPIに記載されている。/api21/medicalmodv2 といったURLの部分を頭のスラッシュを一つとって"api21/medicalmodv2" と言った形でurl_に格納します{url_:"api21/medicalmodv2" }ですかね。

詳しいORCA側のAPIの条件や戻り値はORCAのウエブサイトに記載されています。


私が実際に使用しているのは、
患者基本情報:/api01rv2/patientgetv2 
診療行為(中度終了データー): /api21/medicalmodv2
患者情報(氏名検索) /api01rv2/patientlst3v2  
システム管理情報 /api01rv2/system01lstv2
診療行為:/api01rv2/medicalgetv2  
病名:/api01rv2/diseasegetv2  
患者登録: /orca12/patientmodv2  
症状詳記:/orca25/subjectivesv2  
患者情報(中途終了患者一覧):/api01rv2/tmedicalgetv2  
収納情報 : /api01rv2/incomeinfv2  
システム管理情報 : /orca101/manageusersv2   
患者病名登録:/orca22/diseasev2 
これぐらいでしょうか? 自院で必要なものを使うのがよいでしょう。

次はオンライン資格確認のために利用しているスクリプトを一つ紹介してみます。

三好クリニックでの電子カルテ・レセコン