ORCA の日計表と関連テーブル・内部会計フローなどについて

ORCA(オルカ)のMLに以下の投稿をしたんですが、
https://ml.orca.med.or.jp/orca-users/msg14690.html
画像が添付されないようでこちらに転載(若干、説明補います)。

ORCAは、窓口での収納の他にこれらのデータを基にして経営に役に立つような各種データを帳票という形で提示してくれる。
例えば、2020年10月22日に「秋場太郎」(デモ患者)さんが、インフルエンザ予防接種(これは自費扱いになる)と精神科の診察(保険診療)を受けたとする。
オルカが吐き出す「日計表」と呼ばれる帳票はこんな感じになる。

1日の売り上げを把握するのには便利だが、もうちょっと詳細に分析したい場合、例えば、保険分と自費分を分けて集計・比較したいという場合、これだと若干わかりにくい。

以下は「自費分」を除いて集計できないか?という質問に対する私のレスです。


投稿

●日計表について

精神科医の猪股弘明と申します。

あまり万人向けの方法ではないですが、orca データベースに sql 文を投げるといろいろな情報が取得できます。
先ほど手抜きですがちょっと試してみました。(ロジック間違ってたらご容赦)

例えば、20201022(2020年10月22日) の診療実績を知りたければ以下のようなsql文が考えられます。

SELECT tbl_sryacct_main.sryym,tbl_sryacct_main.day_22,tbl_hkncombi.syu_tanseidoname,tbl_sryacct_main.ptid,tbl_sryacct_main.srykbn,tbl_sryacct_main.zaiten
FROM public.tbl_sryacct_main
INNER JOIN public.tbl_hkncombi ON
tbl_sryacct_main.ptid = tbl_hkncombi.ptid AND tbl_sryacct_main.hkncombi = tbl_hkncombi.hkncombinum
WHERE tbl_sryacct_main.sryym='202010' and tbl_sryacct_main.day_22 >0;

私の環境だと結果は orca-sql-result-1.png のようになります。(添付できるんでしたっけ?)

「自費」を除外したければ、この文の最後に
and tbl_hkncombi.syu_tanseidoname !=’自費’
を付加した

SELECT tbl_sryacct_main.sryym,tbl_sryacct_main.day_22,tbl_hkncombi.syu_tanseidoname,tbl_sryacct_main.ptid,tbl_sryacct_main.srykbn,tbl_sryacct_main.zaiten
FROM public.tbl_sryacct_main
INNER JOIN public.tbl_hkncombi ON
tbl_sryacct_main.ptid = tbl_hkncombi.ptid AND tbl_sryacct_main.hkncombi = tbl_hkncombi.hkncombinum
WHERE tbl_sryacct_main.sryym='202010' AND tbl_sryacct_main.day_22 > 0
AND tbl_hkncombi.syu_tanseidoname !='自費';

というsql文を発行します。

結果は orca-sql-result2.png になります。

「自費」分が除外されているのがわかるかと思います。

20201022 固定が嫌なら、yyyymmdd として適当なプログラム言語からこの手のsqlを生成してorcaに投げればいいと思います。

あと、前にも言いましたが、
https://ml.orca.med.or.jp/orca-users/msg14678.html
やはりテーブル間にカラムの不整合がありますね。
今回は
tbl_sryacct_main.hkncombi = tbl_hkncombi.hkncombinum
と名前が違うような・・・。

 

猪股弘明
医師(精神科):精神保健指定医


pgAdmin4 のインストールと使い方

なお、上記の説明で出てくる画像は pgAdmin4 という PostgreSQL と連動して動くユーティリティソフトが表示したものをスクリーンショットで撮ったものだ。
sql文自体は、psql コマンドなどからも実行できるが、コマンドライン操作が苦手なようなら pgAdmin4 を使うとよいと思う。
なのだが Ubuntu 上に pgAdmin4 をインストールするのは若干面倒なので、普段使っている windows や Mac にインストールする方が楽だと思う。インストール方法は検索するといろいろ出てくる。

Mac でアプリで導入した場合、PgAdmin4 が起動しているとメニューに
←こんな象さんのアイコンが表示されているので、
クリックして「New pgAdmin4 window …」を選ぶ。

PostgreSQL を監視・操作するブラウザ画面が立ち上がるはずだ。

左ペーンで ORCA が動いているサーバを登録する。orca データベースをアクティブにしたまま、右上の「お重弁当+矢印」みたいなアイコンをクリックすると右のペーンがクエリ画面になる。
ここまできたら、準備は完了。
SQL文を書いて、「実行」すればなんらかの結果が出てくる。

一番簡単には、上であげた SQL 文をコピペして実行すればよい。

お疲れ様でした。

なお、慣れてくると

select a.sryym,a.day_22,b.syu_tanseidoname,a.ptid,a.srykbn,a.zaiten
from public.tbl_sryacct_main a 
inner join public.tbl_hkncombi b on a.ptid = b.ptid and a.hkncombi = b.hkncombinum 
where a.sryym='202010' and a.day_22 > 0; 

な感じでもうちょっと短く書けるようになる。

 


ORCA の会計フローと上記 SQL 文の意味

ポイントはここでしょう。
このあと、作成した SQL 文を基にプログラムを組むにしても、上記 SQL が何やっているかわかってないと目的にあった修正ができないと思う。

まず、基本ですが

SELECT カラム,カラム… FROM テーブル WHERE 条件;

は基本構文みたいなものなので、覚えて欲しい。最後の ; も忘れずに。
対象とする「テーブル」からある「条件」を満たす「カラム」を抽出する場合、この構文を使う。
今回の場合は、tbl_sryacct_main が各種集計の基本となるテーブルになりそうなので、まずは試しにこのテーブルの全カラムを sql から表示させてみる。

SELECT * FROM tbl_sryacct_main;

「条件」はないので WHERE は不要。これだけでいい。* は全てのカラムを意味する。実行結果は以下のようになる。

ここで特定の年月日のみを取り出したければ、WHERE 以下のその条件を書く。

上の文の最後に

WHERE tbl_sryacct_main.sryym=’202010′ and tbl_sryacct_main.day_22 > 0

を付加しよう。結果は以下のようになる。

これで、ある特定の日の診療行為の全ての情報が絞り込めたことになる。

なお、クエリ画面の上部の ⬇️ を押すとここまでの結果を CSV ファイルに書き出してくれる。

実務的には、これくらいの段階でエクセルなどに取り込んで加工した方が事務処理的には「慣れ」という意味でいいのかもしれない。イマドキの事務員さんならこれからあとの処理はお手の物でしょう。

 

tbl_sryacct_main テーブルを眺めると、このテーブルが、特定の患者に対するある月の個々の診療行為や投与薬剤を日別に集計したものであることがわかる。
上の例で言えば

95000001 は「インフルエンザ予防接種」(ここは施設によって異なる)
1110000110 が初診料
180020410 が通院精神療法(初診時60分以上)

だ。day_22 というカラムにこれらを施行した回数(今回は「1」)が書き込まれている。施行しなければ「0」になっている。

だから、day_22 > 0 という「条件」を加えると「22日」に医療行為をしたレコードをすべて拾い上げられるという理屈だ。

このときの保険種類が知りたければ、tbl_sryacct_main.hkncombi を表示させればよい。(SQL では表示させたいカラムは SELECT 直後に指定する)

これだけでも最低限所定の目的は実現できていると思うが、
tbl_sryacct_main.hkncombi
は数字でコードされているのでわかりにくい。この数字は、tbl_hkncombi という別のテーブルにより詳しい情報が記載されている。

だから、より丁寧にやるならば、tbl_sryacct_main と tbl_hkncombi を適当な形で結合させればいい。
「結合」のさせ方はいろいろあると思うが、今回は INNER JOIN を用いた。

ここまで理解できれば最初の方であげた SQL 文が何をやっているかわかってくると思う。

SELECT
tbl_sryacct_main.sryym,tbl_sryacct_main.day_22,tbl_hkncombi.syu_tanseidoname,tbl_sryacct_main.ptid,tbl_sryacct_main.srykbn,tbl_sryacct_main.zaiten
FROM public.tbl_sryacct_main
INNER JOIN public.tbl_hkncombi ON
tbl_sryacct_main.ptid = tbl_hkncombi.ptid
and tbl_sryacct_main.hkncombi = tbl_hkncombi.hkncombinum
WHERE tbl_sryacct_main.sryym=’202010′ and tbl_sryacct_main.day_22 > 0
and tbl_hkncombi.syu_tanseidoname !=’自費’;

SELECT 〜 FROM 〜 WHERE の基本構文に INNER JOIN を組み合わせて目的とする情報を取ってきている。
すごく大雑把に言えば、「関連するテーブルを結合させて、そこから条件にあったレコードを抽出して適当なカラムを表示させている」わけです。


WebORCA になって DBAPI という PostgreSQL の orca データベースを操作する REST 風の Web API が実装された。

メーリスの方に使い方の概略を投稿してきたので、興味のある方は参考にしてみてください。

 

猪股弘明
医師(精神科):精神保健指定医
OpenDolphin-2.7m, HorliX, orz 開発者

 

今日の HorliX (2019/03/07)

医療画像ビューア HorliX は、Mac AppStore で世界に配信されている。
個人情報の収集はまったくしていないが、各国プラットフォームでどの程度売れたかは報告があがってくる。
顔本内では、そのデータを見て仲間内で盛り上がっていたのだが、こちらでも。


日本での顧客を増やすべく、ちょっと前に頑張って販売価格を1万以下、つまり
¥11800 → ¥9800
にしたのだが(なってますよね?)、全然反応しない日本市場(笑)。

海外では、ポーランド・イタリア・韓国でしっかり反応が出る。未だにユーザーの過半数は海外だ。

 

韓国は、実は初上陸。これで販売実績国は37。

 

猪股弘明(精神科:精神保健指定医)
OpenDolphin-2.7m, HorliX 開発者


しかし、よく売れていたものです。
こことかこことかにも痕跡が(笑)。

それはそうと
フリーかつオープンソースな医療画像ビューア HorliX について
COVID-19 による肺炎CT画像! <HorliXにて表示>
DICOM Viewer の準備
某先生 tweet
など
ご紹介ありがとうございます。

小保方-笹井事件と不正告発制度

STAP 騒動だとか小保方-笹井事件だとか云われているものは、マスコミにニュースネタを提供しただけなく、今も研究・開発の現場に影響を与えている。

この事件をきっかけに

研究活動における不正行為への対応等に関するガイドライン

というものが文部科学省で定められたからだ。

これを受けて国の研究関連予算の分配機関を中心に組織毎に研究上の不正に関する規定・ガイドラインを設けるようになった。
ネット上で窓口を設けているところも多い。

・問題となった組織を抱えていた JST (科学技術振興機構)。

・文部科学省直接にはここ

・経済産業省管轄でも同様の窓口が新設された。

不正告発というわけではないが、各大学でも公益通報の窓口を設けている。例えば、京都大学はここ

私自身は、国から大型の予算を直接受領したことは一度もないし、そもそも自分が純粋な研究者だとも思っていないが、分配を受けた組織で働いていたことは過去にあるソフト開発などもやっている関係上、当局から関連領域の関与者とみなされたりもする。

そのせいか協力を求められている案件がいくつかある。主に資料提出要請だが、昨年(2018)は当局に直接出向いた。

こういった制度ができる前は、今でいう「不正」がかなりの頻度であったことは認識しているし、それで泣いた人も身近によくいた。

この制度の特に運用面に関しては言いたこともあるのだが、まずは、被害にあった人の無念のようなものが晴らされれば良いのになあと思う。

 

(追記)ところで、「研究不正」というとこのSTAP細胞事件を念頭においてコメントしている人が多いのだが、臨床研究ガラミで実際の臨床現場に影響を与えているのは、ディオバン事件とそれがきっかけで成立した『臨床研究法』の方だろう。

図式的に言えば、

基礎研究よりの不正ーSTAP細胞事件→ガイドラインの制定
臨床研究よりの不正ーディオバン事件→臨床研究法の制定

なのだ。
両者は、運用形態や対象とする範囲が違うし、そもそもガイドラインと法律では、強制力が違う。

 

猪股弘明精神保健指定医

 

 

下から見た ERATO

うちの air 氏(笑)、湘南鎌倉の斎藤先生を表敬訪問。

「この才能豊かな天才的 Software (+ Hardware) Engineer」(『いるかの棲む闇』より)ってベタ褒めじゃん。いーなー。

色々不都合ある内容なので先生消されたかな? こんな感じの記事でした。興味ある方は覗いてみてください。

いーなー、air さん(棒読み)。


ただ、齋藤先生のこの記事、私系列と air 系列の混交が見られる(わざとやってそうだがw)。

ネット上などでは、基本、

医師 = H. Inomata (猪股弘明)

エンジニア = air-h-128k-il

設定で通している。私は、医学生・医師になってからもエンジニア仕事はたびたび引き受けており、ちょっとした案件で「あ、お医者さんなんですかー、なんでまた?」みたいな面倒臭い展開を避けるためにそうしている。最初に「エンジニアです」と言い切っておけば、まず疑われることはない。
(ただし、臨床業務やプライベート諸々でネットやっている時間がないような場合は、air-h-128k-il の方のアカウントは技術系に明るい知人などに運用してもらってます。過去にも何度かありました)

あと、時系列が若干おかしく、私が「開いたイルカ」プロジェクトの一部から迫害をうけていたのは、クリニックを閉じる直前(2015年末)~今年の 7 月くらいまでだ。

また、死亡説を流したのも、イルカ絡みも確かにあるが、一部東京医大関係者からの追手をまくため。

有難いことに両者ともほぼ自爆してくれたので、私はようやく大手を振って表通りを歩けるようになったのだ。悪いことって長く続かないものだね。HorliX の問答無用の強さもあるが。

イルカはよく指摘されているようにコメント周りのバグがある。例えば、通院精神療法絡みのコメントをスタンプに移動させることができない。私のできる。開業時に精神科を標榜する場合、通院精神療法を取らなければいけないので当然だ。

ところが、イルカ開発元の方針でイルカは「純正品」を限定して他のプロダクツを「類似商品」としているため、私のリポジトリからバックポートを受けられない。その結果、現在(2018年10月)でもバグが残ったままになっている。(→これは、その後の状況の変化でかなり変わってきている。本家 LSC さんも「商用版とオープンソース版は別物とお考えください。商用版はフォークして独自機能を追加していただいてけっこうです。プルリクエストも考慮します」と方針を変えてきている。悪い膿が出て、膠着状態を脱してきた感じだ)

向うも困っているのか人を介して元プロダクトマネージャーの方から、オープンソース版のとりまとめ役になってくれないかという依頼もあったが、それまでにかなり不愉快な思いをさせられたことと HorliX の開発が待っていたため、流石にこれはお断りさせてもらった。(その後もお世辞だとは思いますが LSC さんの方から「中心になってもらって・・・」という感じで直接何回かお声をかけてもらったこともあります。有り難い限り。さらに、その後、メドレーさんに運営権がうつりましたが、こちらからもたまにですが連絡などもらってます。なお、担当者はかなりユニークな方です)

プライドかなぐり捨てて私に頼むくらいだから、本家の開発能力はかなり落ちているのではないかと思う。→結局、メドレーに事業譲渡。今後は、既存ユーザーに対するメンテのみおこなうようです。
ただ、私のバージョンは、商用版とは独立して自力で導入している施設などからたまに技術内容に関して相談を受けるので、細々とながらメンテを続けています。
現在でも動くことは動きますし。

また、東京医大の自爆っぷりは、ニュースなどでさんざん報じられたと思うのでここで繰り返すまでもないでしょう。

 

なんでエンジニア資質がここまで残っているのかリアルでも驚かれることがあるが、それはたぶん、学部の時から ERATO という研究プロジェクトで働いていたため(と医学生時代のプログラマ業務。が、これは別で書いてます)。

私は、学部 4 年次にも大学研究室とは別にさる ERATO のプロジェクトでれっきとした「技術員」として働いていた。当時の ERATO は管理が緩かったのだ。このプロジェクトでやっていたのは、STM (Scanning Tunneling Microscopy: 走査型トンネル顕微鏡)の製作。STM の探針を使ってナノメーターレベルでの原子操作を狙っていたため、市販の装置では役不足で、自力で STM を作る必要があったのだ。

その当時の写真を一枚。

白髪の体格の良い外人さんが 1986 年、STM の開発でノーベル物理学賞を受賞した H. Rohrer 博士。日本に常駐してわれわれを直接指導…ということはなくて、確か顧問だったか何かで、まあ、これはほぼ接待といっていい歓迎会の一コマ。ノーベル賞受賞者を呼べるくらいの組織ではあったというアピールです、はい。

肖像権の問題にも配慮して、顔写真などを公開している方をのぞきモザイクはかけたが、みなさんこの後、いわゆるナノテクノロジーという領域でそれなりのポジションを得ている方々ばかり。

学部4年の段階でこの中に放り込まれれば、そらさすがに技術力つくでしょという環境でした。何度も溺れかけたが、最後は対岸に泳ぎついたと思う。エンジニアには飛躍的にその能力を伸ばす時期があると思うが、私の場合は、間違いなくこの時期。ここで2年ほどみっちり鍛えられた後は、どこいっても通用した。

大学の研究室にも所属はしていたが、こちらでの仕事の方が面白くなり、結局、ERATO での成果で卒論を書いて大学を卒業することになったのだった。

 


ERATO の件は、話がこれで終わっていれば、めでたしめでたし、というか美談の部類に入ると思うのだが、時代背景もあって残念ながらそうはなっていない。

プロジェクト内で評価されていなかったわけではない。例えば、J-GLOBAL で「STM 猪股弘明」あたりで検索をかけると、こんな検索結果が得られる。

口頭発表とはいえ、学会要旨4本に名前を載せているのは身分(学部4年)を考えるとできすぎともいえる。

『STM による超高真空中表面加工における探針形状の変化』は、その後、学会英文誌にも発表され( Fabrication of Atomic-Scale Structure on Si(111)-7×7 Using a Sccanning Tunneling Microscope(STM), JJAP(1992) pp4501-4503 )、その謝辞に私の名前も

 

としっかりとクレジットされている。実験の意味を把握した上でひたすら SEM の写真を撮り続けたのだから今の基準で行けば Data Acquisition ということで正規クレジットされてもいいくらいだと思うが、まあ、あの業界の当時の雰囲気を考えると致し方ない面もある。

なんだけど問題は

“Detection of Single Atom Extraction and Deposition Events during Nanolithographic Processing of Silicon with a Scanning Tunneling Microscope.” Proc. Jpn. Acad. Ser. B, Vol.69, No.5, p.101-106 (1993.05)
F. Grey, D. H. Huang, A. Kobayashi, E. J. Snyder, H. Uchida and M. Aono

あたりなんだな。
これは不審な点があって、まじで調査中。

しかし、なんでこんなことしたかなあ。

私なんぞ、ECT で口頭発表したときは(「猪股弘明 ECT」あたりで検索かけるとぱらぱらとでてきます)

という具合にそのときの病棟在籍医師(都立松沢病院のD40棟)すべてクレジットしたけどね。

 


あ、あと、データベースによっては私は別人登録されているみたいですが、上記の STM 関係の著者と ECT 関係の著者HorliX の開発者は同一人物ですので、そこらへんよろしくお願いします。

物理学と精神医学と医療情報と分野が飛びまくってるので、なかなか同一人物の著作・作品と認識されずたまに困るときがあります。別人扱いで都合良いときもあるんですが。

 

猪股弘明(精神科医)

 

電子カルテ記載内容をテキスト処理したい

電子カルテのテキストマイニングに関連して。

MENTAT というのがあるらしい。
https://www.mentat.jp/jp/service/

精神科カルテからテキストデータ抜いてきて IBM ワトソンで解析、治療の難しさなどを評価・予測しカンファレンスなどで使われるらしい。

だからどうしたと言われそうだが、未来感みたいなのはある。

問題は予測精度だと思うので、関係者に問合せ中。

 

なお、私自身も OpenDolphin-2.7m というオープンソースの電子カルテの開発者なのだが(経緯は『OpenDolphin について』で)、医療関係者からそこそこ評価されているのはカルテ記載内容をプレーンテキスト(UTF-8)に書き出すファイルバックアップシステムを実装した点だ。
もともとはクライアント-サーバ間で通信障害が発生したときの臨時記録手段としてこの機能を付け加えたのだが、カルテ記載データの2次利用にも使えるのでは?という声も上がっている。
これに関しては検討中。

 

猪股弘明(精神科医)

 

その後、自然言語処理などにも実際に手を出す。
→『OpenOcean』や『 juman++ で分かち書き』など。

雰囲気つかめますかね?

 

にほんブログ村 病気ブログ 医者・医師へ