Examples of RegisteredDiagnosisModel


Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

                        if (sel < 0) {
                            // 項目のないところダブルクリックした場合
                            doc.openEditor2();
                        } else {
                            // 項目があるところをダブルクリックした場合
                            RegisteredDiagnosisModel model = (RegisteredDiagnosisModel) listModel.get(sel);
                            doc.openEditor3(model);
                        }
                    }
                }
                @Override
                public void mouseReleased(MouseEvent e) {
                    if (e.isPopupTrigger()) maybeShowPopup(e);               
                }
                private void maybeShowPopup(MouseEvent e) {
                    if ((e.getModifiers() & InputEvent.ALT_MASK) != 0) {
                        // option キーを押していたら category:主病名,疑い病名
                        doc.getDiagnosisDocumentPopup().getCategoryPopup().show(diagList, e.getX(), e.getY());
                    } else {
                        // 右端の方が押されていたら outcome:全治,中止                   
                        if (e.getX() > diagList.getWidth() - 48)
                            doc.getDiagnosisDocumentPopup().getOutcomePopup().show(diagList, e.getX(), e.getY());
                        // それ以外は病名修飾
                        else doc.getDiagnosisDocumentPopup().getDiagPopup().show(diagList, e.getX(), e.getY());
                    }
                }
            });

            // DiagnosisInspector の list と DiagnosisDocument の table の選択範囲を一致させる
            diagList.addListSelectionListener(new ListSelectionListener(){
                @Override
                public void valueChanged(ListSelectionEvent e) {
                    DiagnosisDocumentTable table = doc.getDiagnosisTable();
                    DiagnosisDocumentTableModel model = (DiagnosisDocumentTableModel) table.getModel();
                    ListSelectionModel selectionModel = table.getSelectionModel();
                    selectionModel.clearSelection();

                    for(Object o : diagList.getSelectedValues()) {
                        for(int i=0; i<model.getObjectCount(); i++) {
                            if (model.getObject(i).equals(o)) {
                                int row = table.convertRowIndexToView(i);
                                selectionModel.addSelectionInterval(row,row);
                            }
                        }
                    }
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

        // model から,endDate の有無でリストを分ける
        ArrayList active = new ArrayList();
        ArrayList ended = new ArrayList();
       
        for (Object o : model.getObjectList()) {
            RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel)o;
            if (rd.getEndDate() == null) active.add(o);
            else ended.add(o);
        }
        // 選択を保存 hashCode を保存しておく
        ArrayList<Integer> selected = new ArrayList<Integer>();
        for (int r : diagList.getSelectedIndices()) {
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

            Object value,            // value to display
            int index,               // cell index
            boolean isSelected,      // is the cell selected
            boolean isFocused)  { // does the cell have focus

            RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) value;
            String diagName = rd.getDiagnosis();
            // 疑いの場合
            if (DiagnosisDocument.SUSPECTED_DIAGNOSIS.equals(rd.getCategoryDesc())) {
                diagName += SUSPECT;
            }
           
            boolean deleted = (rd != null && DiagnosisDocument.DELETED_RECORD.equals(rd.getStatus())) ? true : false;
            boolean ended = (rd != null && rd.getEndDate() != null) ? true : false;
            boolean ikou = (rd != null && DiagnosisDocument.IKOU_BYOMEI_RECORD.equals(rd.getStatus())) ? true : false;

           
            if (isSelected) {
                // foreground
                if (deleted || ended) {
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

     * @return List<RegisteredDiagnosisModel>
     */
    private Object getValue1() {
       
        ArrayList<RegisteredDiagnosisModel> ret = new ArrayList<RegisteredDiagnosisModel>(1);
        RegisteredDiagnosisModel rd = new RegisteredDiagnosisModel();
       
        StringBuilder name = new StringBuilder();
        StringBuilder code = new StringBuilder();
        String alias = null;
           
        // テーブルをスキャンする
        for (Object o : tableModel.getObjectList()) {
            MasterItem mItem = (MasterItem)o;
            String diagCode = mItem.getCode();
           
            if (diagCode.startsWith(MODIFIER_CODE)) {
                // 修飾語の場合は ZZZ をトリムする (ORCA 実装)
                diagCode = diagCode.substring(MODIFIER_CODE.length());
           
            } else {
                // 修飾語でないものがみつかったら,基本病名と見なしパラメータを設定する
                // 修飾語がある場合は,基本病名は必ず1つのはず。
                rd.setDiagnosisCodeSystem(mItem.getMasterTableId());
                rd.setCategory(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY);
                rd.setCategoryDesc(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY_DESC);
                rd.setCategoryCodeSys(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY_CODESYS);
               
                alias = mItem.getDummy(); // alias を保存
            }
            // コードを . で連結する
            if (code.length() > 0) code.append(".");
            code.append(diagCode);           
            // 名前を連結する
            name.append(mItem.getName());
        }
       
        // 名前とコードを設定する
        rd.setDiagnosis( getDiagnosisWithAlias(name.toString(), alias) );
        rd.setDiagnosisCode(code.toString());
       
        ret.add(rd);
        return ret;
    }
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

    private Object getValue2() {
        ArrayList<RegisteredDiagnosisModel> ret = new ArrayList<RegisteredDiagnosisModel>();
       
        for(Object o : tableModel.getObjectList()) {
            MasterItem mItem = (MasterItem) o;
            RegisteredDiagnosisModel rd = new RegisteredDiagnosisModel();
            // 診断にエリアスが指定されている場合,dummy に入っている
            rd.setDiagnosis( getDiagnosisWithAlias(mItem.getName(), mItem.getDummy()) );
            rd.setDiagnosisCode(mItem.getCode());
            rd.setDiagnosisCodeSystem(mItem.getMasterTableId());
            rd.setCategory(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY);
            rd.setCategoryDesc(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY_DESC);
            rd.setCategoryCodeSys(open.dolphin.infomodel.IInfoModel.DEFAULT_DIAGNOSIS_CATEGORY_CODESYS);
           
            ret.add(rd);
        }
        return ret;
    }
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

     */
    @Override
    public void setValue(Object o) {
        if (o == null) return;
       
        RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) o;
        // . で区切られたコードを分解してコード配列を作る
        final String[] codes = rd.getDiagnosisCode().split("\\.");
        for (int i = 0; i < codes.length; ++i){
            // 修飾語は4桁。コードにZZZを追加する。
            if (codes[i].length() == 4){
                codes[i] = "ZZZ" + codes[i];
            }
        }
        // エリアスを切り出しておく
        final String alias = getDiagnosisAlias(rd.getDiagnosis());
       
        // 分解したコードのそれぞれについて,不足情報を ORCA に問い合わせる
        String message = "傷病名検索";
        String note = "傷病名を検索しています...";
        Component c = SwingUtilities.getWindowAncestor(this);
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

    public boolean isCellEditable(int row, int col) {
        // licenseCodeで制御
        if (isReadOnly) return false;

        // 病名レコードが存在しない場合は false
        RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) getObject(row);
        if (rd == null) return false;

        // ORCA に登録されている病名の場合
        if (rd.getStatus() != null && rd.getStatus().equals(DiagnosisDocument.ORCA_RECORD)) return false;

        // 診断名 column は直接編集不可(編集は popup,エディタでの編集はできる)
        if (col == DiagnosisDocument.DIAGNOSIS_COL) return false;
       
        // DELETED_RECORD フラグが立っていたら cell editor による編集不可
        if (DiagnosisDocument.DELETED_RECORD.equals(rd.getStatus())) {
            return false;
        }

        return true;
    }
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

    // オブジェクトの値を設定する
    @Override
    public void setValueAt(Object value, int row, int col) {
       
        RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) getObject(row);

        if (value == null || rd == null) return;
        String status = rd.getStatus();
        if (status != null && status.equals(DiagnosisDocument.ORCA_RECORD)) return;

        // value = DELETED_RECORD で呼ばれた場合は DELETED_RECORD をセットする
        if (DiagnosisDocument.DELETED_RECORD.equals(value)) {
            // undo 用に保存
            offerQueue(undoMap, rd);
            // rd 書き換え
            rd.setStatus(DiagnosisDocument.DELETED_RECORD);
            update(row, rd);
            return;
        }

        // DELETED_RECORD フラグが立っていたらポップアップ編集も不可
        if (DiagnosisDocument.DELETED_RECORD.equals(rd.getStatus())) {
            Toolkit.getDefaultToolkit().beep();
            return;
        }

        switch (col) {
            case DiagnosisDocument.DIAGNOSIS_COL:
                // JTextField から入ってきた String 分は無視
                if (value instanceof DiagnosisLiteModel) {
                    DiagnosisLiteModel newDiag = (DiagnosisLiteModel) value;
                    // 変更されていたら更新する
                    if (!rd.getDiagnosis().equals(newDiag.getDiagnosisDesc()) || !rd.getDiagnosisCode().equals(newDiag.getDiagnosisDesc())) {
                        // undo 用に保存
                        offerQueue(undoMap, rd);
                        // rd 書き換え
                        rd.setDiagnosis(newDiag.getDiagnosisDesc());
                        rd.setDiagnosisCode(newDiag.getDiagnosisCode());
                        update(row, rd);
                    }
                }
                break;

            case DiagnosisDocument.CATEGORY_COL:
                // JComboBox から選択
                String saveCategory = rd.getCategory();
                DiagnosisCategoryModel dcm = (DiagnosisCategoryModel) value;
                String test = dcm.getDiagnosisCategory();
                test = test != null && (!test.equals("")) ? test : null;
                if (saveCategory != null) {
                    if (test != null) {
                        if (!test.equals(saveCategory)) {
                            // undo 用に保存
                            offerQueue(undoMap, rd);
                            rd.setCategory(dcm.getDiagnosisCategory());
                            rd.setCategoryDesc(dcm.getDiagnosisCategoryDesc());
                            rd.setCategoryCodeSys(dcm.getDiagnosisCategoryCodeSys());
                            update(row, rd);
                        }
                    } else {
                        // undo 用に保存
                        offerQueue(undoMap, rd);
                        rd.setDiagnosisCategoryModel(null);
                        update(row, rd);
                    }

                } else {
                    if (test != null) {
                        // undo 用に保存
                        offerQueue(undoMap, rd);
                        rd.setCategory(dcm.getDiagnosisCategory());
                        rd.setCategoryDesc(dcm.getDiagnosisCategoryDesc());
                        rd.setCategoryCodeSys(dcm.getDiagnosisCategoryCodeSys());
                        update(row, rd);
                    }
                }
                break;

            case DiagnosisDocument.OUTCOME_COL:
                // JComboBox から選択
                String saveOutcome = rd.getOutcome();
                DiagnosisOutcomeModel dom = (DiagnosisOutcomeModel) value;
                test = dom.getOutcome();
                test = test != null && (!test.equals("")) ? test : null;
                if (saveOutcome != null) {
                    if (test != null) {
                        if (!saveOutcome.equals(test)) {
                            // undo 用に保存
                            offerQueue(undoMap, rd);
                            rd.setOutcome(dom.getOutcome());
                            rd.setOutcomeDesc(dom.getOutcomeDesc());
                            rd.setOutcomeCodeSys(dom.getOutcomeCodeSys());
                            // 疾患終了日を入れる
                            if (Project.getPreferences().getBoolean("autoOutcomeInput", false)) {
                                String val = rd.getEndDate();
                                if (val == null || val.equals("")) {
                                    // 転帰日の自動入力の基準日を,lastVisit にする
                                    GregorianCalendar gc = new GregorianCalendar(lastVisitYmd[0], lastVisitYmd[1], lastVisitYmd[2]);
                                    int offset = Project.getPreferences().getInt(Project.OFFSET_OUTCOME_DATE, -7);
                                    gc.add(Calendar.DAY_OF_MONTH, offset);
                                    gc.add(Calendar.DAY_OF_MONTH, offset);
                                    String today = MMLDate.getDate(gc);
                                    rd.setEndDate(today);
                                }
                            }
                            update(row, rd);
                        }
                    } else {
                        // 転帰が消去された場合は新規病名として登録し直すことにした
                        RegisteredDiagnosisModel newRd = new RegisteredDiagnosisModel();
                        newRd.setDiagnosis(rd.getDiagnosis());
                        newRd.setDiagnosisCode(rd.getDiagnosisCode());
                        newRd.setDiagnosisCodeSystem(rd.getDiagnosisCodeSystem());
                        newRd.setCategory(rd.getCategory());
                        newRd.setCategoryDesc(rd.getCategoryDesc());
                        newRd.setCategoryCodeSys(rd.getCategoryCodeSys());
                       
                        insert(newRd);
                    }
                } else {
                    if (test != null) {
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

     */
    public void undo() {
        int[] rows = diagTable.getSelectedRows();
        for (int r : rows) {
            int row = diagTable.convertRowIndexToModel(r);
            RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) getObject(row);
            offerQueue(redoMap, rd);
            if (pollQueue(undoMap, rd) == PollResult.succeeded) update(row, rd);
            else cancelOffer(redoMap, rd); // poll に失敗した場合は offer した分は取り消す
        }
    }
View Full Code Here

Examples of open.dolphin.infomodel.RegisteredDiagnosisModel

     */
    public void redo() {
        int[] rows = diagTable.getSelectedRows();
        for (int r : rows) {
            int row = diagTable.convertRowIndexToModel(r);
            RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) getObject(row);
            offerQueue(undoMap, rd);
            if (pollQueue(redoMap, rd) == PollResult.succeeded) update(row, rd);
            else cancelOffer(undoMap, rd); // poll に失敗したときは,offer した分は取り消す
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.