SecondaryUse開発日記

データベース参照ツールを開発しています。そのツールの開発、利用方法秘話などなどの紹介

DB参照ツール、SecondaryUse(二次利用)

SecondaryUseとは任意のデータをデータベースからSQLで取得し表示します
SQLをサーバに保存すれば、利用者全員で共有が出来ます。またローカルファイルとして登録すれば端末ごとに任意のSQLを実行することも可能です

表示したデータはエクセルへのエクスポートも簡単にできますし、ワードへの差し込み印刷も可能です

エクセルへのエクスポートでは自動でグラフ表示も可能です

その為、DWHと同様の使い方が出来、DWH専用DBを必要としません

CSVXMLへの出力も可能です

 

SecondaryUseはデータの二次利用を簡単に実現します

 f:id:syskobo:20190422155018j:plain

本来DBBrowserはエディタ上に入力したSQLを実行しデータを表示していましたが、誰でも簡単にデータ抽出出来るようにSQLを外部に保存し実行できるようにしたのがSecondaryUseです

DBBrowser同様、サーバとの通信はSOAPを利用していますので、ORACLEなどはClientのインストールが不要です。

さらに、SSL/TLSプロトコル(https)を使用してインターネット経由でもデータベースとの接続が可能です。

また、ODBCでの接続も出来るのでローカルネットワーク環境ではサーバなしでも利用できます

syskobo.hatenablog.com

http://syskobo.html.xdomain.jp/pamphlet_SecondaryUse.pdf

http://syskobo.html.xdomain.jp/SecondaryUse_simple_manual.pdf

 

SimpleUse は SecondaryUseと同じですがランチャー起動のアプリを外したバージョンです

MedicalUseSimpleUse に 医療機能を追加したバージョンになります

現在は SecondaryUse としては公開していませんので、MedicalUseSimpleUse を使用してください

 

看護必要度Ⅱ集計2022

診療報酬改正2022に対応した看護必要度集計2022が漸くできました

EFHファイルからの集計はカルテベンダのシステムで取得できますのでそちらに任せます

 

自前で作成したのは医事の診療データ(EFHファイルを使わずに)から看護必要度割合を求める事です

これにより入院時のオーダを医事で取り込めば確認できます

正確にはOracleのマテビューを1日単位で自動作成していますので1日後になります

マテビューを数時間単位で自動作成すればほぼリアルタイムでの集計も可能で、看護必要度の対策が直ぐにできるようになります

 

看護必要度集計2020までは、厚労省のHPからエクセルをダウンロードして必要度マスタデータを独自に作成し集計していましたが、2022からはカルテベンダのマスタを利用することにしました

そのためベンダの必要度集計ツールが導入されるまで構築するのを待っていました

これにより、メンテナンスフリー(マスタ更新はベンダが行う)でリアルタイム集計が可能です

 

 

左画像は月集計帳票で、右画像は月集計の詳細情報です

6月分の途中(医事側に取込んだデータ)までの集計が出来ています

 

詳細情報を確認することで、評価漏れなどの発見に繋がります

※EFHファイルから集計する場合1カ月半後になってしまいますので遡ることが困難と思います

 

医事の診療データからの看護必要度集計は全てSQLで実行しています

SQLの実行結果をSecondaryUseで表示しているだけです

 

集計方法の概要

・内部的に厚労省コード+オーダコード(内部コード)のマスタを作成する

・上記のマスタに関連する診療データを抽出する

・抽出した診療データを看護必要度評価区分ごとに振り分け分解する

 1レコードに1カ月のデータを保有する診療データを日付毎のレコードに展開する

・評価区分毎のデータを連結して、1日毎のレコードを作成する

 

もし、興味があればお気軽にお問い合わせください

 

※特定集中治療室用については、データが取れないので今回は無しです

※ハイケアはDPCデータは使わないのでカルテベンダの集計ツールをそのまま使います

 

\看護必要度Ⅱ集計\一般病棟
│  821.【一般】看護必要度Ⅱ一覧(期間指定).sql
│  825.【一般】看護必要度Ⅱ(一般)月報.sql
│  829.【一般】看護必要度Ⅱ(診療科)月報.sql
│  
├─DATABASE LINK
│      ORDER97.txt
│      PC_IBARS.txt
│      
├─FUNCTION
│      GET_STREFH.txt
│      
├─MATERIALIZED VIEW
│      MV_EFA011.txt
│      MV_EFA012.txt
│      MV_EFA020.txt
│      MV_EFA030.txt
│      MV_EFA050.txt
│      MV_EFA060.txt
│      MV_EFA071.txt
│      MV_EFA0710.txt
│      MV_EFA0711.txt
│      MV_EFA072.txt
│      MV_EFA073.txt
│      MV_EFA074.txt
│      MV_EFA075.txt
│      MV_EFA076.txt
│      MV_EFA077.txt
│      MV_EFA078.txt
│      MV_EFA079.txt
│      MV_EFA080.txt
│      MV_EFC160.txt
│      MV_EFC170.txt
│      MV_EFC180.txt
│      MV_EFC190.txt
│      MV_EFC200.txt
│      MV_EFC210.txt
│      MV_EFC221.txt
│      MV_EFC222.txt
│      MV_EFC223.txt
│      MV_EFC230.txt
│      MV_EFC240.txt
│      MV_MASTER.txt
│      MV_MASTER_A3.txt
│      MV_NSSUM.txt
│      MV_SHINRYO_UNION.txt
│      
├─TABLE
│      P_TARGETDATE.txt
│      
└─VIEW
        V_ACLIST.txt
        V_EFA030.txt
        V_EFA080.txt
        V_MASTER.txt
        V_SHINRYO_A3.txt
        V_SHINRYO_DATA.txt
        

 

 

Excelのインポート処理

当初、ExcelデータをインポートするのにOLEDBを使用して読み込んでいました

しかし、OLEDBを利用するのに「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント 」のインストールが必要だったり、32Bit、64Bit問題だったりで脱OLEDBを行いました

syskobo.hatenablog.com

次に使用したのは「ClosedXML」でした

ClosedXMLに変更して半年、順調に使っていましたが、読み込めないデータが発生しました

 //エクセルをインスタンス
 objWorkBook = new ClosedXML.Excel.XLWorkbook(filePath);

でフリーズしてしまいます

カラムが7個の3000行のデータですが読み込めません

そんなに大きくもないのですが...

デバッグも出来ないので「COM 参照」で行うように変更しました

 

参考にさせていただいたのは以下のサイトです

knooto.info

今後、安定して使用できるか評価していきます

 

当然機能は残しており設定で何を使ってインポートするかを指定できます

<!-- InportExcelType  OleDB or ClosedXML or blank -->
<add key="InportExcelType" value="" />

 

 

自己署名証明書のインストールツールの同梱

自己署名証明書のインストールを下記のツールにて行います

 

ルート証明書がインストールされていないとき

 

◆コード証明書がインストールされていないとき(ルート証明書はインストール済み)

 

◆コード証明書、ルート証明書がインストール済み

セキュリティの警告画面は表示されないですし、以下の画面も回避できます

 

Vecterで公開しているアプリに順次同梱していきます

詳しくは同梱の「_最初に読んでください.txt」を読んでください

www.vector.co.jp

 

Webからインストールを行うときEdgeの場合、「セキュリティ保護なし」になってしまいます

IEモードでリロードすれば大丈夫なんですが

Edgeの「セキュリティ保護なし」が分かりません

Setup.exeをなんとかDLして実行すればインストール可能なようです

MedicalUseのコマンドラインパラメータについて

MedicalUseはDWHもどきの機能だけでは足りなく、色々な課題、要望に応じて拡張しています

今回は、他アプリとの連携についてです

 

基幹システムで機能が不足している個所をMedicalUseで補っていますが、別々に起動するのは面倒なので、コマンドラインパラメータで情報を渡し、必要な場所で必要な機能を使えるようにしています

 

例えば、

患者一覧のシュートカットメニューから、「各種印刷」を起動します

患者一覧プログラムのシュートカットメニュークリック時、

MedicalUse.exe P user 01 22 99999999

実行ファイル 機能コマンド ログインID 施設コード、診療科コード、患者番号を空白で区切り起動します

このとき、ログインID、患者番号を連携し直ぐに印刷できるようにしています

足りない情報は、ログインID、患者番号等でDB参照し情報を取得します

 

また、

デスクトップにショートカットを作成します

f:id:syskobo:20220310081619p:plain

画像縮小では

MedicalUse.exe N user 01

実行ファイル 機能コマンド ログインID 施設コードを空白で区切り起動します

 

機能コマンドはDBへ定義し、各機能をダイナミックに呼び出すようにしています

f:id:syskobo:20220310080053p:plain

ローカルSQLの拡張セット

以前下記でも紹介したようにSimpleUseでは外部ファイルのSQLを実行できます

syskobo.hatenablog.com

下記の様に PC→ドキュメント→SimpleUse→LocalSQLフォルダ にSQLファイルを置けば利用可能です

f:id:syskobo:20211223125430p:plain f:id:syskobo:20211223130004p:plain

接続先のDB定義は PC→ドキュメント→SimpleUse→INI→LocalSQL.ini に定義します

Vecterからのダウンロード版ではSQLiteでの設定のみですが、ODBC接続用のサンプルを

www.facebook.comSecondaryUseサポーターからダウンロードできるようにしました