カテゴリー「カルテメーカー」の129件の記事

2023年9月 9日 (土)

新しいオンライン請求方法(操作編)

オンライン資格確認端末でレセプトのオンライン請求ができるうようになったことで、より簡単にレセプトのオンライン請求ができるようになりました。一方、オンライン請求をした場合、原則、返戻処理もオンラインで行うことになります。

カルテメーカーは、請求も返戻処理も対応していますが、オンライン請求用端末とカルテメーカーの間に直接的な連携機能がないため、特に返戻ファイルの取り扱い等が少々面倒でした。今回のアップデートではオンライン請求用端末(オンライン資格確認端末を請求用端末として利用することを前提としてます。)と連携することでより効率的に業務を行えるように改善しました。

「操作編」ではこの機能をつかったレセプト請求の方法を解説していきます。事前の設定方法は「設定編」をご覧ください。

 

通常のレセプト請求業務を行う

パレットメニューから
 カルテチェック
 レセプト集計
を実行し、通常通りにレセプトの集計をします。

プレビューによる目視のチェックを済ませておきます。

20230909-180205

 

返戻のダウンロードと読込

カルテメーカー側での操作

レセプト一覧画面を表示させて「返戻読込」ボタンを押します。

20230909-180205_20230909182201

返戻読込待機中」の小さなウインドウが開きます。

20230909-180218

オン資格端末での操作

「オンライン請求」アイコンをクリックして起動し、通常通りにオンライン請求システムの社保(基金)あるいは国保(連合会)に接続します。

左から「返戻レセプト」ボタンを押し、「当月分」ボタンを押します。

返戻ファイルが存在した場合、「ダウンロード」ボタンを押します。

IEの場合、下にダウンロードの確認ダイアログが表示されるので「保存」を選んでください。

204

上記の画面は「確認試験」の画面です。実際の請求画面では右のような表示になります。

ダウンロード日が空白の月がまだダウンロードをしていない月ですので、その月のファイルをダウンロードするようにします。

200

カルテメーカー側の反応

ダウンロードが完了するとカルテメーカーのレセプト一覧画面に返戻されたレセプトが自動的に追加されます。

読込の小さなウインドウに、読み込まれたファイル名(.HEN)と時間がリストアップされますので確認してください。

なお、ダウンロードされた返戻ファイルは自動的に削除されます。

返戻レセプトの場合は分類が「一次」になります。

20230909-180301

オン資格端末での操作

引き続き、オンライン資格確認端末に戻ります。

今度は「再審査分」ボタンを押します。

返戻ファイルが存在した場合、ダウンロードボタンを押します。

205

カルテメーカー側の反応

同じようにダウンロードが完了するとカルテメーカーのレセプト一覧画面に返戻されたレセプトが自動的に追加されます。

読込の小さなウインドウに、読み込まれたファイル名(.SAH)と時間がリストアップされますので確認してください。

再審査分の場合、分類は「再審」になります。

20230909-180340_20230909183501

審査機関を変えて同じように操作

上記の返戻ファイルのダウンロードと読込を、審査機関を変更して同じように行ってください。

 


カルテメーカー側での操作

読込が全部終わったら、「待機終了」ボタンを押して返戻読込待機中ウインドウを消してください。

20230909-180218_20230909185401

Edgeで運用している場合のTips

Edgeで運用している場合は、同じファイル名でも連番をつけて違うファイルでダウンロードしますので、最初に社保、国保両方のサイトからすべての返戻ファイルをダウンロードしておいてから、レセプト一覧画面の「返戻読込」ボタンを押して、ダウンロードした複数のファイルを一気に読み込むことも可能です。

 

返戻レセプトの整備

読込んだ返戻レセプトを通常通りに修正し、再発行して再請求レセプトを作成します。

20230909-180440

 

電子レセプトファイル(.UKE)の出力

請求レセプト、返戻レセプトの整備が完了したら、通常通り「電レセ【社】発行」「電レセ【国】発行」ボタンを押して電子レセプトファイル(.UKE)を出力します。

20230909-183847

ボタンを押すと、オンライン資格確認端末の「電子レセプト」フォルダ(標準的な設定なら「c:¥OQS¥電子レセプト」フォルダ)の中に「社保」「国保」フォルダができて、その中に電子レセプトファイルがそれぞれ出力されます。

オンライン資格確認端末に対しては常に同一のフォルダの中に出力されるので、古い電子レセプトファイルは上書きされます。

203

なお、従来通りにkm運用フォルダの中の電子レセプトフォルダの中にも、電子レセプトファイルが出力されます。

こちらは従来通り、請求月ごとのフォルダの中の「社保」「国保」フォルダに出力されるので、過去のファイルが削除されることはありません。

20230909-184859

 

電子レセプトの送信

通常通り社保(基金)、国保(連合会)のサイトに接続し、電子レセプトを送信します。

送信する際に指定するフォルダは標準的な設定では「c:¥OQS¥電子レセプト」フォルダの中の「社保」「国保」フォルダです。

送信するフォルダはいつも同じなので、社保、国保のフォルダを切り替えるだけで送信できます。

188

以上

 

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

新しいオンライン請求方法(設定編)

オンライン資格確認端末でレセプトのオンライン請求ができるうようになったことで、より簡単にレセプトのオンライン請求ができるようになりました。一方、オンライン請求をした場合、原則、返戻処理もオンラインで行うことになります。

カルテメーカーは、請求も返戻処理も対応していますが、オンライン請求用端末とカルテメーカーの間に直接的な連携機能がないため、特に返戻ファイルの取り扱い等が少々面倒でした。今回のアップデートではオンライン請求用端末(オンライン資格確認端末を請求用端末として利用することを前提としてます。)と連携することでより効率的に業務を行えるように改善しました。

「設定編」ではこの機能を利用するにあたっての事前の設定作業を解説していきます。操作方法は「操作編」をご覧ください。

 

オンライン資格確認端末にファイル交換用の共有フォルダを作る

オンライン資格確認端末とカルテメーカーは専用の共有フォルダを介して接続します。カルテメーカーで作成する請求用ファイル(.UKEファイル)は作成時にオンライン資格確認端末の専用の共有フォルダに書き込まれます。送信する時はその共有フォルダにある.UKEファイルを選択して送信します。

オンライン請求端末(オン資格端末)で、ダウンロードされた返戻ファイル(.HEN、.SAH)は、同じく返戻用の共有ファイルにダウンロードされるようにしておき、カルテメーカーはその返戻ファイルを自動的に読み込むようになります。

請求用ファイルを入れるフォルダ(以下請求用フォルダ)と、返戻用ファイルを入れるフォルダは通常は同一のフォルダですが、別のフォルダにすることもできます。別の場合は、2つの共有フォルダを作ることになります。

以下の操作はオンライン資格確認端末用PCで行います。


請求用フォルダの場所はどこでも大丈夫ですが、管理しやすいようにオン資格用のres,req,faceフォルダと同じところに作成します。

C:¥OQSフォルダの中に「電子レセプト」フォルダ(C:¥OQS¥電子レセプト)を新しく作成してください。名前は「電子レセプト」でなくても構いませんが、この記事では「電子レセプト」に統一します。

161

請求用フォルダ(電子レセプトフォルダ)の共有設定をします。

電子レセプト」フォルダを右クリックして「プロパティ」を選びます。

 

この時、電子レセプトフォルダが反転されて確実に選択状態であることを確認してください。選択状態でないと一つ上のOQSフォルダのプロパティになってしまいます。

168

共有」タブをクリック

 

フォルダ名が「電子レセプト」であることを確認してください。「OQS」になっていたら、一度閉じて電子レセプトを選択しなおしてから右クリック→プロパティです。

169

共有...」ボタンを押す

170

OqsComApp」を確認

このリストは、この「電子レセプト」フォルダを共有することを許可されたアカウントのリストです。このリストに中に「OqsComApp」があって、アクセス許可レベルが「読み取り/書き込み」または「所有者」となってることを確認してください。

共有」をクリック

171

ネットワークアクセス画面が開く

フォルダアイコンの電子レセプトの下に表示された¥¥で始まる「¥¥xxxxxxxx¥電子レセプト」というのがネットワークパスです。これをメモしておきます。このネットワークパスは一種のアドレスで、これでカルテメーカーからこの共有フォルダを指定してアクセスすることになります。

ちなみにxxxxxxxx部分は、オンライン資格確認用端末のコンピュータ名(PC名)です。

メモしたら「終了」をクリック

172

プロパティ画面を閉じる

必ず「閉じる」ボタンを押して閉じてください。

これで共有設定は終わりです。

173

 

オンライン請求アプリ(ブラウザ)の設定変更(デフォルトダウンロードフォルダの変更)

返戻ファイルのダウンロードはwebアプリの「ダウンロード」ボタンを押すのですが、ボタンの右クリックができないので、常にWinのデフォルトのダウンロードフォルダにダウンロードされてしまいます。

Winデフォルトのダウンロードフォルダを返戻用として共有設定してもいいのですが、セキュリティ的に不安があるので、ダウンロード先のフォルダを変更して、上記で作った「電子レセプト」フォルダをデフォルトのダウンロードフォルダに変更します。これで「ダウンロード」ボタンを押すと「電子レセプト」フォルダに返戻ファイルがダウンロードされるようになります。

設定方法はIEとEdgeで違いますので、インストールしたオンライン請求アプリで使ってるブラウザを確認して以下の操作をしてください。

 

IEの場合


IEを起動して

右上のツール(設定)アイコンをクリックし、

ダウンロードの表示」を選択します。

174

左下の「オプション」をクリック

175

規定のダウンロードフォルダ」の「参照」ボタンを押して、上記の「c:¥OQS¥電子レセプト」フォルダを選択します。

 

OKで閉じる
IEを閉じて終了します。

176

 

Edgeの場合


Edgeを起動して

右上のダウンロードアイコン(↓)をクリックします。

右上のその他のオプション(...)をクリックします。

179

ダウンロード設定」を選択

180

場所」の「変更」ボタンを押して、上記の「c:¥OQS¥電子レセプト」フォルダを選択

 

設定ページを閉じ
Edgeを閉じて終了します。

181

 

カルテメーカーのサーバーの設定

カルテメーカーのサーバーを起動します。

カルテメーカー(ファイル)メニューから「環境設定(設定)」を選択。
オン請求」ページに切り替えて
オンライン請求連携」の「稼働」にチェックをつけます。

OKで設定を保存

カルテメーカー全体を再起動、接続し、設定を全端末で有効化します。

20230906-150737

 

カルテメーカーの請求業務用端末の選択

レセプト請求業務をする端末は、サーバーでもクライアントでも構いません。ただし、その端末PCからオンライン資格確認端末PCの共有フォルダを共有できる必要があります。NTTのスタートパックを導入した以外の医院では基本どの端末でもOKです。

*NTTのスタートパックを導入した場合

基本的な設定状態では、オン資格の実行マシン以外ではオンライン資格確認端末PCと通信できないので、実行マシンをレセプト請求業務用の端末にする必要があります。

なお、請求、返戻ファイルの交換だけ実行マシンでおこない、業務それ自体は他の端末で作業をすることは可能です。

実行マシン以外の端末でァイルの交換も含めて全ての業務を行いたい場合は、その端末に固定ルート(スタティックルーティング)を設定する必要があります。ルートの追加方法は、こちらのページを参考にしてください。
NTTスタートパック導入時のカルテメーカーの設定方法

 

カルテメーカーの請求処理用端末で共有の確認

上記で決定した端末で操作します。

カルテメーカー側からの共有の設定と確認はwinとMacで違います。

Winの場合


タスクバー の検索ボックスにネットワークパスをいれる

タスクバー の検索ボックスにネットワークパスを入れていきます。「¥¥xxxxxxxx」といれていくと¥の前までのコンピュータ名あるいはIPアドレスを全部いれると右側にコンピュータのアイコンが表示されます。

81

□ネットワークパス

共有フォルダを作成した時に確認したネットワークパス(「¥¥xxxxxxxx¥電子レセプト」)を確認してください。ネットワークパスはオン資格用端末PCのIPアドレスでもOKです。例えばIPアドレスが「192.168.1.83」であれば「¥¥192.168.1.83¥電子レセプト」がネットワークパスになります。


¥¥xxxxxxxx¥電子レセプト」までいれるとアイコンは消えますが、「開く」コマンドが表示されるので、「開く」をクリックします。

最後まで入れなくても、入力途中で左側に「¥¥xxxxxxxx¥電子レセプト」がリストアップされてきたら、それをダブルクリックしてもいいです。

82

アカウントとパスワードをいれる

実行マシンで操作するとすぐに電子レセプトのフォルダが開くと思いますが、それ以外のPCの場合は、共有フォルダにアクセスするアカウントを指定する画面が開きます。上記で確認した「OqsComApp」アカウントを指定します。

アカウント名(上の欄)には「OqsComApp
パスワードOqsComAppのパスワードです。オンライン資格確認端末起動時に入れるパスワードです。

資格情報を記憶する」はチェックしておきます。

OK」を押します。

6

フォルダが開く

アカウントの設定が正しければフォルダが表示されます

84

ショートカットを作る

次回以降、簡単に開けるようにショートカットを作っておきます。

アドレスバーのアイコンをデスクトップにドラッグ&ドロップするとショートカットができます。

一旦エクスプローラーを閉じて、作成したショートカットでフォルダが開くことを確認してください。

85

 

Macの場合


サーバーへ接続」を使う

Finderを開き、「移動」メニューから「サーバーへ接続...」を選びます。

20230907-00826

ネットワークパスを入力

Win用のネットワークパスのサーバー部分をMac用に変更して入力します。先頭の「¥¥」を「smb://」に途中の「¥」以下は入力しません。

¥¥xxxxxxxx¥電子レセプトsmb://xxxxxxxx
¥¥192.168.1.83¥電子レセプトsmb://192.168.1.83

「接続」ボタンを押します。

*全角のフォルダ名を入力できないためです。

20230907-00935

接続確認ダイアログが表示される。

接続」を選んでください。

このダイアログは表示されない場合もあります。

20211126-183332

アカウントとパスワードをいれる

実行マシンで操作するとすぐに電子レセプトのフォルダが開くと思いますが、それ以外のPCの場合は、共有フォルダにアクセスするアカウントを指定する画面が開きます。上記で確認した「OqsComApp」アカウントを指定します。

ユーザーの種類」は「登録ユーザ
名前」は「OqsComApp
パスワード」はOqsComAppのパスワードです。

このパスワードをキーチェーンに保存」はチェックしておきます。

接続」を押します。

20211126-183357

アカウントの設定が正しければ、共有可能なフォルダの一覧がでるので「電子レセプト」を選択します。

20230907-00944

フォルダ(ボリューム)が開く

電子レセプト」フォルダ(ボリューム)が表示されます

Macでは共有フォルダはHDと同じボリューム扱いです。

20230907-00956

エイリアスを作る。

次回以降、簡単に開けるようにエイリアスを作っておきます。

電子レセプト」フォルダ(ボリューム)をデスクトップにoptionキー+⌘キー+ドラッグしてエイリアスを作ります。

一旦「電子レセプト」フォルダ(ボリューム)を取り出して、作成したエイリアスでボリュームをマウントできることを確認してください。

20230907-01040

Mac起動時に自動的にマウントさせる

アップル」メニュー → システム環境設定 → 「ユーザーとグループ」と開きます。

上のタブで「ログイン項目」を選びます。

」ボタンを押します。

20230907-145057

ファイル選択ダイアログが開くので、オンライン資格確認PCを選び、表示された「電子レセプト」ボリュームを選択して「追加」ボタンを押します。

20230907-01250

リストに「電子レセプト」ボリュームが表示されていればOKです。

コンピュータを再起動して「電子レセプト」ボリュームのウインドウが開けばOKです。

20230907-145137

 

請求処理用端末のカルテメーカーの設定

上記で決定した端末で操作します。


カルテメーカー(ファイル)メニューから「環境設定(設定)」を選択します。

連携フォルダ」の「電レセ」には
Winの場合はネットワークパスを入れます。「¥¥PCname¥電子レセプト¥、¥¥192.158.1.83¥電子レセプト¥等」(¥を最後に入れます)
返戻」は「電レセ」と同じにします。

79-2

Macの場合はボリューム名を入れます。「電子レセプト:」(:を最後に入れます)

20230906-151039

以上で設定は終了です。

 

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

2023年7月25日 (火)

「単一建物診療患者」管理機能の解説

訪問歯科衛生指導料と介護保険の居宅療養管理指導費の算定の基準は「単一建物診療患者(単一建物居住者)」数によります。「単一建物診療患者(単一建物居住者)」とは、同一月に同一建物で診療(あるいは介護)する人です。

訪問歯科衛生指導料と居宅療養管理指導費では、月初に「単一建物診療患者(単一建物居住者)」の人数を確定し、その人数の区分の点数をその月に算定していきます。

この算定に関しては例外もあり、その制度自体を解説しようとするととても大変なので、以下のリンクを参照してください。

訪問診療の患者数と報酬日本訪問歯科協会

なお、訪問歯科衛生指導料と居宅療養管理指導費では、それぞれ別に人数をカウントします。同じ施設に、訪問歯科衛生指導料を算定した人が一人、居宅療養管理指導費を算定した人が一人の場合は、二人とカウントするのではなく、それぞれ一人とカウントします。

カルテメーカーでは、「単一建物管理」という機能で、
  その月の実績を集計し、
  翌月の計画を決定し、
  それをカルテの反映し、
日々の入力では、その計画に従って自動的に正しい区分の訪問歯科衛生指導料あるいは居宅療養管理指導費を入力するようにします。

 

カルテメーカーでの自動算定の方法

カルテメーカーではカルテの月初に「単一建物人数」というのを入力します。この項目には計画した人数や例外等が設定されています。その月はこの「単一建物人数」に従って、訪問歯科衛生指導料あるいは居宅療養管理指導費が自動入力されます。

右図の場合、単一建物診療患者数は2人で「2〜9人」の区分で「訪問歯科衛生指導料」を自動算定するように動作します。

20230724-215921

この状態で入力を開始すると、訪問診療の入力画面では、「訪衛指2」だけしか選択できない状態で表示されます。

この月初の「単一建物人数」の設定を「単一建物管理」機能で行います。

20230724-215939

 

 

「単一建物管理」機能(基本的な使い方)

ファイル」メニュー → 「総合情報
リストから「単一建物管理」をダブルクリック
で、右のような「単一建物管理」画面が開きます。

処理は月末に行うので、レセプトの集計月と同じ月の管理画面が開きます。月の変更もレセプト一覧と同じで、ツールバーあるいはナビパレットの矢印ボタンで変更できます。

右図のように5月であれば、5月1日から5月31日までのデータを集計し、計画を立案し、6月1日の日付で、「単一建物人数」をカルテに書き込みます。

20230709-213456

集計」ボタンを押して当該月(例の場合は5月)の実績を集計し、予測される計画を求めます。

集計は施設毎に行われ、上のリストの表示されます(「建物毎」でないことに注意してください。同一の建物に複数の施設が存在する場合があります。)

上のリストには、施設名と医療(訪衛指)と介護(居宅療養指導)それぞれの実績数と翌月の計画が表示されています。

上のリストの1行をクリックすると、その施設の詳細がリストの右側に表示され、下のリストには、その施設の所属する患者さんのリストが表示されます。

右側の詳細部分のプルダウンメニューやチェックボックス、人数等を変更すると計画が修正されます。

20230723-151352

下のリストから、1行をクリックして患者さんを選択後「カルテ」ボタンを押すと、その患者さんのカルテが開いて実績と計画を確認することができます。

上下のリストをクリックして、計画を確認し、場合によっては計画を修正します。

20230723-155855

計画を確認、修正して問題がなくなりましたら「一括設定」ボタンを押して「単一建物人数」(計画)を対象の全てのカルテに入力します。

カルテに書き込むと、下のリストの「翌月計画」の欄に「単一建物人数」に設定された計画が表示されます。

施設設定」ボタンを押した場合は、上のリストで選択した施設に属する患者さんのカルテだけに書き込みます。

個別設定」ボタンの場合は、下のリストで選択した患者さんのカルテだけに書き込みます。

計画を修正したあとに、再度「〜設定」ボタンを押すと、カルテの「単一建物人数」は上書きされます。

20230723-161217

設定後にカルテを確認すると翌月の1日付けで「単一建物人数」が入力されているのがわかります。

これで、当月の計画の設定はおわったので、通常通りに入力していけば計画通りの区分の訪衛指あるいは居宅療養指導管理が自動算定されます。

20230723-162505

 

「単一建物人数」について

カルテに入力された「単一建物人数」は、その月に算定される訪衛指あるいは居宅療養指導管理の区分を規定するものですが、同時に、訪衛指算定時の単一建物人数が二人以上の場合や、例外の場合の摘要欄記載を自動化する機能も併せて持っています。

訪衛指算定時に必要な摘要欄記載には3つあります。
 ・単一建物人数が二人以上の場合はその人数を記載する
 ・単一建物人数が二人以上の場合で、一人の区分で算定する場合の例外の該当条件を記載する
 ・月の途中で人数が変化する場合、その理由を記載する
これらの摘要欄記載も「単一建物人数」で管理します。

通常は「単一建物管理」で設定済みですので修正等の必要はないですが、訪問先が変更になったりした場合などはマニュアルで追加して内容を修正する必要があります。

 


カルテに入力された「単一建物人数」をダブルクリックして開くとこのような画面になります。

制度区分」は訪衛指と居宅療養指導管理のどちらで算定するかを決めます。

単一建物区分」は算定区分です。

単一建物人数」はその月に計画された単一建物における人数です。

例外」は「単一建物人数」が二人以上なのに「単一建物区分」が一人の場合の例外条件を設定します。

人数が変更になった理由」には月の途中で算定区分が変化した時の理由を記載します。

20230723-173107

 

「訪問先・理由」について

単一建物管理」機能の追加に伴って、カルテに入力した「訪問先・理由」項目の内容が変更になってます。より厳密に「建物」を管理区分するための変更です。

単一建物管理」機能を使う前に、「訪問先・理由」項目の内容を確認し、必要に応じて修正をおこなってください。


カルテに入力された「訪問先・理由」をダブルクリックして開くとこのような画面になります。

修正点というか、大事な部分は以下の部分です。

種別」プルダウンメニューから、その建物の施設種別を選択します。

施設名・建物名」には、建物の名前をいれます。種別が自宅で一戸建てであれが省略します。自宅であってもマンションやアパートのような集合住宅の場合は建物の名称をいれます。病院の場合は、病院名と病棟名をいれます。この名前で建物を区別しますので、同名で違う建物の場合、数字や記号を追加するか「〇〇町のXXアパート」みたいな感じで区別できるようにしてください。

集合住宅の場合「戸数」にその建物の総戸数を入力しておくと戸数の例外を自動的に処理します。

種別が認知症対応型共同生活介護事業所(グループホーム)の場合は、「ユニット名」に、ユニットの名前をいれてください。

同一世帯の例外を判定するために「世帯名」のところに世帯主の名前(区別可能なら苗字だけ、同性がいる場合は名前も)を入力します。

20230723-184923

 

様々なケース

治療の中止あるいは患者死亡等で人数が減るケース

治療の中止あるいは患者死亡で翌月から受診しないことが明確になった場合は、次のようにします。


通常通り集計します。

その患者さんが所属する施設をクリック

①その患者さんをクリックして選択

②設定指示のプルダウンメニューから「対象外」を選択。リストの「指示」が「なし」になるのを確認

③「再評価」ボタンを押す。

20230723-230238

人数を再集計し、妥当な区分を再評価します。結果はリストに表示されます。

この例の場合は、一人の患者さんが中止になったので、単一建物人数が二人から一人に変更になり区分が変更になります。

この状態で「〜設定」ボタンを押すと、カルテの「単一建物人数」が上書きされます。「なし」に設定した患者さんで、すでに「単一建物人数」が入力済みであった場合は、カルテから削除されます。

20230723-230256

新規に訪問診療を開始する場合(自宅等で明らかに単一建物人数が一人の時)

訪問診療の新患で、訪問先が自宅とか新規の建物とかで明らかに単一建物人数が一人の時は、単純に訪問診療を開始し、「一人」の区分の訪衛指あるいは居宅療養指導管理を算定します。

20230724-105628

新規に訪問診療を開始する場合(訪問先の建物に訪問実績がある場合)

訪問診療の新患で、訪問先の建物に、すでに訪問診療中の他の患者さんがいる場合は、次のように処理します。


まず、訪問先の実績(計画)を確認します。6月に診療を開始するのであれば、5月分の「単一建物管理」画面にして「集計」ボタンを押して集計します。

訪問先施設の行をクリックして選択し、「翌月計画」の人数を確認します。この人数に一人足した人数がこの患者さんにとっての「単一建物人数」です。この人数を基に、例外に該当するかどうか等を勘案して算定区分と摘要欄記載を決定します。自動ではありません。

なお、この時、「実績」のところの人数は使わないでください。実績の人数は、施設毎の人数で建物毎の人数ではありません。(同じ建物に複数の施設が入っているケースがあるためです。)

画面の例では「たんぽぽホーム」に新しい患者さんが増えるケースです。もともと「たんぽぽホーム」に一人の患者さんがいたので、新患のかたの「単一建物人数」は二人になり、2〜9人の区分で訪衛指を算定することになります。

20230724-113019

通常通りに訪問診療の入力をして、決定した区分の訪衛指(あるいは居宅療養指導管理)を算定します。画面の例では、2〜9人の区分で算定することにしたので、「訪衛指2」を選択しています。

20230724-121826

カルテに入力したら、「単一建物人数」を追加します。

追加する場所は、初診(あるいは再診)の下に入力します。

20230724-144925

単一建物人数」は、「訪問診療」セットの中にあります。算定区分毎に入力する項目が違いますので、算定区分にあった「単一建物人数」を選びます。(入力後に修正できますので、間違っても問題ないです。)

20230724-121941

入力された「単一建物人数」をダブルクリックして開いて、「単一建物人数」や「例外」の項を正しく設定しなおします。これで摘要欄の記載が正しくなります。

以後は通常通り入力していけば算定区分は自動的に決定されます。

20230724-122005

入院等で訪問先が変更になり、単一建物人数が変化する場合

老人ホーム等で暮らしていた患者さんが病状の悪化や転倒等の怪我等で入院し、訪問先が変更になりそれに伴って単一建物人数が変化する場合は、次のように処理します。


具体例でみていきましょう。画像では6/5日は単一建物人数が二人の施設に訪問診療をした患者さんです。その後、入院されてその入院先に訪問診療をしました。

20230724-214028

入院後の訪問診療時の入力画面です。訪問先を変更します。

訪問先を変更すると、訪衛指の算定制限が解除されるので、新しい訪問先の単一建物人数に応じた算定区分の訪衛指を選択します。

この例では、入院先は一人の区分なので、訪衛指1を選択してます。もし、逆に退院して元の施設に戻るという場合は、一つ前のケースのように「単一建物管理」で施設の実績を調べて、適切な区分を選択するようにします。

20230724-214235

入力が終わったら、先のケースと同じように再診の次の行あたりに「単一建物人数」を入力します。

20230724-214335

単一建物人数」をダブルクリックして開きます。

算定区分が変わったので、その理由を入力します。ここに入力された内容が摘要欄に表示されます。

20230724-214435

以上

 

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

2023年5月27日 (土)

オンライン資格確認 診療・薬剤情報の取得方法

カルテメーカー上で、オンライン資格確認システムから診療・薬剤情報、特定健診情報を取得する方法を解説します。

 

オンライン資格確認での医療情報の取り扱いと権限管理

オンライン資格確認システムでは、患者さんがマイナンバーカードで受診し、情報提供に同意した場合に「診療(手術)・薬剤情報」「特定健診情報」を取得することができます。ただし、この医療情報を取得し閲覧するには「医師、歯科医師、薬剤師」の資格が必要です。そのため、オンライン資格確認システムや電子カルテシステムにログインする際に「医師、歯科医師、薬剤師」の資格持つユーザーに割り当てたアカウントでログインする必要があります。

このように一定の資格がないと情報にアクセスできないように管理することを「権限管理」といいます。高度な個人情報である医療情報にアクセスできるのは医療情報のガイドラインでは「医師、歯科医師、薬剤師」に原則限ることになってますので、「権限管理」機能を使って情報へのアクセスをコントロールします。

カルテメーカーでの取り扱いも同じです。すでにカルテメーカーの電子保存を使っている場合は、カルテメーカーの起動、サーバーへの接続時に自分のアカウントとパスワードでログインしないと起動できないようになってますので、その場合は「歯科医師」の資格を持つアカウントでログインしていただければ「診療・薬剤情報」へのアクセスが可能になってます。

まだ、そのような使い方をしていない場合は、歯科医師のユーザーアカウントを追加し、そのアカウントで医療情報の取得と閲覧をするようになります。

また、このような医療情報を管理する場合、不正なアクセスを防止する意味で、これらの医療情報に何時、誰がアクセスしたかのログを残すことが必要とされています。カルテメーカーも同様のログを記録しています。

 

ユーザーアカウントの追加

次の手順で歯科医師のユーザーアカウントを追加します。電子保存をすでに使っていて歯科医師のアカウントがある場合は不要です。

 


ファイル」メニュー → 「総合情報
リストから「保守
マスター」メニュー →「ユーザー
で、この画面(ユーザーマスタ画面)が表示されます。

20230525-183851

更新」メニュー → 「新規
で、このダイアログが表示されます。 ID番号をここでいれます。重複しない番号を入力してください。

20230525-183923

OK」ボタンを押すと、このユーザー情報の修正画面になります。
名前」は院長とかではなく必ず個人名をいれてください。
医療情報に誰が何時アクセスしたかのログが残ります。後日監査等でログの提出の可能性がありますので必ず医師の本名で登録してください。
職域」は「歯科医師
状態」は「勤務」にします。
役職」は適当に。
レベル」はそのままの「0」にしてください。
入力を確認したら、右上の「OK」ボタンで保存します。

20230525-184028

リストにユーザーが追加されました。
次にこのユーザーのパスワードを変更します。
追加したユーザーをダブルクリックしてください、先ほどの修正画面になります。

20230525-184050

旧パスワード」は初期パスワードの「1234」です。
新パスワード」に新しいパスワードを入れます。特に制限は設けていませんが13文字以上が推奨です。
パスワード再入力」は確認用です。同じパスワードをいれてください。
パスワードはハッシュで管理してますので、忘れると復元は不可能です。適切に管理してください。
入力を確認したら、右上の「OK」ボタンで保存します。

以上で登録は終了です。複数の歯科医師が勤務している場合、歯科医師ごとにユーザーアカウントが必要ですので、上記の操作を繰り返して追加してください。

20230525-184111

 

オンライン資格確認システムの設定変更

オンライン資格確認システムの初期状態では取得できるのは「薬剤」情報と「特定検診情報」だけになっています。「診療情報」そして2023年5月から始まった「手術情報」を取得するにはオンライン資格確認システムの設定を変更する必要があります。

 


オンライン資格確認PCでオンライン資格確認システムに「管理者」のアカウントでログインします。
環境設定情報更新」をクリックします。

157_20230527092801

手術情報
薬剤情報
診療情報
特定検診情報
を「利用する」に設定
更新」ボタンを押して保存です。 ログアウトして設定作業は終わりです。

158_20230527092501

 

 

診療・薬剤情報、特定健診情報の取得方法

カルテメーカーで医療情報を取得するにはカルテに「添付書類」の「オン資格 診療・薬剤情報」と「オン資格 特定検診情報」を入力し、その添付書類に情報を読み込みます。現在はpdfファイルのみを取得していますので、通常の紙の書類のような形式で医療情報が表示されるようになっています。

 


カルテに「オン資格 診療・薬剤情報」と「オン資格 特定検診情報」を入力します。
セット入力で「添付書類」を選ぶとリストにでてきますので、この2つを選択して入力します。

20230525-184338

カルテに入力できたら、取得する情報の添付書類をダブルクリックして開きます。

20230525-184345

電子保存をしていない場合は、この表示になり操作ができません。先ほど登録した歯科医師のアカウントでログインします。
ログイン」ボタンを押します。

20230525-184353

ログイン画面になります。ユーザーを選択して、パスワードをいれてください。
ログイン状態は、カルテメーカーの終了まで維持します。

20230525-184402

編集画面になりますので、「医療情報取得」ボタンを押してください。資格確認の時と同じような感じで情報の取得が開始されます。数秒で取得が完了します。

20230525-184416

このようなpdf書類がダウンロードされてきます。
右上の「OK」ボタンを押して保存してください。
保存後はカルテのこの項目をダブルクリックすると表示されます。また、情報パネルの「添付書類」からも参照できます。

20230527-113138

〜が存在しません」のエラーが表示される場合は文字通り医療情報が存在しないので取得できません。「閲覧同意情報が存在しません。」の場合は、患者さんが顔認証端末で情報提供に同意していないか、同意から24時間が経過しているので取得できません。
それ以外のエラーの場合は、ネットワークや機器に問題がありますのでシステムの点検等をするようにしてください。

20230527-122755

以上、オンライン資格確認システムからの医療情報の取得方法でした。

 

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

2022年11月23日 (水)

NTTスタートパック導入時のカルテメーカーの設定方法

NTTのスタートパックを利用してオンライン資格確認システムを導入した時のカルテメーカー側の設定方法を解説します。

NTTの工事の概要

工事前の状況は各医院によっていろいろでしょうが、インターネットを院内でも利用していた場合は、多くの場合以下のような接続状態になっているかと思います。 Untitled-65

NTTの標準的な工事では、オンライン資格確認用端末を設置し、オンライン資格確認用ルータ(オン資ルータ)を使って、既存のネットワークと接続する工事を行います。最終的には以下のような状態になります。

Untitled-64

オンライン資格確認端末は、既存のネットワークとは分離された新しいネットワーク(10.51.1.x)に置かれます。オン資ルーターはVLAN(バーチャルLAN、仮想LAN)という機能で、LANポートごとに違うネットワークに設定することができるので、一つの機器でネットワークを分離することができます。このオン資ルーターについてもう少し詳しくみていきましょう。

Untitled-63

ネットワークを分離するのは、オンライン資格確認システムの導入方法(その16)で解説したように、ステートフルインスペクション機能(SPI)を有効化してセキュリティを強化するためです。

NTTの場合、ネットワークの分離とその分離されたネットワーク間でのルーティング、HGWとオンライン資格確認端末との接続などを、1台のルーターで実現してます。オン資ルーターには4つのLANポートがあるのですが、それを2つずつに分離して、片方は従来のネットワークに接続できるように192.168.1.xxのIPアドレスがふってあり、もう片方には、オンライン資格確認端末が所属する10.51.1.xxのアドレスがふってあります。LAN1、LAN2が、10.51.1.xx、LAN3、LAN4が192.168.1.xxです。

この2つのネットワークは内部でルーターを介して接続された状態になっています。そしてSPI機能が有効化されていて、192.168.1.xx側から通信を始めることはできますが、10.51.1.xx側から通信を始めることはできません。

2つのネットワークはそのままでは通信できないので、内部でルーターが機能しているのですが、このルータはLAN3、4側(192.168.1.254)に届いた10.51.1.xx宛てのパケットだけをLAN1、2番側に通して10.51.1.xxへ発信します。逆にLAN1、2側(10.51.1.1)に届いた192.168.1.xx宛てのパケットをLAN3、4側に通して、192.168.1.xxへ発信するようにします。これで、両者のネットワークの間を結んで通信できるようにしているのです。

 

 

デフォルトゲートウェイとインターネット

NTTの設定と今までの連載の設定を比較を比較するとインターネットへの接続方法が異なります。NTTの場合、既存のインターネット接続はそのままで、オンライン資格確認端末までの別のルートを追加した形になってます。言い換えると、192.168.1.xxから外側に向かう経路が2つできています。一つはインターネット、もう一つはオンライン資格確認端末です。

工事以前は、外側すなわちインターネットへの通信は、唯一の出口であるHGWに向けてパケットを送るだけでだけでOKでした。このとりあえず送っておけばいいという出口をデフォルトゲートウェイといいます。自動的にインターネットへの接続を設定させるとデフォルトゲートウェイも自動的に決定されます。

NTTの工事が済むとデフォルトゲートウェイに追加して、オンライン資格確認端末までの新しい出口ができます。この新しい出口は単にゲートウェイと呼ばれます。新しい出口はできたものの、従来の院内LANに接続されたコンピュータの設定はそのままですので、全ての通信は従来からあるデフォルトゲートウェイへ送られてしまい肝心のオンライン資格確認端末と通信することができません。

オンライン資格確認端末と通信するには、誰かが、オンライン資格確認端末への通信は、こっちの新しいゲートウェイを使いなさいという「道筋」を教える必要があります。その「道筋」を「静的ルーティング(スタティックルーティング)」と呼びます。

 

 

静的ルーティングの設定

静的ルーティングの設定は、全てのコンピュータにする必要はなく、実際に通信をするコンピュータにだけ設定(教える)するだけでOKです。具体的にはカルテメーカーの「実行マシン」に設定します。

*実行マシンについては、オンライン資格確認システムの導入方法(その14)をお読みください。

静的ルーティングの設定に必要な情報は、

誰宛ての情報を、どこに送るか です。

具体的には

オンライン資格確認端末が属しているネットワーク(10.51.1.0)宛ての情報を、新しく追加したゲートウェイ(192.168.1.254)へ送るように設定します。

この部分の具体的なIPアドレス(10.51.1.0や192.168.1.254)は実際は違うアドレスの可能性があります。このアドレスは必ず、NTTの工事が完了した時に渡される「【スタートパック】設定シート(ヒアリングシート)」をみて確認してください。

 

オンライン資格確認端末が属しているネットワークのIPアドレスの確認

「【スタートパック】設定シート(ヒアリングシート)」の最初のページ、「■オン資PC設定に必要な項目」の表の中の「23 オンライン資格確認端末のIPv4アドレスを指定します」のアドレス(通常は10.51.1.2)④を確認し、最後の数字を「0」にしたもの(10.51.1.0)①が設定するアドレスです。

また、同じ23の項目の右端に記載されている「サブネットマスク(通常は255.255.255.0)」②も必要になりますので、メモしておいてください。

 

新しく追加したゲートウェイのIPアドレスの確認

「【スタートパック】設定シート(ヒアリングシート)」の最後のページ、「パターン」と書かれてる表の中の「(7) VLAN2のアドレス」のアドレス(通常は192.168.1.254/24)を確認し、最後の「/24」を除いたもの(192.168.1.254)③が設定するアドレスです。

では次に具体的な操作手順をみていきましょう。

 

操作手順(Windows)

実行マシンがWindowsの場合は次のように操作してください。

静的ルーティングの設定


1、画面左下、タスクバーの虫メガネアイコンをクリックし「検索するには、ここに入力します。」に「CMD」と半角で入力

コマンドプロンプトが表示されるので、「管理者として実行」をクリック

129

2、確認ダイアログに「はい」を押す。

20221122-223217

3、コマンドプロンプトが起動するので、以下のようにタイプしてリターンキーを押します。

route add 10.51.1.0 mask 255.255.255.0 192.168.1.254 -p

アドレスが標準と違う場合は、以下を参考に修正してください。

131
Untitled-66

4、コマンドが正しければ「OK!」と表示されます。

133

5、確認のため、次のようにタイプしてリターンキーを押します。

route print

135_20221122233701

6、このように「固定ルート」と表示されて、アドレス、マスク、ゲートウェイが正しいことを確認してください。

136_20221122234001

7、このように「固定ルート」が表示されず、アクティブルートにだけ追加されている場合は、ステップ3で、最後の「-p」を入れ忘れています。再度、ステップ3のコマンドを正しく入力してrouteコマンドを実行してください。

138_20221122234801

8、このように誤って登録してしまった場合は

140_20221123000101

9、次のようにタイプしてリターンを押して、削除してください。

route delete 10.51.55.0

ここでいれるIPアドレス(10.51.55.0)(赤線部分)は誤って入れてしまった相手先のIPアドレスです。

141_20221123000601

10、削除を確認するために、再度route printと入力して確認してください。

削除を確認したら、ステップ3のコマンドを正しくいれて、route printで確認しください。

143

ファイル共有の設定

スタティックルートが正しく設定できたら、カルテメーカーの実行マシンからオンライン資格確認端末の共有フォルダを共有することができます。オンライン資格確認端末の共有フォルダの設定はNTTさんのほうで設定済みですので、カルテメーカー側でファイル共有をする設定をします。

やり方は連載の「小目標46: 電子カルテ側の設定をする(win編)」と基本的には同じですが少し違いがありますので、改めて解説していきます。

 


1、タスクバー の検索ボックスに次の形式でネットワークパスをいれます。

¥¥10.51.1.2¥face

ネットワークパスはオンライン資格確認端末のIPアドレス(通常は10.51.1.2)を直接指定する形式です。

この時指定するIPアドレスは、「【スタートパック】設定シート(ヒアリングシート)」の最初のページ、「■オン資PC設定に必要な項目」の表の中の「23 オンライン資格確認端末のIPv4アドレスを指定します」のアドレスです。

開く」コマンドが表示されるので、それをクリックします。

16_20211126164701
*画像のIPアドレス(ネットワークパス)は違います

2、アカウントとパスワードをいれる

共有フォルダにアクセスするアカウントを指定する画面が開きます。

アカウント名(上の欄)には「OqsComApp」です。

パスワードはOqsComAppのパスワードです。
「【スタートパック】設定シート(ヒアリングシート)」の最初のページ、「■オン資PC設定に必要な項目」の表の中の「2 windowsアカウント:パスワード」のパスワードをいれます。

資格情報を記憶する」はチェックしておきます。

OK」を押します。

6

3、フォルダが開く

アカウントの設定が正しければフォルダが表示されます。

 

7_20211126171301

4、ショートカットを作る

次回以降、簡単に開けるようにショートカットを作っておきます。

アドレスバーのアイコンをデスクトップにドラッグ&ドロップするとショートカットができます。

一旦エクスプローラーを閉じて、作成したショートカットでフォルダが開くことを確認してください。

20_20211126171901

5、faceフォルダの動作確認

連載の「小目標48: ファイル共有の動作確認」に従って動作確認をしてください。

20211127-172922_20211127174301

6、req、resフォルダの共有設定

オンライン資格確認端末の「req」「res」フォルダも共有します。操作方法は「face」フォルダと同じですので、以下のネットワークパスをタスクバー の検索ボックスにいれて検索し、アカウントを指定し、ショートカットを作成してください。

¥¥10.51.1.2¥res

¥¥10.51.1.2¥req

16_20211126164701
*画像のIPアドレス(ネットワークパス)は違います

カルテメーカーの設定

カルテメーカーの設定は、「オンライン資格確認システムの導入方法(その14)」の通りですので、この記事に従って設定していきます。

なお、「小目標52: 実行マシンでの設定」の連携フォルダの設定(win)は、以下のようにIPアドレスを直接指定した形式で設定してください。

reqフォルダ
¥¥10.51.1.2¥req¥

resフォルダ
¥¥10.51.1.2¥res¥

faceフォルダ
¥¥10.51.1.2¥face¥


 

操作手順(Mac)

実行マシンがMacの場合は次のように操作してください。

静的ルーティングの設定


1、現在、接続されているネットワークサービスを確認します。

「アップル」メニュー→「システム環境設定...」→「ネットワーク」と操作し、接続済みのネットワークサービスを確認して名前を控えておきます。この場合なら、「AX88772 2」と「Wi-Fi」が接続されています。

20221123-125140

2、次に「アプリケーション」→「ユーティリティ」フォルダの中の「ターミナル.app」をダブルクリックして起動します。

20221123-123119

3、次のようにタイプしてリターンキーを押して実行します。

networksetup -listallnetworkservices

20221123-123659

4、現在利用可能なネットワークサービスが表示されます。

1で確認したネットワークサービスがあることを確認してください。

スタティックルートを設定するには、ネットワークサービスを指定する必要があります。どのネットワークサービスにするかを決めて、その名前を控えておきましょう。

今回は有線のイーサネットの「AX88772 2」に設定してみます。

20221123-124441

5、ネットワークサービス名を正確に入力するために、リストから名前をコピーしましょう。直接タイプしてもいいのですが、スペース等が正確でないと失敗しますのでコピペします。先ほど表示されたリストをスクロールして該当する名前を選択してコピーします。

20221123-130055

6、次のコマンドをいれてリターンします。

networksetup -getadditionalroutes 'AX88772 2'

ネットワークサービス名は必ず「'(クォート)」で囲ってください。名前自体は先ほどコピーした名前をペーストしましょう。

20221123-130123

7、初期状態ではこのように、追加のスタティックルートが存在しないと表示されるはずです。

20221123-131205

8、次のコマンドを入れて、スタティックルートを追加します。

networksetup -setadditionalroutes 'AX88772 2' 10.51.1.0 255.255.255.0 192.168.1.254

アドレス等が標準と違う場合は、以下を参考にコマンドを修正してください。

20221123-131829 Untitled-67

9、確認のため6と同じ次のコマンドをいれてリターンします。

networksetup -getadditionalroutes 'AX88772 2'

6でタイプしたところを選択してコピペすると簡単です。

20221123-133308

10、このように追加されたスタティックルートが表示されます。

相手先アドレス、サブネットマスク、ゲートウェイの順で表示されますので確認してください。

20221123-133325

11、もし、アドレス等を誤って登録してしまった場合は、以下のコマンドをいれて誤ったルートを削除します。

networksetup -setadditionalroutes 'AX88772 2'

スタティックルート設定コマンドと同じですが、IPアドレス等のパラメータを省略してネットワークサービス名だけをいれるとルートが削除されます。

20221123-133405

12、次のコマンドで削除されたことを確認して(There are no additional IPv4 routes on AX88772 2.と表示される)、ステップ8からやり直してください。

networksetup -getadditionalroutes 'AX88772 2'

20221123-133439

13、正常にスタティックルートが追加できたら、ターミナルを終了してください。

 

ファイル共有の設定

スタティックルートが正しく設定できたら、カルテメーカーの実行マシンからオンライン資格確認端末の共有フォルダを共有することができます。オンライン資格確認端末の共有フォルダの設定はNTTさんのほうで設定済みですので、カルテメーカー側でファイル共有をする設定をします。

やり方は連載の「小目標47: 電子カルテ側の設定をする(mac編)」と基本的には同じですが少し違いがありますので、改めて解説していきます。

 


1、「サーバーへ接続」を使う

Finderを開き、「移動」メニューから「サーバーへ接続...」を選びます。

20211126-183235

2、ネットワークパスを入力

サーバーへ接続ダイアログが開きます。以下のようにタイプします。

smb://10.51.1.2/face

「ネットワークパスはオンライン資格確認端末のIPアドレス(通常は10.51.1.2)を直接指定する形式です。
この時指定するIPアドレスは、「【スタートパック】設定シート(ヒアリングシート)」の最初のページ、「■オン資PC設定に必要な項目」の表の中の「23 オンライン資格確認端末のIPv4アドレスを指定します」のアドレスです。

20211126-183321
    *画像のIPアドレス(ネットワークパス名)は本文と違います。
    本文の通りに入力してください。

3、接続確認ダイアログが表示される。

「接続」を選んでください。

このダイアログは表示されない場合もあります。

20211126-183332

4、アカウントとパスワードをいれる

共有フォルダにアクセスするアカウントを指定する画面が開きます。

「ユーザーの種類」が「登録ユーザ」であることを確認してください。

アカウント名(名前)には「OqsComApp」です。

パスワードはOqsComAppのパスワードです。
「【スタートパック】設定シート(ヒアリングシート)」の最初のページ、「■オン資PC設定に必要な項目」の表の中の「2 windowsアカウント:パスワード」のパスワードをいれます。

このパスワードをキーチェーンに保存」はチェックしておきます。

接続」を押します。

20211126-183357

5、faceフォルダが表示されます。

 

20211126-183416

7、エイリアスを作る。

次回以降、簡単に開けるようにエイリアスを作ります。

faceフォルダをデスクトップにoptionキー+⌘キー+ドラッグしてエイリアスを作ります。

ちなみにMacでは、共有ファルダはボリューム(ドライブ)としてマウントされます。ちょうど外部ハードディスクを接続したのと同じ扱いとなります。

20211126-184105

8、faceフォルダの動作確認

連載の「小目標48: ファイル共有の動作確認」に従って動作確認をしてください。

20211127-172922_20211127174301

9、req、resフォルダの共有設定

オンライン資格確認端末の「req」「res」フォルダも共有します。操作方法は「face」フォルダと同じですので、サーバーへ接続を実行し、以下のパスをいれて、アカウントを指定し、エイリアスを作成してください。

smb://10.51.1.2/res

smb://10.51.1.2/req

20211126-183321

カルテメーカーの設定

カルテメーカーの設定は、「オンライン資格確認システムの導入方法(その14)」の通りですので、この記事に従って設定していきます。

カルテメーカーの動作が確認できれば完了です。

 

 

以上でNTTスタートパック導入時のカルテメーカーの設定方法の解説は終わりです。

 

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

2022年8月25日 (木)

電子処方せん 基本的な構成

電子処方せんはXML文書であって「XAdES(XML Advanced Electronic Signatures)形式」の長期署名プロファイルで電子署名を施した文書形式です。

「XAdES」フォーマットは、ETSI TS 101 903で定義されたフォーマットです。

規格書だけでは具体的なイメージがなかなか掴めなかったのですが、ONSからサンプルが提供されましたので、早速それを解析してみました。なお、提供された文書を簡単な検証アプリをプラグラムして検証したところ問題なく検証できました。

 

署名対象

以下の図は署名対象を解析したものです。

3つのブロックを署名対象としています。
  1、処方せんデータ
  2、署名者の電子証明書
  3、object要素内のSignedPropertes要素(署名者の情報や署名時刻が記録されている部分)

署名対象は<SignedInfo>要素の中にまとめられています。それぞれのブロックは指定された形式でダイジェスト化され、ハッシュ値が計算されてそれがブロックごとに記録されています。

どのブロックをどのように処理するかは、<xs:Reference>要素に記述されています。3つのブロックがあるので、<xs:Reference>要素も3つあります。ブロックの指定は<xs:Reference>タグの「URI」属性でIDを使って指定します。

<xs:Transforms>で正規化方法を<xs:DigestMethod>でダイジェストを求めるアルゴリズムを指定します。

ダイジェスト処理で得られたハッシュ値は<xs:DigestValue>に記述します。

Untitled-58

 

電子署名

電子署名は、ハッシュが記録された「SignedInfo」要素を指定された形式に正規化し、指定された形式のハッシュを求め、それを署名者の秘密鍵で暗号化して「SignatureValue」要素内に記録します。

Untitled-59

 

以上

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (8)

2022年8月12日 (金)

電子処方せん対応 4Dプラグイン開発(その3かな?)

4Dのプラグインを開発する

OpenSSL、PKCS#11を使った4Dのプラグインを開発する時の備忘録

4D Plugin WizardでVisual Studioのプロジェクトを作る

4D Plugin Wizard.4DProjectを4D.exeで起動

Newボタンで新しいプロジェクトを追加、名前をつけて開く

49_20220812175001

Add Theme...で新しいテーマを追加

Add Command...で新しいコマンド(関数)を追加

48_20220812175301

コマンドの名前を決めて

Addボタンで引数を追加、タイプ、名前、方向を決める。戻り値のある無し、型も指定、OKで保存

コマンドは後でいくらでも追加、修正ができるので、とりあえず適当に一つ作っておけばいい

49_20220812175701

ここのチェックはデフォルトのまま。唯一、Xcodeのプロジェクトは今回は必要ないので、チェックを外しておく

Generateボタンを押してプロジェクトを生成、保存先フォルダを指定して保存

ランタイムエラーがでるが、無視して継続を選んで最後まで実行、プロジェクト名のフォルダができてその内容が表示される。

51_20220812180801

4D Plugin-VS.slnがプロジェクトファイルだ

プロジェクトの起動とビルド

4D Plugin-VS.slnをダブルクリックするとVisual Studioが起動する、4Dが生成したプロジェクトは古いので最新のバージョンになるようにOKボタンを押して自動的に変換してもらう。

52_20220812182101

起動した。ソリューションエクスプローラーからソースファイルの4DPlugin.cppを選択するとソースが表示される。

53

ソースは不完全なので、このままではコンパイルできない。試しにビルドするとエラーが吐き出されるのでソースを修正する。4Dのプラグインは4DのAPIを使って引数を取り出し、4DのAPIで引数にデータを戻す。文字列(ストリング)はUTF16なのでunsigned short*であるので、ストリング関係の関数は2バイト用のを使うこと。ストリングリテラルはL"abc"という感じ。ストリングの受け渡しは少々わかりづらいので注意。BLOBはハンドルで渡される。ハンドルのロック、アンロックに注意。そのあたりを注意しておけば大丈夫だ。

詳細は省くが、こんな感じのソースにするとビルドできる。

void HPKI_test( PA_PluginParameters params )
{
	PA_long32 Param1;
	PA_Unistring* Param2;
	PA_Unichar* Param2_uchars;
	PA_Handle Param3;

	Param1 = PA_GetLongParameter(params, 1);
	Param2 = PA_GetStringParameter( params, 2 );
	Param2_uchars = PA_GetUnistring(Param2);

	Param2_uchars = (PA_Unichar * )L"789";
	Param3 = PA_GetBlobHandleParameter(params, 3);


	// --- write the code of HPKI_test here...
	PA_SetLongParameter( params, 1, Param1 );
	PA_SetUnistring( Param2, Param2_uchars );
	PA_SetBlobHandleParameter( params, 3, Param3 );
}

 

ビルドするとsample.4Dbase→Pluginsフォルダの中に4D Plugin.bundleというプラグインができる。

sample.4Dbaseフォルダ中にはsample.4dbという4Dのデータベースが最初からあるので、これを起動すると作ったプラグインが表示されて利用可能になる。

56_20220812193301

あとは適当にテストメソッドを書いてテストする。

57_20220812193701

テスト→修正を繰り返す時は、必ず4Dを終了させること。動いているとプラグインが開いたままなので、VisualStudioからプラグインを書き換えられないのでリンクエラーとなる。

 

プラグインのコマンドの追加

 

コマンドの追加はResources¥manifest.jsonを修正する。ダブルクリックするとVSが開くので、追加するコマンドを表現したjsonオブジェクトをコレクションに追加する。

58

 

プラグインのソースの先頭のスイッチ文に新しいコマンドの関数への分岐を追加する。

59

 

関数を実装する。

61_20220812204601

 

4DPlugin.hヘッダーファイルで新しい関数を宣言する。

69_20220812210701

 

OpenSSL、PKCS#11の導入

次にOpenSSLとPKCS#11を使えるようにプロジェクトの設定を変更する。

 

ソースにインクルードファイルを記述、HPKIのサンプルコードのソースからコピペ

62_20220812213701

 

OpenSSLのインクルードファイルまでのパスを追加する。

63_20220812211101

 

pkcs11.hヘッダーファイルをHPKIのサンプルコードのフォルダからプラグインのフォルダにコピーする。

67_20220812211401

 

pkcs11.hヘッダーファイルは、置いただけでは認識されないので、プロジェクトにドラッグ&ドロップする。

70

 

プロジェクト→右クリック→プロパティで、リンカーの入力。追加の依存ファイルにlibcrypto.libを追加

71

 

同じくリンカーの全般の追加のライブラリディレクトリにC:¥Program Files¥OpenSSL-Win64¥libを追加

72

 

以上で終わりかな。漏れてたらあとで追記する。あとはひたすら書いて直す書いて直す...楽しい苦行のはじまりだ。

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

忘れないうちにOpenSSLでの暗号化と復号 (その2)

前回の続き、こちらのページを参考にした。

OpenSSL で RSA 公開鍵暗号を試してみようWEB ARCH LABO

公開鍵で暗号化→秘密鍵で復号(通信等)

最初はSSL(TSL)で使われ一般的に通信の暗号化で使われる公開鍵で暗号化→秘密鍵で復号する方法をやってみる

暗号化

openssl-rsautl」コマンドで、文章を暗号化する。「-encrypt」で暗号化を指示、「-pubin」で暗号化を公開鍵で行うように指定、「-inkey」で公開鍵ファイルを指定、「-out」で暗号化した文書の保存先を指定。

$ echo "Hello World" | openssl rsautl -encrypt -pubin -inkey pub.key -out message.dat
$

 

暗号化されたメッセージを見てみる。

$ hexdump message.dat
0000000 84 d2 5d 29 aa ff 3f ce 78 b7 33 6c 23 90 f1 9d
0000010 e4 f0 2f 9c 82 cc 31 02 00 12 48 4b 90 ef 0d f5
0000020 c0 06 bd 59 d4 ed 13 06 5c 2c 6c 04 96 d0 80 0a
0000030 e7 43 4d 0e e0 bc b4 59 a6 70 1a 3c 05 74 74 b4
0000040 2e 3a 35 51 4a 67 4d 62 ab 81 52 c9 12 1d cd 47
0000050 de ef a6 10 a2 f4 9c fe d7 51 86 cd 95 aa 79 a2
0000060 e8 13 5e 7b 13 d2 bf b8 3a 1f 7e 01 55 30 5f 71
0000070 b0 aa 07 cd 74 14 e2 d7 a5 8b 14 16 b5 e3 c3 37
0000080 73 4f 5e b3 0f 50 15 e6 6d 77 61 37 47 83 9c 4b
0000090 52 3b ca c8 09 b3 81 d7 e2 c1 d4 b3 e6 8a 62 db
00000a0 65 81 26 d2 7d 08 60 44 c8 fa e0 9d b3 02 77 56
00000b0 d2 65 f7 14 e4 f2 c2 45 49 ea b4 7d a3 56 78 5f
00000c0 62 f1 2b ab 3f 7d 66 9c de 1f 3a 56 98 76 05 dc
00000d0 4c 31 80 42 65 c0 d2 c7 43 3d b6 34 ba 04 0e 30
00000e0 65 51 f5 16 a5 4b 7d 86 73 30 e1 34 e8 59 b8 2e
00000f0 f8 24 72 9d 1e 5a 84 0e c1 76 d4 c2 62
00000fd

253バイトのバイナリーデータである。鍵長と同じであることに注目。実はこれも1個のでかい整数である。RSA公開鍵では、最終的に公開鍵の数値で割った時の余りが暗号文となるので、必ず桁数は同じになる。ちなみに暗号化前の前処理で平文はパディングという詰め物をして鍵長と同じ桁数の整数にしてから暗号化を行う。パディングについては後述。

また、桁数が決まっているため、一度に暗号化できるのは桁数以下(パディングあるのでもっと短い)の文字数(サイズ)でなければいけない。その上、RSA暗号鍵方式は暗号化、復号化にとても時間がかかるので通常の通信で本文を暗号化するのには向いていない。なので、RSA暗号鍵は、電子署名とか認証という用途(暗号化対象は短くてよい、公開鍵と秘密鍵という2つの鍵が必要)に使われる。

 

復号

復号も同じ「openssl-rsautl」コマンドで行う。「-decrypt」で復号を指示、「-in」で暗号化されたファイルを指定、「-inkey」で秘密鍵を指定、なおデフォルトで扱う鍵は秘密鍵なので、秘密鍵のオプションは必要ない。

$ openssl rsautl -decrypt -in message.dat -inkey server.key
Hello World

無事に復号できた。

 

どんな計算をしてるの?

暗号化、復号の計算は実はとてもシンプル

m:元メッセージ c:暗号文 e:公開指数 n:公開鍵 d:秘密鍵(秘密指数)正確には微妙に違うけどw

20220812-104759

計算式自体は暗号化も復号も全く同一、なので、正確には
秘密鍵で暗号化して、公開鍵でそれを暗号化すると、元の平文になる。
公開鍵で暗号化して、秘密鍵でそれを暗号化すると、元の平文になる。
というわけで、暗号化しかしていない。これは面白い。

ちなみにn=p x qでpとqはでかい素数。dはこのpとqのペアがわからないと計算できない。このnの素因数分解が異常に難しいので安全とされているが、段々難しくなっているようで最近は違う数学的な手法が使われることが多くなってる

なお計算式は簡単であるが、実際の処理は大変である、公開鍵での暗号化でも、公開指数は65537に固定されているけど、253バイト(10進で300桁以上の数値)の6537乗を求めるのもそこそこ大変(msまではかからないけど)秘密鍵に至っては10進300桁の数値の300桁の数値の乗数を計算するのであるから、まともに計算してたら秒単位(コンピュータの世界では永遠に近い時間w)かかってしまうかもしれない。でも、天才は世の中にいるので、数msで処理する計算法を編み出した人がいる。「中国の剰余定理」という方法の応用だ。そしてなんと、この定理の最初の記述は中国の南北朝時代の3~5世紀頃に書かれた「孫子算経」だ。古代中国恐るべし

RSA鍵の計算については前出のこのサイトを参照

RSA鍵の要素と暗号化Qiita

ちょっと脱線。SSL(TSL)のネゴシエーションの時など、サーバー側から適当な乱数をクライアントの公開鍵で暗号化してクライアントに送り、クライアントはそれを自身の秘密鍵で復号する。この平文をサーバーに送ることで、クライアントが正しく証明書の保有者であると確認するのだが、この時、悪意あるサーバーが、文書のハッシュの平文を、暗号化せずにクライアントに送るとどうなるだろう。

クライアントは「秘密鍵で復号する」わけであるが、これは上記のように「秘密鍵で暗号化する」のと同義である。そう、「ハッシュを秘密鍵で暗号化したのが電子署名」であるので、悪意あるサーバーはクライアントが気がつかないうちにクライアントの電子署名がついた文書を入手できてしまうのである。

これを防止するのも先程ちょと触れたパディングである。送る平文に特定のマークをつけてから暗号化する。復号した時にこのマーク(パディング)があれば暗号化されたものだし、なければ、送ってきたのは暗号がされてない平文であると区別できる。パディングについて詳しくは以下のサイトを参照

公開鍵暗号の概要シニアエンジニアの庵 RSA暗号wiki

 

秘密鍵で暗号化→公開鍵で復号(署名のはず)

反対方向も同じなんだから、同じようにOpenSSLを使えばできるんじゃね。ってことで試してみた。

$ echo "Hello World" | openssl rsautl -encrypt -inkey server.key -out messageB.dat
$

おっ、なんかできたっぽい。

 

暗号文の中身を見てみる

$ hexdump messageB.dat
0000000 59 04 86 6f 2e 21 cb e2 79 91 6a b4 f0 2f 49 94
0000010 7d 3a 2c 8c 1b 39 e2 7c a6 fb 8d 7d 52 a4 55 ad
0000020 95 51 5e 86 0c 3c 34 ff d7 53 8e 75 6c 6b f5 fa
0000030 05 a0 fa 78 25 76 0d a2 d2 93 cc 90 cf e6 e4 09
0000040 2a 5c 77 ea 2b cd 49 b3 ea f3 b8 31 85 4e e5 27
0000050 44 36 82 6f 93 9d 72 c1 bc dc 94 9e 5d e5 f6 b7
0000060 10 ad d2 17 09 03 72 24 45 06 39 8a 30 f7 ee 35
0000070 11 6f 5f 7a 56 3f fc 98 f3 5e fa fb 6c 6c 67 ab
0000080 b6 6c 21 50 e8 04 2b 57 d0 33 67 0f 97 f4 7c eb
0000090 0b 78 63 3f ab a2 03 be 2a 00 cd b9 e7 1a 50 af
00000a0 0b a7 a9 0b 00 ab 17 ee 4a 58 eb 78 86 c9 8a 9a
00000b0 62 b2 81 3a bc ec a4 9d 7f 90 0f 13 e1 ac f7 62
00000c0 b8 d3 9b 75 c6 3e cb 54 14 d5 8c 7d fc 28 db 71
00000d0 7f b1 c8 31 f0 a3 a7 88 41 61 36 84 d2 4c d5 db
00000e0 9d 67 b6 92 4e ba 2a 3f 9a 95 c9 46 08 99 4b ae
00000f0 bd 86 20 cb ad 75 ba af d1 7e 55 eb c6
00000fd

それっぽいのができてる

 

公開鍵で復号してみる

$ openssl rsautl -decrypt -in messageB.dat -pubin -inkey pub.key
A private key is needed for this operation

秘密鍵が必要だゴラァって怒られた。なんで?!

 

秘密鍵でやってみる

$ openssl rsautl -decrypt -in messageB.dat -inkey server.key
Hello World

今度はできた。でもこれじゃない(笑)
やりたいのは公開鍵で復号することだ!

 

う〜ん、何故だと探すこと小一時間、これだこれだ

opensslでの暗号化・復号操作@IT

フムフムなるほど、秘密鍵で暗号化→公開鍵で復号は電子署名なので、「-encrypt」と「-decrypt」じゃなくて「-sign」と「-verify」なのね。前出のパディングの関係かなにかで実装する場合は対称ってわけじゃないんだね

 

では、早速やってみよう!

「-sign」オプションをつけて署名を指示、出力ファイル名も変えてと、秘密鍵を使うのでオプションの指定はなしで実行

$ echo "Hello World" | openssl rsautl -sign -inkey server.key -out Esign.dat
$

できた。

 

中身をみる

$ hexdump Esign.dat
0000000 33 f2 5c 05 e0 ab 43 8c 15 47 ae ee cd ef 01 fb
0000010 5c c7 1f 07 bf 1a 7d 43 cf cd 7e 84 26 49 43 01
0000020 90 97 1b 7e 20 d2 9f 27 92 11 8b 80 71 8c 11 c9
0000030 11 1f 5b 2a 26 51 2e 2c ad 10 1e 3a b7 c3 bc aa
0000040 0d b1 f8 01 53 a5 ac 55 d2 e2 6f c1 14 c5 d5 8d
0000050 eb e4 2c f7 dd 03 a4 94 e5 22 8c 58 2d 5c ed c8
0000060 de 63 b1 f5 71 c2 ae 82 ae b3 65 d4 3b e1 6e bd
0000070 00 75 af f6 b0 5a 54 77 36 67 28 df c1 da 6f 5e
0000080 e2 da 30 1a 7c 05 7b 12 bd 47 8b af da f3 b5 f6
0000090 2c 8d c7 51 86 20 66 71 c4 10 7e 98 10 80 68 d8
00000a0 dd 01 fb 76 06 88 ec 20 08 05 6e 89 e9 9f 85 5e
00000b0 a7 2f d9 13 e2 62 83 fa f4 37 c2 76 b3 66 9d db
00000c0 04 b5 c3 7f 92 c8 9d dc bd 70 89 07 48 05 dd 72
00000d0 eb cd e1 2f ea 91 0c c7 ba cd bf 71 04 32 cd a2
00000e0 f4 52 cd b5 fa 25 73 9b 66 62 1b 89 84 23 cc b7
00000f0 b7 7c a7 a7 a1 52 5b 87 26 f3 2c c8 e7
00000fd

できた。あれ、さっきと違う、やっぱりパディングの関係かも。

 

公開鍵で検証(復号)。「-verify」オプションで検証を指示。「-pubin」で公開鍵を使うこと指定

$ openssl rsautl -verify -in Esign.dat -pubin -inkey pub.key
Hello World

正しく復号された!
verify(検証)といいつつ、ここは実際の処理は検証でなく復号なのね(笑)

 

ちなみに秘密鍵でも検証できる。

$ openssl rsautl -verify -in Esign.dat -inkey server.key
Hello World

こんな感じ。秘密鍵に公開鍵が隠れてるからできるのだろう。

 

じゃってことで、上記で-encrypt で暗号化したのを試してみる

$ openssl rsautl -verify -in messageB.dat -pubin -inkey pub.key
RSA operation error
4483001792:error:0407008A:rsa routines:RSA_padding_check_PKCS1_type_1:invalid padding:crypto/rsa/rsa_pk1.c:67:
4483001792:error:04067072:rsa routines:rsa_ossl_public_decrypt:padding check failed:crypto/rsa/rsa_ossl.c:588:

できなかったorz

あっ、でも、やっぱりパディングのエラーだね。暗号化と署名でパディングの形式が違うんだ。なんかスッキリ

 

OpenSSLライブラリではどうなってるのか

RSA暗号鍵での暗号化と復号は、 「RSA_public_encrypt()、RSA_private_decrypt()」で処理する。

 int RSA_public_encrypt(int flen, const unsigned char *from,
                        unsigned char *to, RSA *rsa, int padding);

 int RSA_private_decrypt(int flen, const unsigned char *from,
                         unsigned char *to, RSA *rsa, int padding);

関数名が示すように暗号化は公開鍵で、復号は秘密鍵でしかできない。

 

RSA暗号鍵での署名と検証は、 「RSA_sign()、RSA_verify()」で処理する。

 int RSA_sign(int type, const unsigned char *m, unsigned int m_len,
              unsigned char *sigret, unsigned int *siglen, RSA *rsa);

 int RSA_verify(int type, const unsigned char *m, unsigned int m_len,
                unsigned char *sigbuf, unsigned int siglen, RSA *rsa);

リンク先の説明のとおり、RSA_signは秘密鍵、RSA_verifyには公開鍵を渡す。

コマンドライン での実行と違って、検証は検証だ。RSA_verifyに署名と署名の元となったハッシュを渡すと、それが正しいかどうかを検証して結果をint(1なら検証成功)で返す。復号された平文(ハッシュ値)が返ってくるのではないことに注意

HPKIカードで署名を行う場合は、署名はカード内のアプリケーションが行うのでOpenSSLは使用しない。検証はカードから取り出した証明書とOpenSSLのRSA_verifyでおこなう

 

OpenSSLでの暗号化と復号の話は以上

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

忘れないうちにOpenSSLでの暗号化と復号 (その1)

今回は完全に備忘録(笑)

 

OpenSSLで暗号の基本を復習する。

電子署名は、秘密鍵で暗号化して公開鍵で復号する

SSL(TSL)は、公開鍵で暗号化して秘密鍵で復号する

まずはやってみる

このページを参考にした。

OpenSSL で RSA の秘密鍵を作成する方法WEB ARCH LABO

 

秘密鍵をつくる

openssl genrsa」コマンドで、2024bit(253バイト)のRSA秘密鍵を作る。通常は2048bit。ビット数を少なくした時の状態が見たかったので記事のまま指定してみた。コマンドの詳細はリンク先を参照

$ openssl genrsa 2024 > server.key
Generating RSA private key, 2024 bit long modulus (2 primes)
................................................................................
.....................................+++++
.........................+++++
e is 65537 (0x010001)

 

できたキーの中身をテキストとして表示してみる

$ cat server.key
-----BEGIN RSA PRIVATE KEY-----
MIIEjwIBAAKB/gDeRJbhTAshOXp6uJig8IGfZEvofJb5ndHVwm5o4UssOsEWxlPb
VZkO2V3HmfDNbYzSvI5WIFYb3FW+e0cZf+0zh+drECs/8pJ5ryQhJgNqVXn2gR5m
(略)
CfSTk/DqVqK6mFsduBRtdp8+p2Pde/h1aSwfrUiiCvDbZOJvb0JcRLC4CUL8MYOU
iN+SgL5CC9cOFo3/mKncY19psQExepkSnwNv39PbSS7xLicO++tDW3arMtcn7k6t
Dz3rHznsGgUymLsjvcdlwX6Zdw==
-----END RSA PRIVATE KEY-----

頭と最後に種類の表示があって、中身がbase64でエンコードされているのでpem形式の鍵である。ちなみに改行はLF(0x0A)である。

 

詳しく見てみよう「openssl rsa」を使う。「-text」オプションでプレーンテキストの出力となる。「-in」で入力ファイル(秘密鍵)を指定。

$ openssl rsa -text -in server.key
RSA Private-Key: (2024 bit, 2 primes)
modulus:
00:de:44:96:e1:4c:0b:21:39:7a:7a:b8:98:a0:f0:
81:9f:64:4b:e8:7c:96:f9:9d:d1:d5:c2:6e:68:e1:
(略)
publicExponent: 65537 (0x10001)
privateExponent:
00:bd:77:28:4a:4a:a1:1e:24:39:f4:8c:90:86:78:
1d:76:7a:6f:7e:71:5d:dc:d0:1c:03:a4:26:ab:be:
(略)
prime1:
0f:56:0d:7e:f0:16:ca:e7:62:14:98:bc:6e:46:52:
0f:cd:3f:1f:18:d5:ea:ba:f1:c9:cb:2b:20:b8:15:
(略)
prime2:
0e:7e:3a:60:ce:5c:d9:8f:06:82:05:b1:40:b3:e5:
57:f0:1c:eb:81:bf:fa:ce:6a:ca:b0:7a:5d:2a:04:
(略)
exponent1:
0c:48:e1:3c:aa:73:87:8b:3b:5c:c6:50:42:81:5f:
e0:ba:87:72:90:81:62:aa:e7:5d:be:ba:48:56:4c:
(略)
exponent2:
03:15:cd:d9:93:b4:62:3f:b7:13:f0:a0:45:f4:c5:
aa:8d:9b:aa:6a:89:72:9b:84:52:37:75:24:e5:ef:
(略)
coefficient:
03:e0:f6:14:9b:95:01:01:8f:28:aa:fd:09:f4:93:
93:f0:ea:56:a2:ba:98:5b:1d:b8:14:6d:76:9f:3e:
(略)
writing RSA key -----BEGIN RSA PRIVATE KEY-----
MIIEjwIBAAKB/gDeRJbhTAshOXp6uJig8IGfZEvofJb5ndHVwm5o4UssOsEWxlPb
VZkO2V3HmfDNbYzSvI5WIFYb3FW+e0cZf+0zh+drECs/8pJ5ryQhJgNqVXn2gR5m
(略)
iN+SgL5CC9cOFo3/mKncY19psQExepkSnwNv39PbSS7xLicO++tDW3arMtcn7k6t
Dz3rHznsGgUymLsjvcdlwX6Zdw==
-----END RSA PRIVATE KEY-----

modulus部分は公開鍵の部分だ。bit列だが、RSAなので生成時に指定したbit数の正の整数である。ビッグ エンディアンで格納されている。今回は2024bitなので253バイトのはずであるが、先頭bitが1のため負数になってしまうので、先頭に1バイトの0を追加して254バイトになってる。

それぞれの数値の意味は次のサイトが詳しい

RSA鍵の要素と暗号化Qiita

 

公開鍵をつくる

openssl rsa」で公開鍵を作る。作るというより秘密鍵から公開鍵を取り出すと言ったほうが正しい。「-pubout」オプションで公開鍵を取り出す。コマンドがgen~ではなくrsaであることからも、作るのではなくRSA鍵を操作して取り出すという意味合いなのだろう。

$ openssl rsa -in server.key -out pub.key -pubout
writing RSA key

 

できたキーの中身をテキストとして表示してみる

$ cat pub.key
-----BEGIN PUBLIC KEY-----
MIIBHjANBgkqhkiG9w0BAQEFAAOCAQsAMIIBBgKB/gDeRJbhTAshOXp6uJig8IGf
ZEvofJb5ndHVwm5o4UssOsEWxlPbVZkO2V3HmfDNbYzSvI5WIFYb3FW+e0cZf+0z
h+drECs/8pJ5ryQhJgNqVXn2gR5m6UIZikS300f1Rzd4+GyW5SJxJ4cogi45/v+Y
yNrIsC6PGXk6rOHmuAoCHIzF6fPq+dsNuZP9iwMXwH4UgEJa9nI8GKsM3NiX1IdH
5evHhdNzeTWYsWxPzJvBIfckNIT8KGlE5o4s3HsmLQHa2jGjxFkk086JeOcc0QrL
9b3TsgvYzfzvGMQovYaAAg+O7RANdZuo+X2jspmH9OcbAPH6QzuSCXdA63tLAgMB
AAE=
-----END PUBLIC KEY-----

同じくpem形式のファイルになってる

 

秘密鍵の時と同じように詳細を見てよう。「-pubin」で公開鍵を読み込むことを指定する。

$ openssl rsa -text -pubin -in pub.key
RSA Public-Key: (2024 bit)
Modulus:
00:de:44:96:e1:4c:0b:21:39:7a:7a:b8:98:a0:f0:
81:9f:64:4b:e8:7c:96:f9:9d:d1:d5:c2:6e:68:e1:
(略)
e7:1b:00:f1:fa:43:3b:92:09:77:40:eb:7b:4b
Exponent: 65537 (0x10001)
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBHjANBgkqhkiG9w0BAQEFAAOCAQsAMIIBBgKB/gDeRJbhTAshOXp6uJig8IGf
ZEvofJb5ndHVwm5o4UssOsEWxlPbVZkO2V3HmfDNbYzSvI5WIFYb3FW+e0cZf+0z
(略)
-----END PUBLIC KEY-----

秘密鍵のModulus:部分が公開鍵であることが確認できる。Exponent:は公開指数(public exponent)と呼ばれるもので鍵生成の元となる数字らしいがよくわからない(笑)奇数じゃないといけないらしいが、ほぼ全部この数字。謎だ。

ここに詳しい説明あった。

RSA鍵の要素と暗号化Qiita

 

今日はここまで

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

2022年8月 9日 (火)

電子処方箋対応 4Dプラグイン開発 pkcs#11、OpenSSL、電子署名、HPKIカード 導入備忘録

電子処方箋の電子署名はHPKIカードでおこないます。このための処理は4Dの標準機能では当然できないのでプラグインで機能を実装しなければいけません。

HPKIカードで電子署名をするためには、pkcs#11ライブラリとOpenSSLライブラリが必要です。この記事はこれらをプラグイン開発プロジェクトの下準備のための備忘録です。

pkcs#11
暗号化トークン・インタフェース標準。暗号化トークンにアクセスしてトークン内部の情報やアプリケーションを利用するための標準的なインターフェースを定めた規格。

暗号化トークン
トークンの意味は「印、象徴」。暗号化トークンといった場合は、暗号化のための電子鍵等を搭載したICカードやUSB装置などの物理的な物を指す。現在の一般的なものはICカード。マイナンバーカードが代表例。今回使うのはHPKIカード

OpenSSL
電子的な暗号を扱うための総合的なオープンソースのライブラリ、暗号、PKI(公開鍵基盤)、SSL/TSLなどなど、ほぼあらゆる暗号化関連処理をすることができるライブラリ。現在のバージョンは3であるが、最新バージョンを使ってる例はまだほとんどない、実質的な標準はバージョン1.1

 

とりあえず読むべきもの

まずはなんといってもここ

保健医療福祉分野公開鍵基盤 電子認証局のご案内MeDis

この中のこのページの資料は特に重要、「はじめてのHPKI ~実装の手引き~」は最重要、ダウンロードして10回以上は読むべし

やさしいHPKIMeDis

サンプルコードも必須。開発にも使うので必ずダウンロード。VisualStudioのプロジェクトファイルなのでダウンロードしてプロジェクトファイルをダブルクリックして開きましょう。必読、ここからいろいろとコピペして開発する。

次に本家本元、「JAHIS 保健医療福祉情報システム工業会」ここに標準規格の規格書等があります。こちらのHPKI関連も必読

JAHIS標準・技術文書JAHIS 保健医療福祉情報システム工業会

とりあえず以下の文書は読んでおく

JAHISヘルスケアPKIを利用した医療文書に対する電子署名規格Ver.2.0
JAHIS HPKI対応ICカードガイドラインVer.3.0
JAHIS電子処方箋実装ガイドVer.1.2
JAHIS院外処方箋2次元シンボル記録条件規約Ver.1.7
JAHIS電子版お薬手帳データフォーマット仕様書Ver.2.4

 

準備するもの

VisualStudio

開発環境、HPKIカードドライバの関係でwindowsしか使えないので、これを使う。Mocrosoft Storeから無料でダウンロードできる。Visual Studio Community 2022というのをダウンロード。インストール時にどれをインストールするかって表示されるけど、よくわからなかったのでとりあえずコマンドライン ツールが作成できてC/C++、C#で開発できそうなのを選んだ。まぁ、適当でもなんとかなった。結果オーライ(笑)

 

4D プラグインSDK

4Dのプラグインを開発するのに必須。特にプロジェクトのスケルトンを作る「4D Plugin Wizard」は便利。GitHubはあまり利用していないし、これ自体の開発を手伝うわけじゃないので、zipでダウンロードして展開して使ってます。使い方はdocsフォルダの中のindex.htmlを開くとドキュメントが読める(英語)

4D-Plugin-SDKGitHub

 

medisのサンプルコード

最初に紹介した「やさしいHPKI」ページにあるサンプルコードをダウンロード。.slnファイルをダブルクリックでVisualStudioが起動する。

やさしいHPKIMeDis

 

テスト用HPKIカード、HPKIカードドライバ

テストカードの貸出しMeDis

このページに書いてあるように問い合わせページに書いてあるメールアドレスへカードを貸してくれとメールを送信。ちなみに無料です。

数日で、申し込み用紙がメールで届くので、印刷して郵送する。なんだか事業所の実在を証明するので、会社のパンフレット等を同封してというので、適当にホームページを印刷して送付。HPKIカードドライバも必要なので、送ってもらうように記述

どの資格でのHPKIカードでも発行してもらえます。

注意!!本人限定受取」郵便という特殊な方法で届く。受け取れるのは送付を依頼した個人の自宅限定。免許証などで本人確認ができる住所以外では受け取れない。事業所宛に配送してもらうと受け取れないので注意。最初にハガキが届くので、配送先や受取方法、日付時間等をハガキかwebで郵便局に伝えると配送される。郵便局に受取にいってもいいが、送付先住所と免許証等(写真付きが必須)の身分証明書の住所が一致してないと受け取れない。

医師会薬剤師会の証明局からも入手可能。どちらも有料。

 

ICカードリーダー

マイナンバーカード対応と書いてあれば、基本なんでもいいのですが、とりあえず購入して動作確認ができてるのは、定番中の定番、NTTコミュニケーションズのACR39-NTTComです。ソニーのPaSoRi RC-S380も定番ですね。これもおすすめ。

それにしても高くなったなぁ、どっちも2021年に購入して2800円くらいだったのに、NTTのは3800円、ソニーは5600円、まぁ、安いのもあるけど、ちょっと使うのは...

windowsであれば、USBを繋ぐだけでドライバのインストールとか自動でおこなって認識されます。

 

ドライバー、ライブラリのインストール

HPKIカードドライバーのインストール

ICカードリーダーを接続するとPC/SC(ICカードを利用するための基本的なAPI)を使うことが可能になるドライバーが自動的にインストールされる。

PC/SCのインターフェースを使ってHPKIカードを操作することも原理的には可能であるが、コマンドを16進の機械語みたいな感じで送るとか、あまりにプリミティブで、かつ、利用するための資料が圧倒的に少ないので現実的にこれでプログラムすることは不可能だろう。

そこで、より上位のPKIミドルウェア層のPKCS#11、CryptoAPIなどのPKIドライバ(ライブラリ)を導入して、PKCS#11、CryptoAPI、Cryptography API: Next Generationインターフェースでプログラムできるようにします。

20220809-132913
JAHIS HPKI 対応 IC カードガイドライン Ver.3.0 より

このドライバ、ライブラリはmedis等からHPKIカードと一緒に送られてくる「HPKIカードドライバセット Version 1.50」という円盤に入っています。

円盤の中のドキュメントに従ってインストールします。途中でICカードリーダーの選択画面がでますので、インストール前にカードリーダーをPCに接続しておくといいでしょう。(後でも選択できる)

PKCS#11用のDLLファイルがC:¥Windows¥System32にインストール、CryptoAPIのサービスドライバ(場所不明)、関連するライブラリ、ドライバ(場所不明)がインストールされる。また、ユーティリティソフトで「PIN変更ツール」「証明書表示ツール」「リーダライタ選択ツール」の3つもインストールされる。名前の通りの機能のアプリなので、適宜利用する。

インストールが正しく行われたかは、HPKIカードをリーダーにセットして「証明書表示ツール」を使うといいだろう。アプリケーションが2つ表示され、その中に証明書が表示されればOK。

26

ダブルクリックすると証明書の詳細が表示されるが、中間CA証明書もルートCA証明書もないので信頼されていないと表示されるはずである。

 

OpenSSLのインストール

暗号と電子署名といえば定番OpenSSL

これが無いと何にもできません。ライブラリもそうですがコマンドラインからも使えるようにしておくのが大事。コマンドラインからいろいろ試すことで電子署名について理解が深まる。ちなみにコマンドラインで操作するならMacがおすすめ。OpenSSLの記事のほとんどはLinuxベースなのでWinのコマンドプロンプトでは直接試せない場合が多い。

インストールは「初めてのHPKI」で紹介している以下のサイトがお勧め。コンパイル済みのバイナリで配布されているのを使うので簡単にインストールできる。

windows10でOpenSSLのインストールとアンインストールの方法ONE NOTES

記事では32bitバージョンを選択してるけど、今なら64bit版の「Win64 OpenSSL v1.1.1q」を選択。v3.xは全く別物なので過去の知識が全然使えないのでパス(間違ってインストールしたけどどうにもならなかったw)

インストール先は記事と違ってデフォルトのC:¥Program Files¥OpenSSL-Win64のまま。記事の場所にインストールするとmedisのサンプルコードのプロジェクトのPathを修正しないとビルドできないと思います。DLLファイルの場所は記事を同じ/binにしました。DLLファイルの場所は、システムフォルダの方が良かった気がするけど、/binでも問題なかった。

Pathの設定は、記事とは微妙に違っていて「設定」→「システム」→「詳細情報」→「システムの詳細情報」で「システムのプロパティ」画面が開きます。

追加するパスはインストールした場所なので、今回はC:¥Program Files¥OpenSSL-Win64

 

おまけ、Macの場合

インストールの時に使ったサイトが消えちゃったので、適当に検索してください。大体みんな同じです。ターミナルを開いて

$ brew install openssl

でダウンロード&インストールされます。あっ事前にhomebrewはインストールしておいてくださいね。正しくインストールされると

$ which openssl
/usr/local/opt/openssl@1.1/bin/openssl
$ openssl version
OpenSSL 1.1.1q  5 Jul 2022

となります。うまくいかない時はこちらのサイトが参考になるかなぁ

macOSでopensslコマンド打つとエラーになるQiita homebrewでinstlalしたOpenSSLが反映されず、OSX標準のOpenSSLが使用されてしまう場合の対処方法

 


とりあえず前準備はこのくらいかな。次は実際にプロジェクトのビルドの時の設定とかを解説します。

 


歯科電子カルテシステム・カルテメーカー は利用料月額16,500円(税込)
MacとWinの両方で利用可能な電子カルテです。介護保険にも対応してます。

カルテメーカーの詳細はカルテメーカー・ホームページまで。
カルテメーカーを実際に動かしてみたいときは評価版をダウンロードできます。

 

| | コメント (0)

より以前の記事一覧