« 連続マスター検索 | トップページ | テーブルの文字欠け »

2008年6月 9日 (月)

病名エディタ

  1. 病名コード付きの病名は,間違ってちょっとクリックしただけで病名コードが消えてしまう(0000999になってしまう)。それをなんとかする。
    order/DiagnosisTablePanel.java の以下の部分を変更する。
    @Override
    public boolean isCellEditable(int row, int col) {
        
        boolean ret = false;
        
        RegisteredDiagnosisModel model = (RegisteredDiagnosisModel) getObject(row);
        
        if (col == NAME_COL) {
            if (model == null) {
                ret = true;
    ////↓ HAND_CODE 以外,編集不可とする
            } else if (model.getDiagnosisCode().equals(HAND_CODE)) {
                ret = true;
    ////                    } else if (!model.getDiagnosisCode().startsWith(MODIFIER_CODE)) {
    ////↑                        ret = true;
            }
            
        } else if (col == ALIAS_COL) {
            if (model != null && (!model.getDiagnosisCode().startsWith(MODIFIER_CODE))) {
                ret = true;
            }
        }
        
        return ret;
    }
    
  2. ついでに,デフォルトのカテゴリーをセットするようにする
    public void propertyChange(PropertyChangeEvent e) {
        
        String prop = e.getPropertyName();
        
        if (prop.equals(SELECTED_ITEM_PROP)) {
            
            // 通知された MasterItem から RegisteredDiagnosisModel 
            // を生成し、編集テーブルへ加える。
            MasterItem item = (MasterItem) e.getNewValue();
            
            if (item != null) {
                
                RegisteredDiagnosisModel model = new RegisteredDiagnosisModel();
                model.setDiagnosis(item.getName());
                model.setDiagnosisCode(item.getCode());
                model.setDiagnosisCodeSystem(item.getMasterTableId());
    ////↓  デフォルトのカテゴリーをセット(主病名)
                model.setCategory(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY);
                model.setCategoryDesc(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY_DESC);
                model.setCategoryCodeSys(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY_CODESYS);
    ////↑
                tableModel.addRow(model);
                
                reconstractDiagnosis();
    
                // 状態マシンへイベントを送信する
                curState.processEvent(DiagnosisStateMgr.Event.ADDED);
            }
        }
    }
     

« 連続マスター検索 | トップページ | テーブルの文字欠け »

OpenDolphin」カテゴリの記事