新規カルテにテキストスタンプ挿入
新規カルテにテキストスタンプを自動的に挿入できるようにした。「テンプレート(初診)」「テンプレート(再診)」というテキストスタンプを作っておくと,新規カルテ作成時に自動的に挿入される。
client/StampTreeModules.java
/** * テキストスタンプから title のスタンプを取ってきて返す * @return ModuleModel */ public ModuleModel getTextStamp(String title) { ModuleModel mModel = new ModuleModel(); ModuleInfoBean stamp = null; StampTree tree = mediator.getStampTree("text"); for (int i=0; i<tree.getRowCount(); i++) { StampTreeNode sn = (StampTreeNode) tree.getPathForRow(i).getLastPathComponent(); if (sn.isLeaf()) { ModuleInfoBean bean = sn.getStampInfo(); String name = bean.getStampName(); if (name.equals(title)) { stamp = bean; break; } } } if (stamp != null) { StampDelegater sdl = new StampDelegater(); // Stamp モデルをデータベースから取ってくる StampModel sModel = sdl.getStamp(stamp.getStampId()); // Stamp モデルから info モデルを作る IInfoModel iModel = (IInfoModel) BeanUtils.xmlDecode(sModel.getStampBytes()); // info モデル(実体)と stamp(情報) を module model にセット mModel.setModel(iModel); mModel.setModuleInfo(stamp); mModel.getModuleInfo().setStampRole(IInfoModel.ROLE_SOA); } else mModel = null; return mModel; }
client/ChartImpl.java
/** * 新規カルテを作成する。 */ public void newKarte() { ・ ・ // Baseになるカルテがあるかどうかでモデルの生成が異なる if (params.getCreateMode() == Chart.NewKarteMode.EMPTY_NEW) { logger.debug("empty new is selected"); editModel = getKarteModelToEdit(params); } else { logger.debug("copy new is selected"); editModel = getKarteModelToEdit(base.getModel(), params); } ////↓ 新規カルテにいろいろモジュールを入れる StampTreeModules stm = new StampTreeModules(this); // 初診・再診 stampTreeModule を自動入力する ModuleModel mm = stm.getBaseCharge(); if (mm != null) editModel.addModule(mm); // 初期テキストスタンプ挿入 if (stm.isShoshin()) { mm = stm.getTextStamp("テンプレート(初診)"); if (mm != null) editModel.addModule(mm); } else { mm = stm.getTextStamp("テンプレート(再診)"); if (mm != null) editModel.addModule(mm); } } ////↑ ・ ・
client/KartePane.java
/** * このペインに Stamp を挿入する。 */ public void stamp(final ModuleModel stamp) { if (stamp != null) { ////↓ text stamp がここに入った時の対策(新規カルテにテキストスタンプ挿入するときここに来る) if (stamp.getModuleInfo().getEntity().equals(IInfoModel.ENTITY_TEXT)) { insertTextStamp(stamp.getModel().toString()); return; } ////↑ EventQueue.invokeLater(new Runnable() { ・ ・