QRコードを診察券や、カルテ、在庫管理に使用するのはいかがでしょうか。QRコードを使ってカメラに患者番号を読み取らせれば、電子カルテで患者番号を手で入力しなくても自動で患者を選択できるようにできると思います。ネット上にQRコード作成するサイトは存在しますが、個人情報取扱いの問題と、大量のQRコードを1つ1つ作るのは大変ですね。

QRコードをエクセルに入れたデータから一気に作成するツールを作りました。

免責事項
1.当ファイルをご利用する前に免責事項に同意し、同意後にご利用を開始してください。当ファイルをダウンロードすることによってご利用者は、免責事項に同意したものとみなします。
2.当ファイルのご利用者は、自らの行為に一切の責任を負うものとし、当ファイルによって生じた問題については、ご利用者自らで解決し、製作者は一切免責されるものとします。
3.製作者は、ご利用者のファイルの利用により発生した、ご利用者の損害又は第三者の損害に対し、いかなる責任も負いません。製作者は、当ファイル使用によるコンピューターシステムの破損、データ破損、得られたデータの不正確性、及びそれ以外のいかなる原因に基づき生じた損害について賠償する義務を一切負わないものとします。
4.本プログラムは、医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律の承認を受けたものではありません。そのため、診療には使用しないでください。個人的な研究又は娯楽の用途でお使いください。

QRコードは株式会社デンソーウェーブの登録商標です。

個人利用・商用利用 可能
再配布 可能

使い方:

1-エクセルに、1列目の2行目からQRコードの中に入れ込みたい内容を入れます。2列目の2行目には、QRコードを保存するときの名前を入れます。

2-python実行環境で、先ほどのQRgenerator.pyファイルを実行してください。必要なライブラリは、qrcodeと、pandasです。ライブラリがない場合は、pip install qrcode とpip install pandas を実行してライブラリをインストールしてください。

3-データファイル(エクセル)の場所と、QRコードの保存する先を選択してください。

4-QRを作成を押すと、一気にQRコードが作成されます。

セキュリティ上、ダウンロードすることができない場合にはソースコードから作成できます。以下のコードをコピーしてpython実行環境で実行してください。


#!/usr/bin/env python
# coding: utf-8

import qrcode
import pandas as pd
from tkinter import *
from tkinter import ttk
import tkinter
from tkinter import filedialog

       
def _destroyWindow():   # close the tinker window
    root.quit()
    root.destroy()
    
def askfileplace():
    cd =  filedialog.askopenfilename()         # ask which directly to use for saving image and excel    
    path.set(cd)

def askdirectoryplace():
    cd =  filedialog.askdirectory()         # ask which directly to use for saving image and excel    
    path2.set(cd)
    
def qrgenerate(path,path2):
    df = pd.read_excel(path)
    for i in range(len(df)):
        img = qrcode.make(str(df.iloc[i,0]))
        img.save('{}\\{}.png'.format(path2,str(df.iloc[i,1])))
    _destroyWindow()

# create interface
root = Tk()
root.title('QR作成ツール')
root.resizable(True, True)

#create text
frame1 = ttk.Frame(root, padding=(32))
frame1.grid()

label1 = ttk.Label(frame1, text='データファイルの場所', padding=(1, 2))
label1.grid(row=1, column=0, sticky=E)

path =StringVar()
path_entry = ttk.Entry(
    frame1,
    textvariable=path,
    width=20)
path_entry.grid(row=1, column=1)

path_button = ttk.Button(frame1,text="フォルダ選択",command= lambda : [askfileplace()] )
path_button.grid(row=1, column=2)

label2 = ttk.Label(frame1, text='QRコードの保存場所', padding=(1, 2))
label2.grid(row=2, column=0, sticky=E)

path2 =StringVar()
path_entry2 = ttk.Entry(
    frame1,
    textvariable=path2,
    width=20)
path_entry2.grid(row=2, column=1)

path_button2 = ttk.Button(frame1,text="フォルダ選択",command= lambda : [askdirectoryplace()] )
path_button2.grid(row=2, column=2)

# create bottons
frame2 = ttk.Frame(frame1, padding=(0, 5))
frame2.grid(row=3, column=1, sticky=W)

button1 = ttk.Button(
    frame2, text='QR作成',
    command= lambda : [qrgenerate(path.get(),path2.get())]) # read the function I made
button1.pack(side=LEFT)

root.mainloop()

Categories:

category