PillCheck スキャンは何をする機能か
PillCheck アプリは10月4日に App Store で公開され、Google Play にも出ています。この連載ではアプリの機能を1回に1つずつ見ていきます。第1回は、すべての記録の出発点であるスキャンです。
PillCheck は、飲んでいる薬の情報や服用時間、調剤記録を1か所で見られるサービスです。これらの画面はどれも、薬が記録されていて初めて意味を持ちます。薬の名前を1つずつ入力する代わりに、手元の紙にカメラをかざして記録できるようにするのがスキャンです。
スキャン画面の対象は、処方箋・薬袋・錠剤の3つです。この記事では前の2つを扱います。薬袋はQRで、処方箋は写真で記録します。錠剤は、錠剤の写真から似た薬の候補を探す別の機能です。
Web(www.pillcheck.co.kr)での写真登録は前回の記事「PillCheck OCR」で取り上げました。今回の新しい話はアプリです。アプリでは、写真がスマホを離れる前に、スマホの中でもう1つの段階を通ります。
アプリでの使い方

1つ目、画面の一番下のメニューで「スキャン」を押します。「撮影する」のようなボタンをもう一度押す必要はなく、カメラがすぐに起動します。初回だけカメラの許可を求められます。
2つ目、上で処方箋・薬袋・錠剤のうち手に持っているものを選びます。カメラ画面を左右にスワイプしても隣の対象に切り替わります。
3つ目、薬袋ならQRを画面の四角い枠に合わせます。ボタンを押さなくても、QRを認識した瞬間に調剤記録が保存されます。QRは小さな四角の模様に情報を収めたコードで、薬袋のQRにはその調剤内容を呼び出す鍵が入っています。記録を保存するにはログインが必要です。
4つ目、処方箋は処方箋タブでシャッターを押して写真で撮ります。アプリでは、処方箋はQRではなく写真で記録します。結果が記録に入ったら、読み取られた薬の名前と用法を確認し、違うところは直します。
撮った瞬間、スマホの中で起きること
シャッターを押すと、写真はアプリが使う一時的な領域にだけ作られます。スマホの写真アプリには保存されず、処理が終わるとアプリが削除します。
次に、スマホが写真の中の文字を自分で読み取ります。文字認識とは、写真の中の文字をコンピューターが扱える文字に変える技術です。PillCheck アプリはこの機能をアプリの中に持っているので、インターネットに送らなくてもスマホの中で文字とその位置を見つけられます。
スマホが薬の表を最初から最後まで確実に読み取れた場合は、写真を送らず、読み取った薬の一覧だけを記録します。こうして記録された薬は未確定の状態で入り、ユーザーが確認するまで確定した薬としては使われません。ただ、処方箋の書式はばらばらなので、スマホだけで表全体を確実に読み取れる場合はまだ多くありません。
そうでなければ、写真を文字認識サーバーに送って、より精密に読み取ります。サーバーとは PillCheck が運営する遠隔のコンピューターです。まさにこの段階の手前で、スマホが個人情報を隠します。
処方箋の写真は何を隠し、何を残すか
隠すのは、患者を特定できる情報です。患者氏名の欄と住民登録番号の欄、別の場所にもう一度印字された患者の氏名、保護者のようなほかの個人の氏名、携帯電話番号、そしてバーコードです。バーコードは太さの違う線や点の模様に情報を収めたコードで、見た目では何が入っているか分からないため、見つけたものはすべて塗りつぶします。
残すのは薬の表と医療機関の情報です。サーバーが読み取る必要があるのは薬の名前と用法で、病院・薬局の情報は個人を指す情報ではないと判断したからです。薬局名と病院名は、隠す前の元画像からスマホが別に読み取って渡し、PillCheck はそれを医療機関の一覧と照合して記録に付けます。患者や薬剤師の名前は、この経路でも渡しません。
塗りつぶしは文字単位ではなく欄単位です。スマホは「氏名」「住民登録番号」といったラベルの位置から欄を見つけ、その欄全体を黒く塗ります。文字を読み取ってその文字だけを消すやり方では、読み間違えた文字は消す対象として拾われず、そのまま残ってしまうからです。
塗った後は、できあがった画像を最初から読み直します。患者の氏名がどこかで読み取れたり、バーコードが残っていたりすれば、その写真は送りません。この検査を通った画像だけを送ります。送るのは元の写真ではなく塗った後に新しく作った画像で、画面にもその隠した写真がそのまま表示されるので、何が送られるのかを確かめられます。
サーバーに届いた後のことは「PillCheck OCR」で説明したとおりです。薬のコードで薬の情報を探して付け、読み取れなかった行は「不明」として残し、ユーザーが埋められるようにします。写真は文字認識が終わるとサーバーに保存しません。
作るときに下した判断とその理由
1つ目、撮影はスマホ標準のカメラアプリに任せず、アプリ内カメラで行います。標準カメラで撮ると写真が写真アプリに残り、撮るたびにアプリの外へ出て戻ってくる必要があります。アプリ内カメラならかざしている間ずっとQRを読み続けられるので、薬袋はシャッターなしで済みます。同じ画面でQR認識とシャッターが重なり、同じ薬袋が2回保存されることも防いでいます。
2つ目、失敗したら送りません。処方箋として確実に読み取れない、ラベルの付いた患者氏名と住民登録番号をちょうど1組見つけられない、バーコードの検査を最後まで終えられない、のいずれかなら、写真はスマホを離れません。画面には「写真を安全に送れません。撮り直すか、直接検索してください。」と表示されます。隠しきれていない写真を送るより、ユーザーにもう一度撮ってもらう方がよいと考えました。
3つ目、薬袋の写真はサーバーに送りません。処方箋は決まった書式なのでラベルの横に患者情報がありますが、薬袋には患者の名前がラベルなしで何か所にも印字されています。試したところ、スマホが文字を読んで名前を探すやり方では、すべての箇所を隠しきれませんでした。そこで薬袋はQRを基本にしました。QRのない薬袋を撮ると、スマホだけで表全体を確実に読み取れた場合にだけ記録し、そうでなければQRをかざすか薬を直接検索するよう案内します。
4つ目、隠し方は、その方法を試験した記録と1組にして結び付けました。アプリは、承認された隠し方と試験記録が対になっているときだけ写真を送ります。試験記録には、隠すためのコードのファイルごとに指紋が書かれています。指紋とはファイルの中身から計算した固有の番号で、1文字変わるだけでも変わります。コードを直すたびに自動で走る検査である自動テストが、この指紋を今のコードと照合するので、隠すためのコードを直すと、試験をやり直して新しい記録を作るまでテストが失敗を知らせます。コードを手直しした人が試験を飛ばすことを、仕組みで防いでいるのです。
書類の写真を扱う仕事に持ち帰れること
PillCheck スキャンからほかの仕事にも移せることは3つあります。
1つ目、送る前に送る側で隠します。受け取る側が保存しないと約束することと、そもそも受け取らせないことは違います。隠せるものは出発点で隠す方が確実です。
2つ目、消す文字ではなく消す欄を探します。文字を読んで消すと、読み間違えた文字が残ります。ラベルのように位置の決まった目印を基準に、領域をまるごと覆う方が安全です。
3つ目、隠せなければ送らないことを初期設定にします。今日試せることが1つあります。処方箋や契約書の写真を AI チャットやほかのサービスにアップロードする前に、スマホの写真編集で名前と番号の欄を先に塗りつぶし、塗った写真を大きく拡大して文字が透けて見えないか確かめてみてください。確かめられなければアップロードしません。
次回は、記録した薬を押すと開く薬の検索と薬の詳細です。
