MrControllerのnewMrアクションにバグがありました(臨床メモをクリアしてしまう)ので修正しました。
ログインのログの出し方を修正しました。 他、若干の手直しをしています。
ログイン機能を何とか実装できました。
- ユーザIDはORCAの職員情報を引っ張っています。
- ORCA側で無効なユーザIDは削除します。
- ORCA側で新規作成したユーザの初期パスワードはIDと同じにしています。
- 新規ユーザがログインすると直ちにパスワード変更を要求します。
- ユーザIDの追加・削除とログインのログをとるようにしました。
ログイン後、カルテを保存すると、作成者もしくは修正者の名前がカルテの末尾に入る機能を付けました。
ついでにいろいろ手を入れました。
- mrデータベースへのアクセスは ConnectionManager に変更した。
- ソースの可読性をよくするため、SQLクエリ文字列作成にCakePHP4のクエリビルダを使い、その他の文字列作成にHTMLヘルパーやTextヘルパーを使った。
- 環境設定にCakePHP4のconfig機構を採用した。
- jQueryを使わずに.jsファイルを作成した。
- アクションを整理した。
以上の変更に伴い、v0.1で使っていたファイルのいくつかは不要になっています。
小さな診療所用の電子カルテ(もどき)です。
奥村晴彦先生のtwitter
オープンソースの電子カルテシステムで、WebベースでクライアントOSを選ばず、 サーバは普通のLinuxで動くPHPとか、ないんだろうか。
で唐突に召喚され、それ、ウチにありますけど〜、とノコノコ出てきた次第です。
奥村先生曰く、
もともとは、つるぎ町半田病院の電カルがランサムウェアにやられて 使えなくなったという話から始まりました。病院にお金がなく、業者もクソで、 もともと簡単に侵入できるような環境だったようです。 ちゃんとした電子カルテシステムがオープンソースであれば、 われわれもボランティアで苦境に立っている病院に導入するのをお手伝いできて、 クソ業者にひどい状態にされることもないだろうと思った次第です。
奥村先生の問題意識に共感される方、ぜひ御協力ください。
ORCAサーバ使用が前提です。
ウチでは ubuntu20.04 postgresql12 cakePHP4 で動いています。
- ORCAとの連携はORCA→omcakeの一方向。
- エラー処理してません!(CakePHPのデバッガが頼り^^;;)
- セキュリティはIPアドレス制限のみ。ログイン機能なし。
チケットプリンタで「受付順番チケット」を発行する機能をつけてます。(bashを呼んでるだけです。)
ショボいけど、食べてみてください。味は保証しません!
- 半角から全角へ変換するpostgres用関数(https://postgresweb.com/post-2295) を使わせてもらっています。
- 電子カルテでは変更履歴をすべて残しておく必要があります。omcakeではOpenDolphinと同じく、差分を記録しないで保存時刻の異なるデータが貯まるようにしています。そして、保存時刻が最新のレコードを普段は表示させるために「同一グループの中で最大のレコードを取得する SQL を書く」(https://www.timedia.co.jp/tech/selecting-max-record-in-group-by/) が必須でした。これを知ったのでomcakeはできたようなものです。