« 2010年5月 | トップページ | 2010年7月 »

2010年6月

2010年6月24日 (木)

ORCA から送られてきた「診療内容」を反映する

ORCA 受付画面の「診療内容」というのが claim にのって送られてくるのだが,これを受け取って受付リストに反映させるようにした。ついでに,医師名も表示するようにした。

Dr

plugin/PvtClientServer/PVTBuilder.java

public PatientVisitModel getProduct() {
 ・
 ・
//pns^  ORCA から送られてきた「診療内容」を pvt にセット
  model.setMemo(pvtClaim.getClaimAppMemo());
//pns$
  return model;
}
 ・
 ・
private void parseClaim(Element docInfo, Element content) {
 ・
 ・
//pns^  「診療内容」情報受け取り
  Element appoint = claimInfo.getChild("appoint", claim);
  Element memo = appoint.getChild("memo", claim);
  pvtClaim.setClaimAppMemo(memo.getText().trim());
//pns$
}

infomodel/PatientVisitModel.java

private String memo;
public String getMemo() {
  return memo;
}
public void setMemo(String val) {
  memo = val;
}

plugin/WatingList.java

private void initComponents() {
 ・
 ・
  // 来院テーブル用のパラメータを取得する
  String[] columnNames = {" 受付"," 患者 ID"," 来院時間"," 氏  名"," 性別"," 生年月日"," ドクター", " メ モ"," 予約","状態"};
  String[] methodNames = {"getNumber","getPatientId","getPvtDateTrimDate","getPatientName","getPatientGenderDesc",
    "getPatientAgeBirthday","getAssignedDoctorName","getMemo","getAppointment","getStateInteger"};
  Class[] classes = {java.lang.Integer.class,java.lang.String.class,java.lang.String.class,java.lang.String.class,
    java.lang.String.class,java.lang.String.class,java.lang.String.class,java.lang.String.class,
    java.lang.String.class,java.lang.Integer.class};
  int[] columnWidth = {34,80,72,140,50,150,80,50,40,30};
 ・
 ・

ORCA 4.4 から 4.5 へのアップデート

orca を etch版 4.4 から hardy版 4.4 に変えてしばらく運用していたが,特に問題なく動いていたので,hardy版 4.4 から 4.5 にアップグレードした。
  1. スキーマチェック
    # wget http://ftp.orca.med.or.jp/pub/etc/jma-receipt-dbscmchk.tgz
    # tar xvzf jma-receipt-dbscmchk.tgz
    # cd jma-receipt-dbscmchk
    # bash jma-receipt-dbscmchk.sh
    現在のスキーマバージョンは4.4.0 (pg8.3)です。
    スキーマの整合性をチェックします。
    ....................................................................................................................................................................................................................................................................................................................................
    --------------------------------------------------------
    
      データベースの整合性チェックは正常に終了しました。    
    
    --------------------------------------------------------
    # 
    
  2. /etc/apt/souces.list.d/orca.list の 4.4 を 4.5 に変える。
    # deb http://ftp.orca.med.or.jp/pub/ubuntu hardy4.4 jma
    deb http://ftp.orca.med.or.jp/pub/ubuntu hardy4.5 jma
    # deb-src http://ftp.orca.med.or.jp/pub/ubuntu hardy4.4 jma
    deb-src http://ftp.orca.med.or.jp/pub/ubuntu hardy4.5 jma
    
  3. アップグレード
    # aptitude update
    # aptitude full-upgrade
    
  4. リスタート後,orca を立ち上げて,「03 プログラム更新」を行う。
  5. もう1回リスタート後,「92 マスタ更新」をする。
  6. エラーがないかどうか確認
    $ grep ERROR /var/log/jma-receipt/orca-db-install-4.5.0.log
    
  7. ORCA 4.4 でスカイ・エス・エイッチ様のカスタム帳票 chohyo-2.5.0 を使わせて頂いていたので,4.5 対応の chohyo-2.5.1.1 をインストールしなおす。
    # bash chohyo_install.sh
    
    システム管理マスタ「1910 プログラムオプション情報」で帳票の設定チェック

2010年6月20日 (日)

Mac で kCGError が出る

最近,よく分からないエラーが出る。プログラム動作には問題ないようだ。Java をアップデートしてから出るようになったかもしれない。
java[738] : kCGErrorInvalidOperation: Cannot merge groups (yet) for wid 13e, otherwid 13c
java[738] : kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
java[738] : kCGErrorInvalidOperation: Cannot merge groups (yet) for wid 146, otherwid 144
java[738] : kCGErrorInvalidOperation: Cannot merge groups (yet) for wid 14b, otherwid 149

2010年6月15日 (火)

サーバーのバックアップ機が遅くなった

最近,サーバーのバックアップ機(Ubuntu 8.04LTS server x86_64, kernel 2.6.24-28-xen)のブートが遅くなっているのに気付いた。login: が出るまでにいやに時間がかかってしまっている。症状としては
  1. * Loading hardware drivers (/etc/init.d/udev のメッセージ) の後,ブートが止まる
  2. 40秒ぐらいして動き始めるが,ブートは遅い
  3. no buffer space available が出ることもある (udevadm trigger が出すメッセージ)
  4. 最後に login まで行くことは行く。しかし,動作はいやに遅い。
  5. 上記の問題なく立ち上がる場合もある。
同じマザーボードのメイン機の方は問題なく動いている。ハードウエアの故障の可能性もあるが,バックアップ機はメイン機より BIOS が古かったので,試しに BIOS をアップデートしてみたら直ったようだ。これでしばらく様子を見てみる。

2010年6月 6日 (日)

マスター検索の formalname 対応

マスター検索を formalname 対応にした。これで,例えば,TP が「総蛋白」,T-Cho が「コレステロール」で検索できるようになる。

dao/SqlMaster.java

private ArrayList getTreatmentByName(String text, boolean startsWith, String orderClassCode, String sortBy, String order) {
//pns   デフォルトを部分一致に。前方一致したいときは,自分で ^ を付けることにする
  String sql = getTreatemenrSql(text, orderClassCode, sortBy, order, false);
  ArrayList ret = getTreatmentCollection(sql);
/* // 前方一致検索を行う
  String sql = getTreatemenrSql(text, orderClassCode, sortBy, order, true);
  ArrayList ret = getTreatmentCollection(sql);
        
  // NoError で結果がないとき部分一致検索を行う
  if (isNoError() && (ret == null || ret.size() == 0) ) {
    sql = getTreatemenrSql(text, orderClassCode, sortBy, order, false);
    ret = getTreatmentCollection(sql);
  }*/
  return ret;
}

private String getTreatemenrSql(String text,  String orderClassCode, String sortBy, String order, boolean forward) {
 ・
 ・        
//pns   formalname 対応
  // buf.append("select srycd,name,kananame,tensikibetu,ten,nyugaitekkbn,routekkbn,srysyukbn,hospsrykbn,yukostymd,yukoedymd from tbl_tensu where ");
  buf.append("select srycd,name,kananame,tensikibetu,ten,nyugaitekkbn,routekkbn,srysyukbn,hospsrykbn,yukostymd,yukoedymd,formalname from tbl_tensu where ");
 ・
 ・
//pns   8xxxxxxxx のコメントを検索できるようにする
//pns   buf.append("(srycd ~ '^1' or srycd ~ '^00') and ");
  buf.append("(srycd ~ '^1' or srycd ~ '^00' or srycd ~ '^8') and ");

//pns^  formalname と kananame 対応
  StringBuilder nameClause = new StringBuilder();
  word = forward? addSingleQuote("^" + text): addSingleQuote(text);

  if (StringTool.isAllDigit(text)) {
    //word = text;
    //buf.append("srycd ~ ");
    nameClause.append("srycd ~ " + word);
  } else {    
    //word = text;
    //buf.append("name ~ ");
    nameClause.append("(name ~ " + word);
    nameClause.append(" or kananame ~ " + word);
    nameClause.append(" or formalname ~ " + word + ")");
  }
  buf.append(nameClause.toString());
//pns$
  StringBuilder sbd = new StringBuilder();
 ・
 ・
private ArrayList getTreatmentCollection(String sql) {
 ・
 ・
  while (rs.next()) {
    te = new TreatmentEntry();
    te.setCode(rs.getString(1));            // srycd
 ・
 ・
//pns
    te.setFormalName(rs.getString(12)); // formalname
 ・
 ・

infomodel/MasterEntry.java

public class MasterEntry extends InfoModel implements java.lang.Comparable {
 ・
 ・
//pns
    protected String formalname;
 ・
 ・
//pns^
    public void setFormalName(String val) {
        formalname = val;
    }
    public String getFormalName() {
        return formalname;
    }
//pns$
 ・
 ・

order/TreatmentMaster.java

 ・
 ・
protected final class TreatmentMasterRenderer extends MasterRenderer {
 ・
 ・
    case KANA_COLUMN:
      label.setText(entry.getKana());
//pns^ 正式名称があれば表示することにした
      String formalName = entry.getFormalName();
      if (formalName != null && !formalName.equals(""))
        label.setText(formalName);
//pns$
      break;
 ・
 ・

« 2010年5月 | トップページ | 2010年7月 »