電子処方箋   導入記 (No.16)


実際にやってみると(その5)  電子署名つき確定処方箋XML作成(AIDsign)


いよいよ電子署名つきの確定電子処方箋作成に挑戦します。


MEDISのHPKI_2nd Card は 試験接続を申し込んだのですが, インターネットを介するので, 申し込み書には

利用アプリのFDQNを含むURL,

利用アプリのグローバルIP アドレス

PC(ブラウザ)のIPアドレス

など, 通信の設定の記載を求められます。

専門知識が必要なようで, ちょっと, 私の理解が追いつきません。

結局, なんとか記入して 申込書を送付しましたが, なしのつぶてで, それから 進んでいません。

どうも大きな病院などをターゲットにしているようで, (知識のない)個人事業者は 相手にされないようです。


そんな折に, ONSから Windows, Mac どちらでもNativeに動作する, 電子処方箋作成モジュール提供のアナウンスがありました。

https://www.mhlw.go.jp/content/001073985.pdf


現在 2社がMacで使えるモジュール提供を発表しています。

1. (株)アイコム https://www.ai-com.co.jp/aidsign/

  1. 2.セイコーソリューションズ(株) https://www.seikotrust.jp


ただ, セイコーソリューションズは ホームページをみても 内容の記載が見つかりません。


すぐに使えるのは(株)アイコムのAIDsign SDK for HPKI (電子処方箋署名共通モジュール) です。




コマンド形式, ライブラリ形式, プラグイン形式があり, いずれもMac,Windowsともサポートされています。




さっそく購入して動作検証してみました。コマンドライン形式です。

安価な価格で購入させていただきました。個人事業主には大変ありがたいです。


Mac OS 10.15 (Catalina)で行いました。(OS10.13 HighSierra 以降 機能します)


ソフトと資料をdownloadして指示通りにinstallします。これは簡単で, 特に迷うところもありません。MacではApplication/Utility/AIDsign Folderに installされます。


IC-Card readerは I・O Data社のものを使用しました。driverは前もってメーカーのものをinstallしておく必要があります。

アイ・オー・データ機器 I-O DATA USB-NFC4


IC-Card Reader を USBに接続します。その上にHPKIカードを載せます。

ターミナル を起動します。以下 ターミナルの画面表示 ( User: Macna$ )と補足です。


  1. 1.IC-Cardを認証します。

Macna$ cd ~/Documents/  (Return)

Macna$ hpkisigntool -getcert -out ~/Documents/signcert.cer  (Return)

Smart card is ready to use: HPKI

証明書取得正常終了:/Users/yana/Documents/signcert.cer

IO dataの IC card Reader上のHPKIカードが 認識されました。


2. 処方箋CSVにHPKIカードで署名を付与します。

まえもって, shohousen.csv という File名の 処方箋CSVをDocument (書類) Folderに保存しておきます。

Macna$ cd ~/Documents/  (Return)

Macna$  hpkisigntool -sign -sflag 0 -in ~/Documents/shohousen.csv -out ~/Documents/signed.xml  (Return)

Smart card is ready to use: HPKI..... PIN(あらかじめ登録された4文字の数字)入力を促されます。

PIN verified: Smart card is unlocked

署名正常終了:/Users/yana/Documents/signed.xml

shohousen.csvを読み取って, signed.xml という署名付き処方箋がDocuments に作製されました。


3. 検証します

Macna$ cd ~/Documents/  (Return)

Macna$ hpkisigntool -verify -in ~/Documents/signed.xml -out ~/Documents/verify.xml  (Return)

検証正常終了:/Users/yana/Documents/verify.xml

verify,xml という xmlが Documents Folderに作製されました。


  1. 4.CSVを取り出します。

Macna$ cd ~/Documents/   (Return)

Macna$ hpkisigntool -getdata -in ~/Documents/signed.xml -outdir ~/Documents/  (Return)

CSV取得正常終了:処方箋情報.csv

処方箋情報.csv を見ると 元の CSVと同じであることが分かります。


と, 割合簡単に署名付き処方箋CSVが作製されました。

前ページ で紹介した確定処方箋作製と同じ方法で, これを電子処方箋Formetに組み込みます。


  1. 5.signed.xmlをBase64でencode...A

  2. 6.電子処方箋の Format に( 医療機関コード + A ) 組み込んで...B

<issueType>1</issueType>...署名付きの電子処方箋紙であることをを最後に書き足します。

  1. 7.B から LF,CR 削除 ... Substitute  ( B ; [ Char(10) ; “” ] ; [ Char(13) ; “” ]  )...C


C を req_Folderに投函します。

File名は 紙の場合と同じ  EPSsiPIR01req_xxxxxxxxxxxx.xml です。


これで署名付き電子処方箋が受け入れられました。(試験環境で行いました。)


PIN認証 Stepの省略

なお, 電子処方箋作製のたびに HPKIカードのPIN認証は煩わしいので, 初回のみ認証してあとは省略することもできます。

例えば、6時間、PIN入力を省く場合は、秒単位で記載しますため、6h*60m*60s=21600秒として、

“PASSCACHESEC=21600” というだけ記載したsimple text を “config.ini” というFile名でDocuments Folderにsaveしておきます。

Documents Folderの shohousen.csv から署名付き電子処方箋作製するとき, 最後に -init ~/Documents/config.ini を加えて

hpkisigntool -sign -sflag 0 -in ~/Documents/shohousen.csv -out ~/Documents/signed.xml -init ~/Documents/config.ini

とすれば, 6時間 PIN認証が省略されます。ただし, 初回は必要です。


保存Folderの指定

また 処方箋csv, sined.xml を別のFolderにsaveしたいなら, たとえば, Desktopの Card というFolderに保存するなら,Documents (パス)を  Desktop/Card といれかえます。さらに csv と signed.xml とを別々のFolderに保存したければ, Folder名を変えてパスを書き換えればOKです。


File名の個別指定

また, 受診者の shohousen.csv は このFile名だと, 毎回上書きされますので, それを残したければ CSVのFile名を  たとえば, shohousen_3456_20230321.csv と番号+日付付きFile名にしておけば

上書きされません。 (これは電子カルテ側でコントロールします) ただし同日再診に注意。

署名処方箋もFile名を指定できます。

Terminal の命令は

hpkisigntool -sign -sflag 0 -in ~/Desktop/Card/shohousen_3456_20230321.csv -out ~/Desktop/Card/signed_3456_20230321.xml


Filemakerから自動操縦

Filemakerのレイアウトに Terminalの命令を任意フィールド “order1”, “order2” を表示させて,

( Script Step “コピー” は そのFieldを表示させたレイアウトのときに機能します。老爺心ながら)

order1

cd ~/Documents/   (最後に改行)


order2

hpkisigntool -sign -sflag 0 -in ~/Desktop/Card/shohousen_3456_20230321.csv -out ~/Desktop/Card/signed_3456_20230321.xml  (最後に改行)



Filemaker Script1

------------------------

コピー [ Field order1]

Applescriptを実行

tell application "Terminal"

activate

tell application "System Events"

key code 9 using {command down} --コマンドキーを押しながら, 9 = “V”

end tell

end tell

------------------------

Filemaker Script2 (コピーするFieldを変えるだけです)

------------------------

コピー [ Field order2 ]

Applescriptを実行

tell application "Terminal"

activate

tell application "System Events"

key code 9 using {command down} --コマンドキーを押しながら, 9 = “V”

end tell

end tell

------------------------

この2つのScriptを連続して実行します。この単純なコピペ Script で Terminal を操縦できます。

なんちゃってApplescriptです。本当は, クリップボードを使わない, 高度なApplescriptがあるようですが, 不勉強で分かりません。


ただ, これを実行すると, return記号の関係か?, 署名が重複して実行されることがあります。

そこで, 2つの命令を && で合併して一つの命令としてTerminalに伝えます。

order12というFieldを定義して, 以下のTextを表示させます。

order12

cd ~/Documents/ &&  hpkisigntool -sign -sflag 0 -in ~/Desktop/Card/shohousen_3456_20230321.csv -out ~/Desktop/Card/signed_3456_20230321.xml  (最後に改行)



Script12

------------------------

コピー [ Field order12 ]

Applescriptを実行

tell application "Terminal"

activate

tell application "System Events"

key code 9 using {command down} --コマンドキーを押しながら, 9 = “V”

end tell

end tell

------------------------

これでスムーズな操作になります。




                                                                       









 

2023.4.1 更新