みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

josler-sync (2020年版)

josler-syncは,日本内科学会が運営している研修システムであるJ-OSLERの入力を,退院サマリーのデータをもとに自動で行うソフトウェアです.

患者IDや性別,年齢などの事務的なデータをJ-OSLERに手入力するのが非常に面倒なので作成しました.内科専門研修が可能な基幹病院の多くでは「退院サマリー」の作成が義務付けられています.退院サマリーに登録した症例をエクセルデータに出力し,これをJ-OSLERに同期することで,大幅な時間短縮が可能です.

2020/3/25にJ-OSLERがバージョンアップし,Ver 4.0.000となりました*1.これに合わせて,翌日にバージョンアップしました.

いくつかの機能を追加し,UIを追加したので操作がしやすくなりました.また,MacOSにも対応しました.

動作環境

  • infocom Medi-Bank (動作確認済み)
  • Windows 7, 8, 10 (64bit)
  • MacOS 10.15

ダウンロード

以前のバージョンはこちらからダウンロードできます.

インストール

zipファイルをダウンロードし,任意のディレクトリに解凍します.Windowsならばjosler-sync.exeを実行します.MacOSならばjosler-syncを実行します.

Windows SmartScreenが実行を阻止する場合は,「詳細情報」→「実行」を選択してください*2

MacOSのセキュリティ機能により実行できない場合は,MacOSの環境設定 > セキュリティとプライバシー > josler-sync.appを実行,から起動します*3

使い方

最初にJ-OSLERにログインします.ローカルの症例データと同期したり,新規症例を作成したり,不要な症例を削除したり,技術機能評価を自動で作成したりできます.

f:id:atsuhiro-me:20180708023521p:plain

f:id:atsuhiro-me:20200326204213p:plain:w360

ログイン

J-OSLERのユーザー情報を入力し,ログインします.なお,ログイン情報はJ-OSLERサーバーにhttps通信で送信することのみに使用されます.

default症例の作成

J-OSLERには施設名など何度も同じ情報を入力しなければならない箇所が複数あり,面倒です.新規症例登録にて,患者IDを「default」と指定した症例は,同期にて他の症例の初期値として扱われます.「経験時期」を「専門研修(プログラム研修)」,「患者の施設名」を現在勤務している病院,「担当状況」を「入院症例」に選択して保存することを推奨します.

f:id:atsuhiro-me:20180708025448p:plain:w360

この作業をしないと,いくつかの操作でエラーとなりますので注意してください.

新規症例の作成

開始IDを終了IDを指定し,「作成」ボタンを押します.例えば,1001から1004までと指定したら,患者IDが1001, 1002, 1003, 1004の4症例が作成されます.default症例を継承した症例なので,施設名の指定などの操作が省けて便利です.default症例が存在しなければエラーとなります.

症例データを用意する

まずは退院サマリーから症例を出力します.infocomのMedi-Bankならば,登録情報の検索画面にてエクセルファイルに出力する機能があります.例えば2018/4/1から専門医研修を開始した場合は,退院日を2018/4/1以降に指定して自分の症例を検索することで,登録可能な症例を一括で取得できます.その他の退院サマリーソフトウェアも後述のkeys.jsonを編集することで対応可能と思われます.

f:id:atsuhiro-me:20180728102810p:plain:w360 (検索条件の例)

f:id:atsuhiro-me:20180728102907p:plain:w360 (「一覧出力」をクリック)

f:id:atsuhiro-me:20180728102958p:plain:w360 (「ファイル出力」をクリック)

f:id:atsuhiro-me:20180708015721p:plain:w360 (plist.xlsxの一例)

症例データを読み込む

「ローカル」の「ファイルを開く」ボタンを押すと,ファイルの選択画面が開きます.エクセルファイルとテキストファイル(CSV形式)に対応しています.開くとローカルデータベースに読み込まれます.患者番号(ID)が重複する場合は最新のものに上書きされるため,何度もインポート可能です.

退院サマリーソフトによっては必要な項目が出力できない場合があります.その場合はエクセルで列を増やすことで対応可能です.例えば年齢が出力できない場合は,列を1つ増やして1行目に「年齢」,その下に数字を列挙していきます.

退院サマリーの病名と,レポートの病名は異なることがあります.その場合はエクセル上でプロブレムリストを編集します.「プロブレム1」「プロブレム2」「プロブレム3」という列を作成し病名を列挙していきます.この作業を行わずにJ-OSLERで編集してもよいでしょう.

ローカルデータベース

ホームディレクトリに.josler-sync/db.jsonというファイルが作成されます.中身はjson形式のテキストファイルです.このファイルを削除するか,「ローカル」の「削除」ボタンを押すとデータベースは空になります.

同期

ローカルデータベースに読み込んだ症例はJ-OSLERと同期することでサーバーにデータが反映されます.josler-syncで「同期」ボタンを押します.

J-OSLERに以前に入力した情報は,更新日時を比較し最新のものが反映されます.例えば,IDが00001の患者情報をエクセルファイルからインポートし,J-OSLER上に同一のIDが存在しない場合は新規にJ-OSLERに症例登録します.IDが00002の患者をJ-OSLERに登録済みであり,ローカルデータベースに情報がない場合は,J-OSLERの情報をローカルデータベースにダウンロードします.IDが00003の患者情報がJ-OSLERに登録済みであり,変更があるためエクセルファイルから再度読み込んだ場合は,更新日時を比較しJ-OSLERの情報を上書きします.

したがって,何度も同期を行いながら症例登録を進めていくことができます.

症例の削除

J-OSLERに登録した症例を一括で削除したい場合に使用します.状態が「作成中」の症例のみ削除され,「依頼済み」「承認済み」など工程が進んでいるデータは削除されません.

技能技術評価の一括入力

技能技術評価には評価すべき項目がたくさんあります.

f:id:atsuhiro-me:20180728114100p:plain:w300 (気が遠くなるようなたくさんの項目)

大量の項目の評価をクリックして入力するのが面倒なので,一括で評価入力します.1から3までの数字を指定します.1は「援助を要する」,2は「適切である」,3は「十分に適切である」を意味します.

スライダーは0.1刻みで動かせ,期待値を指定することができます.例えば2.4を指定すると,10個の評価のうち,6個が2 (適切である),4個が3 (十分に適切である)になります.これらの期待値は2.4ですね.これにより,「だいたい適切であるだけど,少しは十分に適切であるの項目もあるな」という意図を自然に入力できるようになりました.

技能技術評価は1年に2回作成しますが,同時に2個以上作成できないため,この機能を使用するときは,現在の評価が作成されてない状態である必要があります.既に作成されている場合はエラーとなります.

ファイルの解説

keys.json

keys.jsonは,退院サマリーのデータとローカルデータベースとJ-OSLERの項目の対応付けを示したjson形式のファイルで,メモ帳などのテキストエディタで編集が可能です.

下記を例に詳細を説明します.

[
  {
    "id": "shoreiHyokaIraiForm:ukemochiKikanTo",
    "name": "受持終了日",
    "xkeys": ["退院日", "退科日"],
    "type": "date"
  },...
]

"id"はJ-OSLERの項目,"name"はローカルデータベースの項目,"xkeys"はエクセルファイルのヘッダー(1行目)です.エクセルファイルの「退院日」又は「退科日」という項目の日付が,インポートすることによって「受持終了日」という項目にローカルデータベースに読み込まれ,同期をすることでJ-OSLERの「shoreiHyokaIraiForm:ukemochiKikanTo」という項目に保存されます.xkeysを編集することでMedi-Bank以外の退院サマリーソフトにも対応可能です.

2020年のJ-OSLERのアップデートに伴い,keys.jsonファイルの項目が以前のものから変更されています.

このファイルが存在しない場合は,デフォルトの値が読み込まれます.

db.json

ローカルデータベースです.~/.josler-sync/db.jsonに保存されます.

sample.csv

サンプルの症例データです.これと同様のテキストファイルやエクセルファイルを用意するという参考にしてください.

FAQ

起動に時間がかかります.なんとかなりませんか?

Pythonで作成し,tkinterでUIを作っています.これをPyInstallerで配布可能な実行ファイルにしているので,どうしても起動に時間がかかります.ご了承ください.

どうやってJ-OSLERに合わせて開発していますか?

みー自身が新内科専門医制度の専攻医のため,自分でJ-OSLERを利用しています.

今後もjosler-syncの開発は継続しますか?

みーがJ-OSLERを卒業したら,開発は終了するかもしれません.需要があれば継続しますが,みーがJ-OSLERを使えない状態では開発継続は不可能です.将来このような状況となれば,J-OSLERのアカウントを持っているどなたかの協力が必要になると思われます.

応援や協力の申し出はコメント欄にお願いします.

ライセンス

  • josler-syncはフリーソフトウェアです.下記に従う限りにおいて用途の制限はありません.
  • josler-syncのソースファイルは公開していません.実行ファイルのリバースエンジニアリングを禁止します.
  • josler-syncの実行ファイルを再配布することは禁止します.
  • josler-syncを実行することによって生じたいかなる損害に対して保証は行いません.

更新履歴

  • 2020-03-26
    • 新規公開

(J-OSLER, Medi-Bank, エクセルは,それぞれ日本内科学会,インフォコム株式会社,マイクロソフト株式会社の商品です.)

*1:リリースノート | 専攻医登録評価システム(J-OSLER) | 認定医制度 | 日本内科学会

*2:SmartScreenを回避するには費用と労力がかかるのでご理解ください.

*3:証明書を使用するのが面倒なので,ご理解ください.