Mercurial 導入
今回から Mercurial を導入して,Bitbucket さんのホスティングを使わせていただくことにした。ファイルは Bitbucket さんからダウンロードできるようにした。
排他処理っぽくしてみた
OpenDolphin では,同じカルテを複数の端末で開いて同時に編集することができる。それぞれの端末でカルテを変更して保存した場合,保存した順番に記録されて,最後に保存したカルテが最新版となる。前の編集内容が消えるわけではなく,カルテ変更履歴として全部残るが,メモは上書きされて消えてしまう。CLAIM を送った場合は逆に,最初の CLAIM だけが有効になり,後から送ったものは ORCA で無視される。
メモが消えるというのがちょっといやなので,排他処理っぽく処理してみた。ただし pvt がないと処理できないので,受診していないカルテを PatientSearch から開いた場合は排他処理されない。
WatingListImpl に getStoppingTask 導入
排他処理っぽく実装に関連して,OpenDolphin を終了するときに,確実にカルテを閉じる必要が生じた。カルテが開いたまま終了すると,編集中のカルテとして残ってしまう。そこで,getStoppingTask を作って,OpenDolphin 終了時に呼んで,確実にカルテを閉じるようにした。
AppFramework.jar を使わないようにした
うわさによると,Swing Application Framework (AppFramework.jar) はもうメンテナンスされないかもしれないらしい。TaskTimerMonitor.java が結構 zombie 化しているのを発見して直そうと思ったのだが,この機会にどうせなら AppFramework を使わないようにコードを書き直した。何だかレスポンスが速くなったような気もする。
- helper/Task.java
- helper/ActionManager.java
Windows 版のソースを Mac 版に統一
いままで Mac と Windows でソースを分けていたが,管理が大変になってきたので,基本的にソースは Mac 版に統一した。Mac,Windows それぞれに特異的な部分は open.dolphin.ui パッケージで吸収するようにした。例えば,ダイアログは quaqua の JSheet でコーディングしてあるが,Windows バージョンでは open.dolphin.ui.MyJSheet でそれを JDialog に戻しているという・・・。それでも吸収しきれないところもあったが(Matisse の form,Velocity の template など),ほとんど共通化できた。
また,Windows バージョンに JTable,JTree,JList にストライプを出す処理を追加した。(増田内科様のコードを使わせて頂きました)
当院で使ってないコードを削除
Online update,添書関連のコード,ImageBrowser,AreaNetwork,SendMML など,当院では使ってなかったコードを大幅に削除・整理した。
その他細かい点
- リアルタイムスタンプ幅調整
スタンプ幅が,ウインドウの大きさに応じてリアルタイムで動くようにした。
- ORCA 形式生年月日検索
生年月日検索で,ORCA のように 4230331 という ような 7 桁数字で入力できるようにした。