Medley Developer Blog

株式会社メドレーのエンジニア・デザイナーによるブログです

電子レセプトについて調べた話

こんにちは、開発本部の竹内です。最近子どものプリンセスへの強い憧れに若干引いております。

さて先日、TechLunchという社内勉強会で「電子レセプト」について話しましたので、こちらでも簡単に紹介させていただきます。

レセプトとは

ところで、みなさまは「レセプト」についてご存知でしょうか?私はメドレーに入社するまで知りませんでした。

レセプトとは医療機関が支払基金へ診療報酬を請求するための明細書情報のことです。

と言っても、初めて聞かれる方もいらっしゃると思いますので、医療機関におけるお金の流れとともに簡単に説明します。

http://www.ssk.or.jp/kikin.images/kikin_image01.png

(支払基金ってどんなところ?|社会保険診療報酬支払基金より)

医療機関は「診療」の対価として、被保険者等(≒患者)からお金を受け取るわけですが、被保険者の加入する保険や公費によってその額は変わります。負担割合が3割の場合、残りの7割を被保険者が加入する保険組合などへ請求する必要があります。

この保険組合などへの請求を取りまとめ、内容を審査しているのが支払基金と呼ばれる組織で、医療機関は月に一度、前月の患者ごとの診療点数を計算し「レセプト」として支払基金に提出することになります。

http://www.ssk.or.jp/kikin.images/kikin_image03.png

(支払基金ってどんなところ?|社会保険診療報酬支払基金より)

レセプトには、請求する診療点数のほか、医療機関の情報、被保険者の情報(氏名などの基本情報、加入している保険者情報)、診療行為や傷病名に関する情報などが含まれています。

「レセプト」には紙と電子データとありますが、現在は原則として電子レセプトを提出することが求められているそうです(電子レセプト請求に係る猶予措置及び免除措置について|社会保険診療報酬支払基金)。

電子レセプトとレセ電ビューア

電子レセプトについての仕様は支払基金によって公開されています。今回は「電子レセプト作成の手引き」という資料を元に「医科」のレセプトについて調べて発表しました。

発表資料はこちら。 speakerdeck.com

電子レセプトの実体はCSV形式のシンプルなテキストファイルです(拡張子はUKEなので、UKEファイルと呼ぶこともあるようです)。ただ、電子レセプトの仕様を把握したとしても、やはりCSVファイルを見て内容を把握するのは至難の業です。ファイル上では診療行為や医薬品、傷病名はコードとして表現されているため、マスタデータを参照しなければその内容まで理解することはできないからです。

そこで登場するのが、レセ電ビューアというツールで、ORCA Projectによって公開されているフリーの電子レセプトビューアです。「レセ電=電子レセプト」ですね。

www.orca.med.or.jp

(※上記ページでは「レセ電ビューア」と「レセ電ビューワ」が混在していますが、本ブログでは「レセ電ビューア」で統一しています)

レセ電ビューアはWindowsUbuntuで動作し、上述したUKEファイルを読み込み、見やすく表示してくれる便利ツールです。ここからはレセ電ビューアをインストールし、電子レセプトを読み込んで表示するところまでを紹介したいと思います。

レセ電ビューアのインストール

レセ電ビューアはWindowsUbuntu上で動作しますので、まずはUbuntu環境を準備します。私はVirtualBox上にUbuntu環境を用意しました。 公式のインストールマニュアル(ubuntu環境へのレセ電ビューアインストール)に基づいて作業していきます。

# Keyringとapt-lineの追加
$ sudo su
$ wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key
$ apt-key add archive.key
$ wget -q -O \
/etc/apt/sources.list.d/jma-receipt-xenial50.list \
https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-xenial50.list
$ apt-get update
$ apt-get dist-upgrade

# レセ電ビューアパッケージインストール
$ apt-get install jma-receview
$ apt-get install jma-receview-server

# レセ電ビューア起動
$ jma-receview

レセ電ビューアの設定

電子レセプトに含まれる診療行為などのコードに対応するマスタデータを参照するため、日レセ(jma-receipt)のDBを利用することができます。今回はDBFile形式でDBに接続します。レセ電ビューアに付属するスクリプトを実行し、jma-receiptのDBから必要なテーブルをダンプすることができます。このファイルをレセ電ビューアに設定することで、電子レセプトの表示がよりわかりやすくなります。

# レセ電ビューアで使うDBFileを作る
# https://ftp.orca.med.or.jp/pub/receview/manual/jma-receview.pdf
# 「2.7.4 DBFile の作成方法」
$ sudo su orca
$ ls -la /usr/share/jma-receview/db/
$ mkdir /var/tmp/dbfile
$ cp /usr/share/jma-receview/db/make_dbfile.sh /var/tmp/dbfile/
$ cd /var/tmp/dbfile/
$ sh ./make_dbfile.sh 20170101
$ ls -lh
合計 6.9M
-rwxr-xr-x 1 orca orca 2.9K  518 14:55 make_dbfile.sh
-rw-r--r-- 1 orca orca 1.2M  518 14:57 tbl_byomei.rdb
-rw-r--r-- 1 orca orca   89  518 14:57 tbl_dbkanri.rdb
-rw-r--r-- 1 orca orca 330K  518 14:57 tbl_hknjainf.rdb
-rw-r--r-- 1 orca orca 9.6K  518 14:57 tbl_labor_sio.rdb
-rw-r--r-- 1 orca orca 343K  518 14:57 tbl_syskanri.rdb
-rw-r--r-- 1 orca orca 5.1M  518 14:57 tbl_tensu.rdb

f:id:medley_inc:20180706112205p:plain

接続設定で「DBFile」を選択し、先ほど作成したDBFileを選択します。

レセ電ビューア近影

f:id:medley_inc:20180706112221p:plain

「ファイル」からUKEファイルを開くと、レセプトに基づいて患者基本情報、保険・公費情報、診療行為情報のほか、紙レセプトのプレビューや患者単位での電子レセプトを表示することができます。また、「編集モード」に切り替えることで患者情報や病名の編集が可能で、編集した内容でレセプトを再出力することもできるようです。

おまけ

ここまで紹介してきたレセ電ビューアですが、調べてみるとどうやらRubyで実装されているようです。これらのコードを読んでいくことで新たな地平を開くことができるかもしれません。

$ dpkg -L jma-receview | grep ruby
/usr/lib/ruby
/usr/lib/ruby/2.3.0
/usr/lib/ruby/2.3.0/jma
/usr/lib/ruby/2.3.0/jma/receview
/usr/lib/ruby/2.3.0/jma/receview/menu.rb
/usr/lib/ruby/2.3.0/jma/receview/intconv.rb
/usr/lib/ruby/2.3.0/jma/receview/base.rb
/usr/lib/ruby/2.3.0/jma/receview/dbfile_lib.rb
/usr/lib/ruby/2.3.0/jma/receview/gui.rb
/usr/lib/ruby/2.3.0/jma/receview/yearconv.rb
/usr/lib/ruby/2.3.0/jma/receview/exception.rb
/usr/lib/ruby/2.3.0/jma/receview/api.rb
/usr/lib/ruby/2.3.0/jma/receview/config.rb
/usr/lib/ruby/2.3.0/jma/receview/image.rb
/usr/lib/ruby/2.3.0/jma/receview/dialog.rb
/usr/lib/ruby/2.3.0/jma/receview/upstart.rb
/usr/lib/ruby/2.3.0/jma/receview/dbslib.rb
/usr/lib/ruby/2.3.0/jma/receview/thread.rb
/usr/lib/ruby/2.3.0/jma/receview/receview.rb
/usr/lib/ruby/2.3.0/jma/receview/sickname_edit.rb
/usr/lib/ruby/2.3.0/jma/receview/dayconv.rb
/usr/lib/ruby/2.3.0/jma/receview/isoimage.rb
/usr/lib/ruby/2.3.0/jma/receview/help.rb
/usr/lib/ruby/2.3.0/jma/receview/other_csv.rb
/usr/lib/ruby/2.3.0/jma/receview/print.rb
/usr/lib/ruby/2.3.0/jma/receview/env.rb
/usr/lib/ruby/2.3.0/jma/receview/generation.rb
/usr/lib/ruby/2.3.0/jma/receview/red2cairo.rb
/usr/lib/ruby/2.3.0/jma/receview/strconv.rb
/usr/lib/ruby/2.3.0/jma/receview/log.rb
/usr/lib/ruby/2.3.0/jma/receview/hokenconv.rb
/usr/lib/ruby/2.3.0/jma/receview/keybind.rb
/usr/lib/ruby/2.3.0/jma/receview/version.rb
/usr/lib/ruby/2.3.0/jma/receview/gtk2_fix.rb
/usr/lib/ruby/2.3.0/jma/receview/preview_widget.rb
/usr/lib/ruby/2.3.0/jma/receview/command.rb

# /usr/bin/jma-receviewもrubyで書かれてました(12000行以上ある…)

まとめ

今回は電子レセプトとレセ電ビューアについて、簡単に紹介しました。

わたしたちの生活とは切り離せない「医療」に関するシステムや仕様は、意外と一般公開されているものもあり、誰でも触れることができます。ただ、動作環境が制限されていたり、インターネット界隈のエンジニアがよく目にする技術とは異なるスタックで構築されていたり、それなりにハードルがあるように感じています。

これらのハードルを下げ、より多くの人が「調べてみよう」「ちょっと触ってみよう」と思うようになれば、医療に関わるシステムや仕様もよりシンプルで使いやすいものになり、ひいては各医療問題の解決・患者体験の改善につながっていくのではないかな、メドレーがつなげていきたいなと思っています。

最後はいいことを言って締めたい性分なのですが、いかがだったでしょうか。

ここまでお読みいただき、ありがとうございました。

お知らせ

メドレーの開発にご興味ある方は、こちらからご連絡ください。 www.medley.jp

7/27に開催されるデブサミ2018Summerに協賛させていただきます。ぜひ遊びにいらしてください。 event.shoeisha.jp