GS1コードによって医薬品を照合するシステム

GS-1 code search - GS1コード照合

有効でないGS1コードを入力すると”please enter valid GS1-128 code.”と表示されます。

片方が正しい場合でも同様です。 上下の欄に有効なGS1コードが入力されると照合を行います。正しくない場合は”not same”と表示されます。

調剤包装単位が異なる場合はGS1コードも異なりますが、同一医薬品であれば”same”と表示されます。

大きな薬局なんかではよくやっていますが、携帯端末で医薬品のGS1を読み込んで、入力情報と照合しつつピッキングするシステムです。手元のPTPヒートを見ながら遊んでみてください。

あれは端末、もしくは最近ですとandroidなんかのアプリケーションとして開発されていますが、今回はwebアプリケーションとしてjavascriptを用いて作ってみました。

とは言っても、以前から行なっているようにパターンマッチをしているだけではあります。最近はパターンマッチングを行うだけの人工無脳のことをAIと認識している方も多いようですが、(強い)AIは自己判断と解決力を持ったものですので、また別のものです。薬剤師の仕事はまだしばらくは無くならないでしょう。

SQLからPHPを用いてマッチングさせてもよいのですが、照合まで時間がかかるのとリアルタイムに動作しないのでjavascriptを用いて作りました。

コードの内容ですがuploadしたGS1コード情報と医薬品名称をマッチさせています。具体的には調剤包装単位のGS1コードを登録し、医薬品名と紐づけています。

ですので、異なるGS1コードであっても、例えば10錠ヒートと14錠ヒートでGS1コードが異なっていても医薬品名は同一ですので、マッチするということです。

PCにUSBで繋いだ赤外線センサーか何かつけておけば、監査っぽいこともできるかなと思います。音は出ませんので目確認になってしまいますけども。

全体のシステムとして考えるなら、GS1コードと医薬品名をjavascriptでリアルタイムに照合し、監査者をPHPで登録型SNSのように管理、内容を表示してマッチしたかどうかの結果をSQLdatabaseに登録すればよいので、webアプリケーションで不可能ということはありません。

この辺りは、あくまで予想ではありますが卸のweb経由購入システムが同じようなことをやっていると思います。あれもGS1コードを読み込んで医薬品を照合してからsessionで一時保存して内容を一括してサーバーに送信しているパターンだと思います。PHPではなくrubyとか使ってるかもしれませんね。

そしてその赤外線センサーですが、最近ではハンディ式バーコードスキャナーは5000円程度で販売されていることも多いようです。QRまで読めるものもありますが、単純な1次元バーコード専用のものであれば、そこそこ安いのではないでしょうか。但し、JANコードは読めてもGS1コードは読めないというものもありますのでご注意を。

bluetoothを使用したものは3万円近くするようですが、まさに医薬品用らしく便利そうなので欲しいですね。メモリモードで一括蓄積してPCに送信、照合を行なってピッキング完了なんてのは割と簡単に作れそうです。高いので個人では買えませんが…。誰か譲ってくれませんかねー。

androidやiPhoneのアタッチメントも存在していますが、可能であればpythonのopenCV辺りと組み合わせてGS1code scannerを開発して同期させるのが一番よいのでは、とも思います。Zbar辺りがよいのかもしれませんが、python2系らしく。pyzbarなるものもあるようですが…。

pythonはまだまだ勉強中ですので、しばらくはjavascriptとPHPで遊んでいようかと思います。

次回は、GS1コードから医薬品名を照合し、添付文書をリンクさせるシステムを作ってみようかと思います。前回のシステムとの合わせ技になると思います。

GS1コードからQRコードを自動生成すれば、わざわざpython等のLibrary経由しなくてもiPhoneのQRコードリーダーなんかで代用してピッキングシステムは作れるのですが、この場合は薬品棚に照合用QRを印刷して貼っておく必要がありますので、GS1コードからの照合には使えないんですよね。スクレイピングで一括してマスタからQRコードを印刷することもできなくはないですが…。つまり、そのままだとピッキングには使用できても充填には使用できないので、なんとも。という感じです。まあ、気ままに勉強がてら作っていこうと思います。