新規カルテにテキストスタンプ挿入
新規カルテにテキストスタンプを自動的に挿入できるようにした。「テンプレート(初診)」「テンプレート(再診)」というテキストスタンプを作っておくと,新規カルテ作成時に自動的に挿入される。
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() {
・
・
« カルテ検索機能 | トップページ | カルテ保存後ウインドウを閉じる »
「OpenDolphin」カテゴリの記事
- OpenDolphin: Java 25 / WildFly 38 への移行(2025.11.09)
- 運用17年目のまとめ(2025.02.03)
- IME on/off の切換 - その2(2024.12.02)
- OrcaController オルコン(2024.11.28)
- OpenDolphin: java 21 / wildfly 34 への移行(2024.11.08)


