施設の電子カルテ(電カル)とDoctorAssistが同じパソコンで動かない場合は、コピーと貼り付けで電カルに記事を入れることができません。そのようなときは、DoctorAssistで作った電カル記事をQRコードにして画面に出し、電カル側のQRコードリーダーで読み取って入力します。
記事が長いときは、QRコードが自動で複数枚に分かれます。1枚ずつ順に読み取ると、続けて入力されます。QRコードを作るのに、インターネットの接続や、他社のアドオンは使いません。
この記事では、使い方を動画と画面写真で説明し、後半でQRコードを作れるようにする設定方法を説明します。写真は、すべてテスト用のダミーの患者さんの画面です。
1. QRで電カルに入力する
この手順の操作を、動画でも見られます。
いつもどおり、処方入力の画面の左下にある「施設の電カル記事作成」のボタンを押します(記事の作り方は「通常の診察の流れ」の「7. 施設の電カルに記載する」を見てください)。「以下コピーされていますので、必要な場所にペーストしてください。」というメッセージに、「QRで表示」のボタンがあります。このボタンを押します。

「電カル記載 QR」の画面が開き、QRコードが表示されます。画面の各部は次のとおりです。
- 文字コード:UTF-8 か Shift_JIS を選びます。QRコードリーダーが日本語を正しく入力できる方を選びます。
- 改行:「そのまま」「空白にする」「取り除く」から選びます。改行で電カルの画面が確定してしまう場合は「空白にする」にします。
- 1枚の量:「少なめ(読みやすい)」「標準」「多め(枚数が少ない)」から選びます。読み取りにくいときは「少なめ」にします。
- 「◀ 前」「次 ▶」と枚数(1 / 3 など):QRコードが複数枚のときに切り替えます。キーボードの←→キーでも切り替えられます。
- 下の欄:いま表示しているQRコードに入っている文章です。
選んだ設定は、次に開いたときも残っています。

電カル側で記載欄を選んでから、QRコードリーダーで1枚目を読み取ります。動画では、電カルの代わりにテキストエディットの文書に入力しています。

1枚目の内容(問診、所見、処方の始め)が入りました。「次 ▶」を押して2枚目を表示し、続けて読み取ります。

2枚目の内容が、1枚目の続きに入ります。「次 ▶」で3枚目を表示して、読み取ります。

3枚目まで読み取ると、問診、所見、処方、検査が、すべて入力されました。読み終わったら、「電カル記載 QR」のウインドウを閉じます。

QRコードリーダーとの相性
QRコードリーダーは、読み取った文字をキーボードの入力として電カルに送るものが多く、日本語(漢字)の出し方が機種によって違います。初めて使うときは、次の順に試してください。
- 文字コード「UTF-8」で読み取り、漢字が正しく入るかを確かめます。文字化けしたら「Shift_JIS」に切り替えて、もう一度読み取ります。
- 改行で電カルの画面が勝手に確定したり移動したりする場合は、改行を「空白にする」にします。
- 読み取りに失敗する場合は、1枚の量を「少なめ」にします。QRコードの目が粗くなり、読み取りやすくなります。
- どちらの文字コードでも漢字が入らない場合は、QRコードリーダーの設定(日本語の出力)を確かめます。日本語に対応していないリーダーでは使えません。
2. QRコードを作れるようにする設定
DA_Workに、次の5つを設定します。FileMakerの「データファイル」のスクリプトステップを使うので、Claris FileMaker Pro 18以降が必要です。
2-1. QR表示用のHTMLをダウンロードする
QRコードの画面を作るHTMLファイル(qr_viewer.html)を、次のリンクからダウンロードします。ZIPファイルを開いて、中の qr_viewer.html を、このMacの「書類」フォルダに置きます。
qr_viewer.zip(QR表示用のHTML)をダウンロード
QRコードの作成には、Kazuhiko Arase 氏の qrcode-generator(MITライセンス)を使わせていただいています。「QRコード」は株式会社デンソーウェーブの登録商標です。
2-2. フィールドを追加する
DA_Workの「AI設定」テーブルに、テキストフィールド「QR_HTMLテンプレート」を追加します。グローバルにせず、通常の保存フィールドにします。
2-3. HTMLを取り込む(1回だけ)
次のスクリプト「QR_HTML登録」を作って、1回実行します。「QR表示用のHTMLを登録しました(約102,000文字)」と出れば、取り込めています。HTMLを新しくしたときも、同じスクリプトで取り込み直します。
#===== QR_HTML登録 ===== #書類フォルダの qr_viewer.html を AI設定::QR_HTMLテンプレート に取り込む(更新時も同じ) 変数を設定 [ $パス; 値:Get ( ドキュメントパス ) & "qr_viewer.html" ] エラー処理 [ オン ] データファイルを開く [ 「$パス」; ターゲット: $id ] If [ Get ( 最終エラー ) ≠ 0 ] カスタムダイアログを表示 [ メッセージ: "書類フォルダに qr_viewer.html が見つかりません。" ] 現在のスクリプト終了 [ ] End If データファイルから読み取る [ ファイル ID: $id; サイズ: (空欄); ターゲット: $html; 読み取る: UTF-8 ] データファイルを閉じる [ ファイル ID: $id ] レイアウト切り替え [ 「AI設定」 (AI設定) ] 全レコードを表示 レコード/検索条件/ページへ移動 [ ダイアログなし; 最初の ] フィールド設定 [ AI設定::QR_HTMLテンプレート; $html ] レコード/検索条件確定 [ ダイアログなし ] カスタムダイアログを表示 [ メッセージ: "QR表示用のHTMLを登録しました(" & Length ( $html ) & " 文字)。" ]
「データファイルから読み取る」の「読み取る」は、「バイト」ではなく「UTF-8」にします。サイズを空欄にすると、ファイル全体を読み込みます。
2-4. 「QR表示」レイアウトとスクリプトを作る
テーブル「処方名人_TABLE」を元に、レイアウト「QR表示」を作ります。Webビューアを1つ、画面いっぱいに置き、次のように設定します。
- オブジェクト名:wvQR
- Webアドレス(計算式):$$QR_URL
- 「Webビューアの内容とのインタラクションを許可」:オン
- 「進捗バーを表示」「ステータスメッセージを表示」「内容をファイルと保存」:オフ
次に、スクリプト「QR_表示」を作ります。記事の文章をHTMLに差し込み、一時フォルダに書き出して、Webビューアで表示します。
#===== QR_表示 =====
#引数:QRにする文章(施設電カル記載)
変数を設定 [ $文; 値:Get ( スクリプト引数 ) ]
If [ IsEmpty ( $文 ) ]
カスタムダイアログを表示 [ メッセージ: "QRにする内容がありません。" ]
現在のスクリプト終了 [ ]
End If
変数を設定 [ $テンプレート; 値:ExecuteSQL ( "SELECT \"QR_HTMLテンプレート\" FROM \"AI設定\"" ; "" ; "" ) ]
If [ IsEmpty ( $テンプレート ) or $テンプレート = "?" ]
カスタムダイアログを表示 [ メッセージ: "QR表示用のHTMLが登録されていません。¶スクリプト「QR_HTML登録」を実行してください。" ]
現在のスクリプト終了 [ ]
End If
#--- 文章をJSONにして差し込む ---
変数を設定 [ $json; 値:Substitute ( JSONSetElement ( "{}" ; "text" ; $文 ; JSONString ) ; "</" ; "<" & Char ( 92 ) & "/" ) ]
変数を設定 [ $html; 値:Substitute ( $テンプレート ; "__QR_JSON__" ; $json ) ]
#--- 一時フォルダに書き出す ---
変数を設定 [ $名前; 値:"da_qr_" & Get ( 現在の時刻 UTC ミリ秒 ) & ".html" ]
変数を設定 [ $パス; 値:Get ( テンポラリパス ) & $名前 ]
エラー処理 [ オン ]
データファイルを作成 [ 「$パス」; フォルダを作成: オフ ]
データファイルを開く [ 「$パス」; ターゲット: $id ]
データファイルに書き込む [ ファイル ID: $id; データソース: $html; 書き込み: UTF-8; 改行を追加: オフ ]
データファイルを閉じる [ ファイル ID: $id ]
If [ Get ( 最終エラー ) ≠ 0 ]
カスタムダイアログを表示 [ メッセージ: "QR表示用ファイルを作れませんでした(エラー " & Get ( 最終エラー ) & ")。" ]
現在のスクリプト終了 [ ]
End If
#--- file:// のURLを作る(テンポラリパスの先頭のボリューム名を除く)---
変数を設定 [ $tp; 値:Get ( テンポラリパス ) ]
変数を設定 [ $$QR_URL; 値:"file://" & Right ( $tp ; Length ( $tp ) - Position ( $tp ; "/" ; 2 ; 1 ) + 1 ) & $名前 ]
新規ウインドウ [ スタイル: ドキュメント; 名前: "電カル記載 QR"; 使用するレイアウト: 「QR表示」 (処方名人_TABLE); 高さ: 820; 横幅: 760 ]
Web ビューアの設定 [ オブジェクト名: "wvQR"; 処理: 再読み込み ]
「データファイルを閉じる」のファイルIDは、必ず $id にします。空欄だと、エラー100になります。一時フォルダのファイルは、FileMakerを終了すると自動で消えます。
2-5. 「施設の電カル記事作成」のスクリプトに、ボタンを追加する
スクリプト「Syo_電カル記事記録」の最後の「以下コピーされています」のメッセージを、次のように変えて、「QRで表示」のボタンを追加します。以前のQRコードのアドオンを呼んでいた部分は、削除します。
カスタムダイアログを表示 [ タイトル: "メッセージ"; メッセージ: "以下コピーされていますので、必要な場所にペーストしてください。¶¶" & $施設電カル記載; デフォルトボタン: 「OK」; ボタン 2: 「QRで表示」 ] If [ Get ( 最終メッセージ選択 ) = 2 ] スクリプト実行 [ 「QR_表示」; 引数: $施設電カル記載 ] 現在のスクリプト終了 [ ] End If
補足
QRコードには、施設の電カルに書く内容(問診、所見、処方、検査、病名)がそのまま入ります。画面に表示するだけで、DoctorAssist側には保存しません。
DoctorAssistは、Claris FileMakerで開発された、医師個人が自身の診療業務を効率化するために使用する業務支援ツールです。診療録ではありません。法定の診療記録は各医療機関の記録およびORCAが正本であり、本ツールが保持するのは医師個人の作業用データです。
私たちは考える。
記録は、AIと共に進化できるのではないか。