Python×医療事務(×トロント)

#医療 / #医療事務 / #IT / #トロント / #歯科助手 / #のんびり / #備忘録 / #趣味

オンライン資格確認   マイナタッチ機種等

www.mhlw.go.jp

オンライン資格確認の機器がありますが いいのか悪いのか今現在わからない状況です

自分用としてもまとめたいと思います

 

今現在(令和4年5月5日)の対応機器は下記?

https://www.mhlw.go.jp/content/10200000/000809298.pdf

 

私が申し込んだ時点では

Panasonic

https://www.iryohokenjyoho-portalsite.jp/application/docs/01357db680654d5f791eca75bedc391c.pdf

 

connect.panasonic.com

 

富士通

https://www.pfu.fujitsu.com/caora/healthcare/Caora_catalog.pdf

www.pfu.fujitsu.com

 

Almex

https://www.iryohokenjyoho-portalsite.jp/application/docs/7042561806f0094b2c7e127c2baef3c3_1.pdf

www.almex.jp

 

の3つでした

電子カルテ会社が対応しているかどうかですが、マイナンバーカードで自動で保険証の情報を入力 または情報の照合ができるようです

アルメックス社に関しては公費受給者証にも対応しておりとても未来的です

しかし、やはり費用が発生するようです

しかしアルメックス社以外の機種は現在のところ、今後も受給者証に対応する予定はないようです  何十年後はどうなるか分かりませんが残念な話ですね

 

アルメックス社の費用発生について↓

アルメックス社が公費読み取りを可能にしていく観点から、19ヶ月以降に費用発生は必須となります。

※参考資料抜粋:アルメックス社だけが5年の保守期間のうち、1年半経過後から保守料金を2,500円/台・月(税抜)が発生しますが、理由としては公費医療券・保険証の読取精度の向上にあたり2次開発、3次開発で、

ご要望の多い公費医療券を読取出来るよう開発していくことから、常時人手がかかる事も含めて発生するという理由。(読取精度向上のアップデート対応は保守に含まれています)  

 

 

(変更前)

カードリーダー到着月の翌月より起算

※到着日が1日の場合は、当月より起算

(変更後)

新たに設定される本格稼働日(医療機関の運用開始日ではなく、制度の開始日)を 起算日といたします。

仮に2021年10月1日本稼働スタートであれば、スタートから19ヶ月目である2023 年4月1日から有料保守開始となります。

カードリーダーが早めに到着しても保守開始月は本格稼働日となりますのでご安心して下さい。

 

 

途中からの変更の場合はカードリーダーとオンライン資格確認端末との再設定が必要になるので、さらに費用が発生

 

 

月額料金については除外しますが、導入にあたる費用は元々オンライン化している病院であれば実質無料のようです

 

近代化していくのは大変いいですし

設置するだけで算定もできるようです

ただし診療情報提供に同意してもらった場合のみのようです

 

https://www.mhlw.go.jp/content/12400000/000920428.pdf

オンライン資格確認システムを通じて患者の薬剤情報又は特定健診情報等を取得し、当該情報を活 用して診療等を実施することに係る評価を新設する。

初診料

   (新) 電子的保健医療情報活用加算   7点

再診料

   (新) 電子的保健医療情報活用加算   4点

外来診療料

   (新) 電子的保健医療情報活用加算   4点

[対象患者]
オンライン資格確認システムを活用する保険医療機関を受診した患者

[算定要件]
別に厚生労働大臣が定める施設基準を満たす保険医療機関を受診した患者に対して、健康保険法第3条第13項に規定する電子資格確

認により、当該患者に係る診療情報等を取得した上で診療を行った場合は、電子的保健医療情報活用加算として、月1回に限りそれぞ れ所定点数に加算する。

(※) 初診の場合であって、健康保険法第3条第13項に規定する電子資格確認により、当該患者に係る診療情報等の取得が困難な場合又は他の保険医療

機関から当該患者の診療情報の提供を受けた場合等にあっては、令和6年3月31日までの間に限り、3点を所定点数に加算する。

 


令和4年度診療報酬改定説明会(令和4年3月4日開催   についてはこちら↓

www.mhlw.go.jp

カルテチェッカー制作 計画①

電子レセプトとは? UKEファイルとは?

 

電子レセプトってそもそもなに? レセプトってなに?レセプトの仕組みって?はこちら参考に

ざっくらばんに言うと レセプトは 国への7〜10割分の医療費請求用紙です

支払基金(大まかに言うと社保)、国保 が審査をし これ駄目じゃない?これ違うんじゃない?このレセプト見てなにか感じませんか?というのを 返戻してくる

全然駄目じゃん、こんなの受け付けませんよというのを 増減点 突合で返してくる(これに対して異議申し立て等あるが詳細はいつか)

支払基金国保を通過したレセプト分を保険者に請求しその分 医療機関にお金が振り込まれる

支払基金国保医療機関の味方と言われますが正直 チェックミスやこちらの知識漏れでした等もあったり保険証間違えの返戻出してこなかったりで完全味方の感じは若干感じない

教えてくれたり相談してくれるのは有り難い

担当によっても態度も変わるので変な担当だと精神的ストレスがあります 担当は言えば変更してくれると思われる 

developer.medley.jp

電子レセプトについて

www.kartemaker.com

 

さて電子カルテをオンライン送信する際にUKEファイルというデータ様式で保存します

UKEファイルについて

その際のUKEファイルの中身について下記記事参照

UKEファイルの中身を見ると大量に文字や,で区切られていてある意味苦行です

検索ワードが決まっているならCommand(Ctrl)+Fで検索ワードを検索すると該当場所に移動してくれるのでまだ読みやすい

UKEをCSV(Comma-Separated Values カンマで大量に区切られているファイル)形式に変えます

note.com

 

下記 「レセプト電算処理システム電子レセプトの作成手引き」から分かるように カルテというのは人間の域を超えています このようなルール化も医療に関わる現場に負担を強いてます

支払基金等のレセプトチェック担当部署等も残業等をしていたりそれが当たり前になっている環境・人間たち

このようなルールを作るのもあり得ないなと思います

だからこそIT化必要ですね

https://www.ssk.or.jp/seikyushiharai/rezept/iryokikan/iryokikan_02.files/jiki_i01.pdf

 

時代に追いつけないと生き残れないのは当たり前なので仕方ないですが、医療の現場をもっと知ってからにしてほしいとつくづく思います

 

話戻してUKEをCSV形式に変えた後、普通にクリックしちゃうとEXCELで開かれちゃうので 

f:id:chocolate22554:20201130131850p:plain

右クリックして→このアプリケーションで開く→テキストエディットで開きます(今回 UI(見た目や操作性)がいいのでMACで操作しています Windows操作は

レセプト電算データの中身|レセプトまるみえ君ブログ|note

参考)

f:id:chocolate22554:20201130132031p:plain

 

下記サイトを参照にコードを記載

techplay.jp

途中で下記エラーが出たので下記URL参考に,encoding="shift-jis"を追加

f:id:chocolate22554:20201130135801p:plain

qiita.com

読み込めました

f:id:chocolate22554:20201130140244p:plain

 

 

 

 

 

CSVファイルのコード等の読み解き

ハッシュ関数」を用いることで、個人の直接的な識別情報を削除(「匿名 化」)

https://www.mhlw.go.jp/stf/shingi/2r9852000002ss9z-att/2r9852000002ssf5.pdf

 

 

https://www.mhlw.go.jp/stf/shingi/2r98520000025pcd-att/2r9852000002624j.pdf

 

f:id:chocolate22554:20210712182632p:plain

 

f:id:chocolate22554:20210712182727p:plain

 

 

 

 

★こちら下記のURL様にとても助けていただきました 

http://www.resept.com/BENKYOKAI/reseptseminartext2013.pdf

http://www.resept.com/BENKYOKAI/reseptseminartext2013.pdf

 

https://www.ssk.or.jp/seikyushiharai/rezept/iryokikan/iryokikan_02.files/jiki_i01.pdf

 

https://bijicom.co.jp/karte-equipments

 

f:id:chocolate22554:20210421065609p:plain





 

 

 

 

 

KO公費レコード

公費情報。負担者・受給者番号。

f:id:chocolate22554:20210421065627p:plain

f:id:chocolate22554:20210421065638p:plain




 

 

 

 

 

 

IR

f:id:chocolate22554:20210421065649p:plain



 

 

医療機関情報レコード  : 医療機関コード 医療機関名称 点数表コード(医科、歯科・・・)

請求年月日 等>,1,01,1,0710696,,病院名,202103,00,011-700-2233

 

 

 

 

RE

 

f:id:chocolate22554:20210421065704p:plain



 

<レセプト共通レコード :1つのレセプトに対する共通情報。主に患者情報を記載(氏名、性別、生年月日など)、レセプト番号(このデータ内の連番)

 

 

●RE(レセプト共通)

RE,55<厚生労働病院にこの月提出された 55 番目 のレセプト>,1116<レセプト種別(医科・医保単独・家族・入院外)>,41711<平成 17 年 11 月診療分>,樋口 一葉(姓名間に空 白挿入),2<女(2)、男(1)>,3220725<昭和 22 年 7 月 25 日生>,,,,,,199<199 床病院>,1116 55,,,,01 とは,,

 

RE,レセプト番号,レセプト種別,診療年月,氏名,性,生年月日,給付割合,入院年月日,病棟区分,一部負担金,特記事項, 病床数,カルテ番号(14番目),割引単価,予備,予備,個別診療科(基金と協議の上,必要に応じ診療科コードを記録)

 

HO

 

<保険者レコード:保険者情報を記載。保険者番号、保険証の記号・番号),01010016<保険者番号>,25370741<保険証の記号>,29,1,907,,,,,,,,,<保険証の番号>

f:id:chocolate22554:20210421065715p:plain



 

 

SY

f:id:chocolate22554:20210421065729p:plain



<傷病名レコード:傷病名情報。傷病名コード、診療開始日、転記区分 等。

>,3671002,20210120,1,,,01,

SY<傷病名レコード

>,8847607,20210120,1,2049,,,

SY<傷病名レコード

>,3628025,20210120,1,,,,

 

S Y , 2 5 0 0 0 1 4<1 型 糖 尿 病> , 4 1 7 1 0 0 5<平 成 1 7 年 1 0 月 5 日 診 療 開 始> , 1 <転 帰 は 継 続 ( 1 ) >, 8 0 0 2<修 飾 語 は「 疑 い(8002)> , ,

 

 

SY,傷病名コード,診療開始日,転帰修飾語コード,傷病名称,主傷病

 

SI

f:id:chocolate22554:20210421065742p:plain



<診療行為レコード:診療識別・行為コード、数量、点数、算定日1-31日の情報 等

>,12,1,112007410,,,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,,1,112015770,,74,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,60,1,160081610,,112,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,60,1,160081130,,112,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,60,1,160081550,,400,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

 

 

SI,12<診療識別 12(再診)>,1<負担区分 1(医療保険のみ)>,112007410<診療行為コード 112007410(再診(病 院))>,,58<58 点>,1 <1 回>

 

 

IY

f:id:chocolate22554:20210421065755p:plain

<医薬品レコード

診療識別コード、医薬品コード、使用量、点数、算定日1-31日の情報 等。

>,60,1,620005210,1,,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

IY,,1,643310225,1,127,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,80,1,199000610,,7,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,80,1,120002910,,68,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

SI,80,1,120004270,,7,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,

 

IY,21<診療識別 21(内服)>,1,610443013<医薬品コード 610443013(リピトール錠 5mg)>,2.000<2 錠

>,16< 16 点>,56 <56 回>

特定材料(TO),コメント(CO)の4レコード識別は合わせて摘要欄情

 

 

 

 

レセプトデータの中のレコード識別はアルファベット2文字で表されるが,マスターファイルはアルファベ ット一文字で表される点に留意。B(ビ)はビョウメイ,Y はヤクザイ

 

 

 

 

 

f:id:chocolate22554:20210421065808p:plain

 

 

 

マスタについて

 

 

電子点数表

https://www.ssk.or.jp/seikyushiharai/tensuhyo/ikashika/index.files/tensuhyo_01.pdf

 

 

 社会保険表章用疾病分類(内容例示表・索引表) [1,236KB]

https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/kenkou_iryou/iryouhoken/database/hokensippei.html)

 

 

 

f:id:chocolate22554:20210421065704p:plain



 

<レセプト共通レコード :1つのレセプトに対する共通情報。主に患者情報を記載(氏名、性別、生年月日など)、レセプト番号(このデータ内の連番)

 

 

●RE(レセプト共通)

RE,55<厚生労働病院にこの月提出された 55 番目 のレセプト>,1116<レセプト種別(医科・医保単独・家族・入院外)>,41711<平成 17 年 11 月診療分>,樋口 一葉(姓名間に空 白挿入),2<女(2)、男(1)>,3220725<昭和 22 年 7 月 25 日生>,,,,,,199<199 床病院>,1116 55,,,,01 とは,,

 

RE,レセプト番号,レセプト種別,診療年月,氏名,性,生年月日,給付割合,入院年月日,病棟区分,一部負担金,特記事項, 病床数,カルテ番号,割引単価,予備,予備,個別診療科(基金と協議の上,必要に応じ診療科コードを記録)

 

 

===診療行為マスタについて===

shinryohoshu.mhlw.go.jp


 

マスタ CSVファイル形式

医科診療行為マスター|社会保険診療報酬支払基金

 SI 

区分番号 診療行為名称 点数 施行日 請求コード
A000-00 初診料 288点 令和2年4月1日 111000110
A000-00 乳幼児加算(初診) 75点 令和2年4月1日 111000370
A000-00 時間外加算(初診) 85点 令和2年4月1日 111000570
A000-00 休日加算(初診) 250点 令和2年4月1日 111000670
A000-00 乳幼児時間外加算(初診) 200点 令和2年4月1日 111011970
A000-00 乳幼児休日加算(初診) 365点 令和2年4月1日 111012070
A000-00 夜間・早朝等加算(初診) 50点 令和2年4月1日 111012470

 

区分番号 診療行為名称 点数 施行日 請求コード
D256-02 眼底三次元画像解析 200点 令和2年4月1日 160183310

 

SY 

===== 

 

 

①マスク化について

CSVのマスク化あると思うがMAC用、見つからず とりあえず手作業で「RE」検索 行にある 患者様の名前を消していった(カルテ番号があるので名前なくても判別できる)

②padasを利用

データの確認や加工が簡単になるpandas形式で読み込むのがスタンダード 

レセプトUKEファイルはCSVなので  .read_csv() 関数 (タブ区切りの場合は read_table())

 

 

 

CSVファイルについて==

CSV編成ファイルのファイル編成とレコード形式

またExcelと比べ互換性が高い

「,」で区切られている

Comma Separated Valueの略で、Comma(カンマ)で Separated (区切った)Value(値)

CSVファイルとは パソコン初心者講座

 CSVファイルフォーマットの解説:CodeZine(コードジン)

 ====

 

=== 

 

www.tutimogura.com

彷徨いましたが上記サイト様で解決しました

 

✔'utf-8' でなくshift-jisで

  UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 19: invalid start byte

今回は 斜視病名がある際に 輻輳を算定しているかをt

from os import O_EXLOCK
import pandas as pd
import numpy as np
import csv


# データセットの読み込み
#f = pd.read_csv('RECEIPTC.UKE', 'r', encoding="shift-jis")
f=open("/Users/○○/△△/pandas カルテチェッカー/RECEIPTC.UKE", encoding="shift-jis")
syasi=3789001
Fukusou=160083810

 

 

line.split("RE")

 にて、REが先頭にきている 行のみ出力される

if*1

 だと 該当の「160083810」が含まれる行すべて(7個)出力される

 

#if SY(病名)列  に3789001(斜視)がある
if *2and*3:
print(line)

or

print(s.find(3))
任意の文字列の位置を取得
for line in f:
#if SY(病名)列  に3789001(斜視)がある
if *4
print(line.find(10))

これだと何も出力されない

 

for line in f:
#if SY(病名)列  に3789001(斜視)がある
if line.split("RE"):
if ("SY"and"3789001")in line:
if("SI"and"160083810")in line:
#RE で区切る +名前を出す(カタカナ)
Ra = ("RE") in line
print(Ra.find(10))

 

 

 

 

 

 

===== その他諸々============================

 

pandasで特定の文字列を含む行を抽出(完全一致、部分一致) | note.nkmk.me

pandas.Seriesの文字列メソッドstr.contains()を使うと、要素が特定の文字列を含むとTrueとなるpandas.Seriesを取得

print(df['name'].str.contains('li'))
# 0     True
# 1    False
# 2     True
# Name: name, dtype: bool

print(df[df['name'].str.contains('li')])
#       name  age state  point
# 0    Alice   24    NY     64
# 2  Charlie   18    CA     70

pandas.Seriesの文字列メソッドstr.startswith()を使うと、要素が特定の文字列で始まるとTrueとなるpandas.Seriesを取得

print(df['name'].str.startswith('B'))
# 0    False
# 1     True
# 2    False
# Name: name, dtype: bool

print(df[df['name'].str.startswith('B')])
#   name  age state  point

pandasで任意の位置の値を取得・変更するat, iat, loc, iloc | note.nkmk.me

df[]で行・列を選択できるが、以下の指定方法に限られる。

  • 行の選択 : 行名・行番号のスライス
  • 列の選択 : 列名、または、列名のリスト
print(df['Bob':'Ellen'])
#          age state  point
# name                     
# Bob       20    CA     92
# Charlie   30    CA     70
# Dave      40    TX     70
# Ellen     24    CA     88

print(df[:3])
#          age state  point
# name                     
# Alice     24    NY     64
# Bob       20    CA     92
# Charlie   30    CA     70

print(df['age'])
# name
# Alice      24
# Bob        20
# Charlie    30
# Dave       40
# Ellen      24
# Frank      30
# Name: age, dtype: int64

print(df[['age', 'point']])
#          age  point
# name               
# Alice     24     64
# Bob       20     92
# Charlie   30     70
# Dave      40     70
# Ellen     24     88
# Frank     30     57

 

import numpy as np
import scipy as sp
from pandas import Series, DataFrame
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib as mlp
import seaborn as sns

import sklearn

mydata = pd.read_csv('sample.csv')

 

 

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 0: invalid start byte

PythonでCSVファイルの読み込み時、UnicodeDecodeErrorによるエラー【初心者向け】 - Qiita

, encoding="shift-jis" をつける

pandas.errors.ParserError: Error tokenizing data. C error: Expected 38 fields in line 10, saw 44

 ↓

pandasでread_csv時にUnicodeDecodeErrorが起きた時の対処 (pd.read_table()) - Qiita

with codecs.open("sample.csv",sep=",",header=0 ,dtype = 'object', "r", "Shift-JIS", "ignore") as file:

SyntaxError: positional argument follows keyword argument

テキストエディタにて>

with codecs.open("sample.csv",sep=",",header=0 ,dtype = 'object', "r", "Shift-JIS", "ignore") as file:
df = pd.read_table(file, delimiter=",")
print(df)

 ↓

File "1.py", line 23, in <module>

    with codecs.open("sample.csv", "r", "Shift-JIS", "ignore") as file:

NameError: name 'codecs' is not defined

 

    with codecs.open("sample.csv",sep=",",header=0 ,dtype = 'object',  "Shift-JIS", "ignore") as file:

                                                                       ^

SyntaxError: positional argument follows keyword argument

<わかりやすい→>【Python】pandasでCSV/TSVファイルを読み込む方法

 

 

ValueError: header must be integer or list of integers

pandasでデータを読み込むときに気を付けること(dtypeの指定) - Qiita

dtypeに何も指定せずにいると、勝手に型を判別  そのため指定する

dtype = 'object'

 

 

 

テキストエディタにて 下記コード記載 「1.py」という名前をつけ コマンドにて python 1.py  で実行

 

import pandas as pd
import numpy as np
import csv


# ファイルを読み込みモードでオープン
with open('RECEIPTC.UKE', 'r') as f:

reader = csv.reader(f) # readerオブジェクトを作成
# 行ごとのリストを処理する
for row in reader:
print ' '.join(row) # 1行ずつスペース区切りで表示

<join関数では複数のDataFrame(またはSeries)を結合することが可能

指定した軸の方向にDataFrameを結合するPandasのconcat関数の使い方 - DeepAge

docs.python.org

>

PythonでCSVファイルの読み込み・書き込みを行う方法 | UX MILK

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 19: invalid start byte

 

encoding="shift-jis" を追加した

PythonでCSVファイルの読み込み時、UnicodeDecodeErrorによるエラー【初心者向け】 - Qiita

 

出来た!

==CSVの読み込みとprint 全体コード====

import pandas as pd
import numpy as np
import csv


# ファイルを読み込みモードでオープン
with open('RECEIPTC.UKE', 'r', encoding="shift-jis") as f:

reader = csv.reader(f) # readerオブジェクトを作成
# 行ごとのリストを処理する
for row in reader:
print(' '.join(row)) # 1行ずつスペース区切りで表示

========

 

herok またtry

flaskまたtry

jkavascript必要あればtry

 

 

「レセプトまるみえ君」の誕生|レセプトまるみえ君ブログ|note

javascript 

でファイルの読み込み、個人情報をマスクする処理、サーバーに送る、までやります。患者の保険情報、名前、クリニックの名称、電話番号、医療機関コードは消去してから送ら

 

ログインの機能と辞書ファイルをサーバーに置くために、データをサーバーに送っています。ただし、サーバーのデータベースには保存しないようになっています

 

マスターから作った辞書を使って傷病名、修飾語、診療行為、のコードを翻訳します。そして、ブラウザに送り返します。サーバーは heroku で PaaS 

 

python, flask

 

受け取ったデータは javascript で使いやすく並べて、表示
 

 

CSVをドラッグ&ドロップ
https://www.google.com/search?q=CSV%E3%82%92%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0%EF%BC%86%E3%83%89%E3%83%AD%E3%83%83%E3%83%97&client=ms-android-kddi-jp&sourceid=chrome-mobile&ie=UTF-8

 

◎ CSVファイルをドラッグ&ドロップでデータをtable表示 ...https://tokidoki-web.com › 2017/06 › csvファイルをドラ...

【Javascript】ドラッグ&ドロップでCSVを読み込む | Local Biashttps://localbias.work › プログラミング › Javascript)

 

If
Print
If
Print
を繰返しコード文、書きまくる

 

 

行・列・要素を取得

マスターしよう!PythonでのCSVファイル操作方法を徹底解説! | TechTeacher Blog

 

③ データの整形(データ型変更、列名変更、並び替えなど)

  • df.set_index()
  • df.rename()
  • df.sort_values()
  • df.to_datetime()
  • df.sort_index()
  • df.resample()
  • df.apply()
  • pd.cut()

 # datetime列をindexにする

④ データの欠損状態の確認

  • df.isnull()
  • df.any()

 

print(row.isnull().sum()) 付け加えると

AttributeError: 'list' object has no attribute 'isnull'

'list'オブジェクト 'isnull'属性を持っていない  となる

そのままスルーする

 

⑤ 値(欠損)の置き換えや削除

  • df.fillna()
  • df.dropna()
  • df.replace()
  • df.mask()
  • df.drop()

⑥ 集計

  • df.value_counts()
  • df.groupby()
  • df.diff()
  • df.rolling()
  • df.pct_change()

   for row in reader:
##print(' '.join(row)) # 1行ずつスペース区切りで表示
#print(row.isnull().sum())
#print(row.isnull())
#print(reader[reader.isnull().any(axis=1)].shape)
kazu= pd(row.groupby('SI' and 'SY').count())
#kazu2=pd.kazu
print(kazu)

AttributeError: 'list' object has no attribute 'groupby'

 一旦スルー

 

⑦ 可視化

  • df.plot()
  • df.corr()
  • df.pivot()

 

 

⑨ 最後に、出来たデータをもう一度眺める

データ分析で頻出のPandas基本操作 - Qiita

 

  

 

 

 

 

https://www.itmedia.co.jp/news/spv/2105/26/news087.html
文章をプログラミング言語に変換 Microsoftがローコード開発ツール「Power Apps」に「GPT-3」活用

 

Microsoft、自社製RPAツールhttps://www.itmedia.co.jp/news/spv/2103/03/news096.html

 

 

===電子カルテ(EMR)等のオープンソースについて=========

##電子カルテ=EMR
今まで検索で電子カルテで調べることが多かったのですが「電子カルテ」と検索すると電子カルテの広告エンジンに引っかかるのか同じような電子カルテの広告や電子カルテの宣伝ばかり出てきました
最近 英語で調べる機会があり 電子カルテは英語でelectronic medical recordといい略称で EMRというようです
EMRで調べてみると英語のサイトがいっぱい出てきました


#英語の記事
オープンソース健康医療ソフトウェアのリスト
どちらも同じものかな?
英語バージョンはリスト化されており見やすい
しかし英語バージョンを日本語訳に変更すると同じような記事になるので同じ記事と思われる(まだ詳しく見れていない)

* 日本語バージョン

ja.m.wikipedia.org

 

* 英語バージョン

en.m.wikipedia.org


http://bots.sourceforge.net/en/index.shtml


http://www.cottagemed.org/cottage-med/

 

 

あまり関係ない&詳しく読めてないですが電子カルテで使われているコード等・仕組みについて記載されていると思われます
レセプトデータ作成の際にUKEファイルが作られます
そのUKEファイルをテキストエディタ等でコードを読み解きます。その際のコードを読み解くのですがそれらのことを海外版で記載しているのかなと思われる
それ以外も記載していると思われる

* Feature Engineering of Electronic Medical Records | by Jill Cates | Medium

 


Medical Free/Libre and Open Source Software
オープンソース健康医療ソフトウェアのリスト と重なるソフトもあると思うがpythonに絞って表示されていると思われる

www.medfloss.org

 


Python × EHR は良い組み合わせだよね!デザイン性にもいいし!等記載がある
どのような観点が問題か等 主観?で記載しているイメージ  
今後参考になるかな?

Site Offline

 


電子カルテの仕組みがアバウトに分かる
英語でおおよそ読んでわからない単語を調べるだけでも勉強になった
www.quora.com

HIPAA(Health Insurance Portability and
Accountability Act of 1996;

* 米国のHIPAA法における 個人情報等の保護に関する規定

* 医療保険の携行性. と責任に関する法律


HL7
f:id:chocolate22554:20210107225444p:plain

FHIR

http://www.hl7.jp/docs/69seminar_2_HL7.pdf

M/MUMPS
アプリケーション開発手法としてMUMPS/M言語そのものは医療業界以外に広く普及しなかった。
MUMPS - Wikipedia

__↓____________________
Caché(キャシエ)
MUMPSベースのデータベース管理システム
主な顧客はアメリカの大病院が多く、電子カルテ (EMR) システムをCachéで実現

Cache - Wikipedia

RESTful API(REST API)
Webシステムを外部から利用するためのプログラムの呼び出し規約

qiita.com


qiita.com


XML/JSON APIから新しいREST API

help.zoho.com

 

WebAPI

developer.ntt.com

_______________________

OLAP database
f:id:chocolate22554:20210107225845p:plain

OLAP database - Google 検索


無償トレーニン

https://education.oracle.com/learning-explorer#startLearning

 

OLAP分析 DWH OLTP BIツール

yellowfin.co.jp


5NF  第5正規形
f:id:chocolate22554:20210107232223p:plain

 

 

===================================

 

参考になるか?

pythonでのcsvファイルの読み込み - Qiita

 

 自動採点のTips :: Jun Nishii

 

[Python]CSVに保存したワイン1600本分のデータを使ってDeepLearingを実装 - Qiita

 

 

 ====

 

 

 

=========== 

Streamlit を用いたデータ分析アプリ制作 - Qiita

https://www.salesanalytics.co.jp/datascience/datascience017/

 

*1:"SY"and"3789001")and

#SI(診療行為)列 「160083810(精密眼筋及び輻輳
("SI"and"160083810")in line):
print(line,line.split("RE"

*2:line.split("RE"

*3:"SY"and"3789001")in line)and

#SI(診療行為)列 「160083810(精密眼筋及び輻輳
(("SI"and"160083810")in line

*4:"SY"and"3789001")in line)and(("SI"and"160083810")in line):

#RE で区切る +名前を出す(カタカナ)
(line.split("RE"

FLASK  公式チュートリアルにて簡易アプリ

プロジェクトのレイアウト — Flask Documentation (1.1.x)

最終的なプロジェクトのレイアウト

/home/user/Projects/flask-tutorial
├── flaskr/

flaskr/、アプリケーションのコードとファイルを含んだPythonのpackage。

│   ├── __init__.py
│   ├── db.py
│   ├── schema.sql
│   ├── auth.py
│   ├── blog.py
│   ├── templates/
│   │   ├── base.html
│   │   ├── auth/
│   │   │   ├── login.html
│   │   │   └── register.html
│   │   └── blog/
│   │       ├── create.html
│   │       ├── index.html
│   │       └── update.html
│   └── static/
│       └── style.css
├── tests/
tests/、テスト用moduleを含んだディレクトリ。
│   ├── conftest.py
│   ├── data.sql
│   ├── test_factory.py
│   ├── test_db.py
│   ├── test_auth.py
│   └── test_blog.py
├── venv/
venv/、Flaskとその他の依存対象がインストールされたPythonの仮想環境。
├── setup.py
└── MANIFEST.in
 

FlaskアプリケーションはFlaskクラスのインスタンス

flaskrディレクトリを作成し

mkdir flaskr

__init__.pyファイルを追加

import os

from flask import Flask


def create_app(test_config=None):
    # create and configure the app
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev',
        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
    )

    if test_config is None:
        # load the instance config, if it exists, when not testing
        app.config.from_pyfile('config.py', silent=True)
    else:
        # load the test config if passed in
        app.config.from_mapping(test_config)

    # ensure the instance folder exists
    try:
        os.makedirs(app.instance_path)
    except OSError:
        pass

    # a simple page that says hello
    @app.route('/hello')
    def hello():
        return 'Hello, World!'

    return app

__init__.pyの役割=application factoryを含むことと、Pythonflaskrディレクトリをpackageとして扱うように伝えること

 

flask-tutorialディレクトリにいる状態

<flaskrにいると下記エラー出る>

* Serving Flask app 'flaskr' (lazy loading)
* Environment: development
* Debug mode: on
Usage: flask run [OPTIONS]


Error: Could not import 'flaskr.flaskr'.

python - flask.cli.NoAppException: Could not import "flaskr.flaskr" - Stack Overflow

開発モードにする

(ページが例外を起こしたときにはインタラクティブなデバッガを表示し、コードを変更したときにはサーバを再起動

Flaskを実行させたままにしながら、ブラウザのページを再読み込みするだけで済むようにする)

LinuxおよびMac向け:

export FLASK_APP=flaskr

export FLASK_ENV=development

 

* Serving Flask app "flaskr" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with fsevents reloader
* Debugger is active!
* Debugger PIN: 178-620-284

 

⚠エラー

Import "flask" could not be resolved from source

f:id:chocolate22554:20210811190711p:plain

Stack Overflow有能

python - import flask could not be resolved from source pylance - Stack Overflow

下記のURLでしたら出来た 解決

▶ https://techinscribed.com/python-virtual-environment-in-vscode/

venveで作ったが そもそもanacondaで仮想環境 作っているのに python conda内にpathを通さず?(conda内のを使っておらず) そのためにエラーが出てた模様

f:id:chocolate22554:20210811201321p:plain

データベースへの接続

データベースの定義とアクセス — Flask Documentation (1.1.x)

ユーザ情報と投稿記事を格納するためにSQLiteデータベースを使用していきます。Pythonでは、組み込みのSQLiteサポートのsqlite3モジュールが一緒に提供されています。▶電子カルテ 等の患者データ(ID、(名前)、年齢(生年月日)、)

SQL言語

データベースへの接続(connection)の作成です。どのような問合せ(queries)や操作(operations)も、connectionを使用しながら実施され、作業が終了した後はconnectionが閉じられ(close)ます。

 

connectionは典型的にはリクエストと結び付け

リクエスト処理中のどこかの時点で作成され、レスポンスが送信される前に閉じられます。

 webアプリケーションでは、connectionは典型的にはリクエストと結び付けられる

 

アプリケーションへの登録

init-dbコマンドを実行:

 flask init-db

Initialized the database.

⚠エラー:AttributeError: 'ellipsis' object has no attribute 'teardown_appcontext'

createが2つあることが原因だった

python - Flask tutorial: AttributeError teardown_appcontext - Stack Overflow

import os
##Flaskとrender_template(HTMLを表示させるための関数)をインポート
from flask import Flask,render_template,request

#create_appはapplication factoryの関数
def create_app(test_config=None):
##def index():
# create and configure the app
#Flaskインスタンスを作成 __name__=Pythonのmodule名
#appは、いくつかpathを用意するために、appがどの場所にあるか知る必要があり、
# __name__はそれを伝えるための便利なやり方
app = Flask(__name__, instance_relative_config=True)
#configuration (設定)filesがインスタンスフォルダから相対的に示されることを、appへ伝え
#インスタンスフォルダはflaskrパッケージの外側に位置し、秘密情報の設定やデータベースのファイルなど、
# バージョン管理へコミットするべきではないローカルのデータを保持することができます。
##name = request.args.get("name")
## ll = Content.query.all()
app.config.from_mapping(
#appが使用する標準設定をいくつか設定
SECRET_KEY='dev',
#データを安全に保つため
#無作為な値(random value)で上書きするべき
DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
#SQLiteデータベースファイルが保存されるパス
#インスタンスフォルダに選んだパスである、app.instance_pathの下
)
##return render_template("index.html",name=name,ll=ll)
if test_config is None:
# load the instance config, if it exists, when not testing
app.config.from_pyfile('config.py', silent=True)
#インスタンスフォルダにconfig.pyファイルがあれば、値をそこから取り出して、標準設定を上書き
else:
# load the test config if passed in
app.config.from_mapping(test_config)

# ensure the instance folder exists
try:
os.makedirs(app.instance_path)
#app.instance_pathが確実に存在するようにします
#Flaskはインスタンスフォルダを自動的には作成しませんが、
#SQLiteデータベースファイルを作成するためにインスタンスフォルダが作成されている必要
except OSError:
pass

# a simple page that says hello
##########@app.route('/hello')
#アプリケーションが機能していることを確かめるための簡易な経路(route)を作成

@app.route("/hello")
#@app.route("/index",methods=["post"])
def hello():
#def post():
return 'Hello, World!'

#return app
##おまじない
##if __name__ == "__main__":
##app.run(debug=True)

#def create_app():
# app = ...
# existing code omitted

from . import db
db.init_app(app)

return app

instanceフォルダにflaskr.sqliteファイルが出来た

 

Blueprints and Views

アプリケーションへのリクエストに対して応答するために書くコード

受信する(incoming)リクエストのURLを、それを処理すべきviewへと照合するためにパターンを使用

Blueprintは、関連するviewおよびその他のコードをグループへと編成する方法

Flaskの代わりにそれらをblueprintに登録

 Flaskアプリケーションが利用可能になったときに、blueprintをFlaskアプリケーションに登録

アプリケーションの認証のview 

 

テンプレート

 ユーザのブラウザに表示するHTMLへ変換(render)するためにテンプレートを使用

jinja  {{}}の間のすべてのものが、最終ドキュメントへ出力される式(expression)

{%%}は、ifforのような制御フロー文

 コメントはこれらしい→   {# a comment #}

Template Designer Documentation — Jinja Documentation (3.0.x)

htmlのコメントアウトはjinjaエラー出るのでjinjaのコメントアウト使う

 

{% extends 'base.html' %}
<!--
ベースのテンプレートからブロックを置き換えるものだということをJinjaへ伝えます
表示される全てのcontentは、ベースのテンプレートのブロックを上書きする、
{% block %}タグの内側で現れる必要があります -->
 

 

<input name="username" id="username" required>
<!--ここではrequired属性を使用
ブラウザに、それらの入力欄が記入されないうちは、formを提出(submit)しないように伝える -->

 

 

 

 blueprintのテンプレートは(templatesの下の)blueprintと同じ名前のディレクトリに置かれます。

 

 

 

環境の作成

プロジェクトのフォルダと、その中のvenvフォルダを作成します。

flask- tutorialにて

$ python3 -m venv venv

 

. venv/bin/activate

 

 

http://127.0.0.1:5000/→和訳だとhttpsになっているためつながらない

 

 

 

インストール可能なプロジェクト(Make the Project Installable)

 

その他のデータが何かを伝えるためには、PythonMANIFEST.inというもう一つのファイルを必要

MANIFEST.in
include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc

これはPythonに、statictemplatesディレクトリにある全てと、schema.sqlファイルはコピーし、バイトコードのファイル(訳注:Pythonが実行時に作成・使用する中間ファイル)は除外するように伝えます。

 

 

 

出来た!

なんだかんだ公式チュートリアル?が楽でした

そして英訳のほうがわかりやすい

f:id:chocolate22554:20210816204121p:plain


 次は、D-jango

 

=その他諸々===========================

⚠エラー

Import "flask" could not be resolved from source で調べた結果

【VSCode】importで未解決の警告(import ~ could not be resolved)が出る問題の対策方法 - aburi6800のブログ

公式ドキュメントからコピったのを貼る

{
"python.analysis.extraPaths": ["./sources"]
}

 

f:id:chocolate22554:20210811191030p:plain



VSCodeを再起動する。

 

続きを読む

医療法人とは? 厚生労働省

厚生労働省医療機関等について記載している記事

 

医療法人とは?ということで気になるURLだけPickupしてみました

 

www.mhlw.go.jp

 

医療法人・医業経営

医療法人・医業経営のホームページ

 

医療法人の業務範囲(PDF)

https://www.mhlw.go.jp/content/10800000/000547146.pdf

 

 

医療法人の手引運営編(PDF)

https://www.pref.hokkaido.lg.jp/fs/2/3/5/6/8/9/3/_/020401iryohozintebikiuneihen.pdf

 

医療分野の情報化の推進について

医療分野の情報化の推進について |厚生労働省

 

 

医療従事者の勤務環境の改善

医療従事者の勤務環境の改善について

医療事務でよく使う旧漢字

医療事務の仕事をしている際に

カルテ作製の際に患者様のお名前を 入力することがあるかと思います

その際に 私も度々 そのたびにネット検索で旧漢字で検索しておりますので 今回 このブログ記事を作成しました

 

レセプトを出す際に 旧漢字かどうかは関係ないようですが(都道府県による?) やはり患者様に対する気遣いという点で 旧漢字で入力しているとまた印象が違いますよね

または 予約システム等連携しており 予約券に名前が印字される際にやはり気になさる患者様もいらっしゃると思います

 

そのため気遣い という点で旧漢字を使用するのが良いかもしれません

 

 

よくあるのは  

「はしごだか」

髙 

 

「さき、ざき」

﨑    

 

「つちよし」

𠮷

 

 

 

他にもあるかと思いますが今回はこれのみとします

随時 追加したいと思います