ダウンロード

2012年8月13日 (月)

Moutain Lion 対応 monsiaj

テスト用の Mac を Mountain Lion にアップグレードしたところ,monsiaj が立ち上がらなくなってしまった。monsiaj-20120806 版を,Mountain Lion で立ち上がるように改造した。業務用のマシンはもうしばらく Lion のままにすることにする。
※ その後,Mac OS X 10.8.1 のアップデートで立ち上がるようになった(2012/8/26 )

2012年6月18日 (月)

ORCA のチェックマスタ漏れチェック

突合点検が始まってから,処方のチェックが厳しくなっている。当院では,ORCA のチェックマスタを使って病名漏れをチェックしているが,チェックマスタに登録した薬剤以外の薬剤が,レセプトに上がっていないかどうかをチェックする ruby スクリプトを書いた。こまめにチェックマスタを作っていたつもりであったが,走らせてみたら,思いのほか登録漏れがあることが発覚して焦った。

 

ダウンロード checkmaster-checker.rb.zip (1.7K)

修正履歴

  • ホストアドレスを指定できるようにした(2012/6/22)
    orca のアドレスが 192.168.1.50 で,2012年6月のレセプトのチェックをする場合
    $ ruby checkmaster-checker 201206 192.168.1.50 
    

2011年4月 2日 (土)

OpenDolphin-1.3.0.6 を簡単に試してみる

JBoss AS 5.1.0.GA + openDolphin-1.3.0.6.ear を localhost で簡単に立ち上げる wrapper を作った。JBoss AS を JBoss のホームページからダウンロードして wrapper と同じフォルダに展開して使う。JBoss Wrapper を立ち上げて起動ボタンを押すと,必要なファイルを JBoss にコピーしてから bin/run.sh を呼び出すしくみ。詳しくは説明書を参照。

ダウンロード jboss-wrapper.zip (9606.8K)

OpenDolphin-1.3.0.6(Java 1.6,JBoss AS 5.1.0.GA 専用)

Mercurial 導入

今回から Mercurial を導入して,Bitbucket さんのホスティングを使わせていただくことにした。ファイルは Bitbucket さんからダウンロードできるようにした。

排他処理っぽくしてみた

OpenDolphin では,同じカルテを複数の端末で開いて同時に編集することができる。それぞれの端末でカルテを変更して保存した場合,保存した順番に記録されて,最後に保存したカルテが最新版となる。前の編集内容が消えるわけではなく,カルテ変更履歴として全部残るが,メモは上書きされて消えてしまう。CLAIM を送った場合は逆に,最初の CLAIM だけが有効になり,後から送ったものは ORCA で無視される。

 メモが消えるというのがちょっといやなので,排他処理っぽく処理してみた。ただし pvt がないと処理できないので,受診していないカルテを PatientSearch から開いた場合は排他処理されない。

Exclusivecontrol

 

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 など,当院では使ってなかったコードを大幅に削除・整理した。

 

その他細かい点

  • リアルタイムスタンプ幅調整
    スタンプ幅が,ウインドウの大きさに応じてリアルタイムで動くようにした。

    Stamp

  • ORCA 形式生年月日検索
    生年月日検索で,ORCA のように 4230331 という ような 7 桁数字で入力できるようにした。

2011年3月 7日 (月)

シェーマエディタの機能アップ

SchemaEditor に機能を加えた。複数の点を打つ,網を描く,キャンバスの拡大縮小,回転,一部の切り抜き,アンドゥー・リドゥー機能,ツールウインドウの分離など,大幅にコードをいじった。

Schemaeditor

Schemaeditorei

Schemaeditorgianotti

ツールウインドウはキャンバスウインドウに
くっついているが,分離することもできる。

作成例
Erythema infectiosum

作成例
Gianotti-Crosti syndrome


修正履歴

  • 拡大で絵が欠けることがあるのを修正。(2011/3/20)
  • DrawTest.jar ファイルをダブルクリックするとサンプルが起動するようにした。(2011/3/20)
  • フォントサイズが保存されなかったのを修正。(2011/3/26)
  • 拡大・縮小で Stroke が拡大・縮小されないのを修正。(2011/4/15)
  • 小さく切り取った後に拡大すると SchemaCanvas が小さいままになるのを修正。(2011/4/15)

2011年2月 3日 (木)

ORCL0030CheckServer

OpenDolphin で CLAIM 送信した後,送った CLAIM の処理が終了したことを知らせるサーバを ruby で作った。CLAIM 処理が完了すると,ORCA サーバのシステムログに

Feb 24 12:22:22 orca panda/dbstub[3720]: module ORCL0030: /var/tmp/claim_rcv_0

というログが出るのを検出して知らせるといういかにも素人くさい方法。CLAIM 処理終了が確認できるので,CLAIM 処理が終わる前にORCAの「中途終了」ボタンを押してしまって,「中途終了データはありません」と言われなくてすむようになる。

ORCA サーバでの立ち上げ方法。11792 は適当な空きポート。

$ sudo tail -f -n0 /var/log/syslog | ruby ORCL0030CheckServer.rb 11792

ORCL0030CheckServer.rb

#!/usr/bin/ruby
require "socket"
require "timeout"

default_port = "11792"
if ARGV.length == 0
  port = default_port
else
  port = ARGV.shift
end

ACK = 0x06.chr

# receive ACK from client
class GetAck
  def initialize(s)
    @sock = s
  end
  def get
    begin
      timeout(1) {
        while ACK != @sock.read(1); end
      }
      return true
    rescue Timeout::Error
    end
  end
end

# send ORCL0030 to client
class SendOrcl
  def initialize(s)
    @sock = s
  end
  def send
    ack = GetAck.new(@sock)
    max = 5
    str = "ORCL0030"
    for i in 1..max do
      begin
        @sock.puts(str)
        break if ack.get
      rescue Errno::EPIPE
        $stdout.puts("retry: " + i.to_s)
        sleep 1
      end
    end
    return i < max
  end
end

# クライアントと接続したスレッドを保持する配列
thr = []   

# stdin を監視するスレッド
Thread.start() {
  while line = $stdin.gets
    line.chop!
    if /ORCL0030.*claim_rcv/ =~ line
      for t in thr
        t.wakeup
      end
    end
  end
}

gsock = TCPServer.open(port)

# クライアントと接続したスレッドを作り thr に登録
while true
  $stdout.puts("Wait for another connection")
  Thread.start(gsock.accept) do |sock|
    addr = sock.peeraddr
    $stdout.puts("Connected " + addr.join(":"))
    thr.push(Thread.current)

    # クライアントと接続したら指示があるまで待つ
    while true
      Thread.stop
      break if !SendOrcl.new(sock).send
    end
    sock.close
    $stdout.puts("Close socket")
    thr.delete(Thread.current)
  end
end

ORCL0030Listener

java で書いたクライアント。(NetBeans 6.9.1 のプロジェクト)
ダウンロード ORCL0030.zip (1475.0K)

Orcl00302

Orcl0030

起動画面 ORCL0030 を受けると,うさぎアイコンが跳ねる

2010年8月 1日 (日)

OpenDolphin-1.3.0.5 公開(JBoss AS 5.1.0.GA 専用)

現時点のソースを公開することにした。今回から JBoss AS 5.1.0.GA 専用になっている。

使っている IDE は Macintosh,Windows とも NetBeans 6.8。Windows バージョンは,普段使っていないのでカルテ編集の詳しい動作確認はしていない。


構築済みのクライアント (Java 1.6 専用)

JBoss Server デプロイ用 ear ファイルと xml ファイル (JBoss AS 5.1.0.GA + Java 1.6 専用)。


    ※ このソースには 10/08/03 以降の変更は反映されていません。

2010年3月 7日 (日)

OpenDolphin-1.3.0.4 公開(Java 1.6 専用)

見た目の変更でソースをかなりいじったため,現時点のソースを公開することにした。

使っている IDE は Macintosh,Windows とも NetBeans 6.8。Windows バージョンは,普段使っていないのでカルテ編集の詳しい動作確認はしていない。


構築済みのクライアント (Java 1.6 専用)

JBoss Server デプロイ用 ear ファイルと xml ファイル (JBoss 4.2.3 + Java 1.6 専用)。


    ※ このソースには 10/03/08 以降の変更は反映されていません。

2010年2月15日 (月)

罫線の出る monsiaj

monsiaj-20100304 をちょっと改造。

2009年10月29日 (木)

OpenDolphin-1.3.0.3 公開(Java 1.6 専用)

Java 1.6 専用化に合わせて,ソースをかなりいじったため,新しいソースを公開することにした。

ソースは Macintosh バージョンと Windows バージョンに分けた。使っている IDE はいずれも NetBeans 6.7.1。Windows バージョンは,事務で使っているだけなので,Macintosh 版に加えたカスタマイズの一部しか反映していおらず,カルテ編集の詳しい動作確認もしていない。


構築済みのクライアント (Java 1.6 専用)

JBoss Server デプロイ用 ear ファイルと xml ファイル (JBoss 4.2.3 + Java 1.6 専用)。


    ※ このソースには 09/10/31 以降の変更は反映されていません。