状態アイコン背景色
![]() | 状態アイコンの背景色を,病名がないとき黄色にする(病名つけ忘れを防ぐため)。また,今日つけた病名しか付いていない場合(全くの初診の場合)は,背景色を白にする。以下の4クラスの編集が必要。 |
client/ByomeiCount.java
- 新たにクラス作成
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package open.dolphin.client; import java.util.GregorianCalendar; import open.dolphin.delegater.DocumentDelegater; import open.dolphin.dto.DiagnosisSearchSpec; import open.dolphin.infomodel.PatientVisitModel; /** * * @author Motomachi Usagi */ public class ByomeiCount { private PatientVisitModel pvt; private int byomeiCount; private int byomeiCountToday; private DocumentDelegater ddl; private DiagnosisSearchSpec spec; public ByomeiCount(PatientVisitModel p) { pvt = p; byomeiCount = 0; byomeiCountToday = 0; ddl = null; spec = null; } public void setByomeiCount() { // PatientVisitModel に病名数をセットする GregorianCalendar today = new GregorianCalendar(); ddl = new DocumentDelegater(); Long karteId = ddl.getKarte(pvt.getPatient().getId(), today.getTime()).getId(); spec = new DiagnosisSearchSpec(); spec.setCode(DiagnosisSearchSpec.PATIENT_SEARCH); spec.setKarteId(karteId); byomeiCount = ddl.getDiagnosisList(spec).size(); // 今までについている病名の総数 if (byomeiCount != 0) { today.add(GregorianCalendar.DATE, -1); spec.setFromDate(today.getTime()); byomeiCountToday = ddl.getDiagnosisList(spec).size(); // 今日ついた病名の総数 } pvt.setByomeiCount(byomeiCount); pvt.setByomeiCountToday(byomeiCountToday); } }
infomodel/PatientVisitModel.java
- メソッドを4つ加える
////↓ pvt model の項目を増やす private int byomei; // 今まで付いた病名の総数 private int byomeiToday; // 今日付いた病名の数 ////↑ /** * PatientVisitModelオブジェクトを生成する。 */ public PatientVisitModel() { } ////↓ // 病名の総数 public void setByomeiCount(int bc) { byomei = bc; } // 今日付いた病名の数 public void setByomeiCountToday(int bct) { byomeiToday = bct; } // 初診かどうか(今日付いた病名がすべての病名かどうか) public boolean isShoshin() { return (byomei == byomeiToday); } // 病名がついているかどうか public boolean hasByomei() { return (byomei != 0); } ////↑
client/DiagnosisDocument.java
- 病名を保存するところで,pvt にも保存する
/** * DiagnosisPutTask */ class DiagnosisPutTask extends DBTask
- > {
・
・
// 保存する
if (added != null && added.size() > 0) {
logger.debug("ddl.putDiagnosis");
result = ddl.putDiagnosis(added);
if (ddl.isNoError()) {
logger.debug("ddl.putDiagnosis() is NoErr");
for (int i = 0; i < added.size(); i++) {
long pk = result.get(i).longValue();
logger.debug("persist id = " + pk);
RegisteredDiagnosisModel rd = (RegisteredDiagnosisModel) added.get(i);
rd.setId(pk);
}
}
}
////↓ PatientVisitModel に病名数をセットする
ByomeiCount bc = new ByomeiCount(getContext().getPatientVisit());
bc.setByomeiCount();
////↑
plugins/WatingList/WatingListImpl.java
- 受付番号表示の追加部分の下に,病名数の処理を追加する
// 結果を追加する if (newVisitCount > 0) { for (int i = 0; i < newVisitCount; i++) { ////↓受付番号表示 PatientVisitModel pvt = (PatientVisitModel) result.get(i); pvt.setNumber(firstResult+i+1); // 病名が1つでもあるかどうか,初診かどうかのセット, ByomeiCount bc = new ByomeiCount(pvt); bc.setByomeiCount(); ////↑
// // cnt 以降は新しいレコードなのでそのまま追加する // for (int i = index; i < result.size(); i++) { ////↓受付番号表示 PatientVisitModel pvt = (PatientVisitModel) result.get(i); pvt.setNumber(firstResult+i+1); dataList.add(result.get(i)); // dataList.add(result.get(index++)); // 病名が1つでもあるかどうか,初診かどうかを pvt にセット ByomeiCount bc = new ByomeiCount(pvt); bc.setByomeiCount(); ////↑
- レンダラのところでバックグランドを設定する
/** * KarteStateRenderer * カルテ(チャート)の状態をレンダリングするクラス。 */ protected class KarteStateRenderer extends DefaultTableCellRenderer { ・ ・ Color fore = pvt != null && pvt.getState() == ChartImpl.CANCEL_PVT ? CANCEL_PVT_COLOR : table.getForeground(); this.setForeground(fore); } ////↓病名がついていなければ黄色,初診(本日ついた病名しかついていない)なら白 if (pvt != null) { if (!pvt.hasByomei()) this.setBackground(Color.YELLOW); else if (pvt.isShoshin()) this.setBackground(Color.WHITE); } ////↑
« 受付番号表示 | トップページ | スタンプ箱のルートノード »
「OpenDolphin」カテゴリの記事
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)
- Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編](2023.02.01)
- Java 17 への移行(3) - OpenSearch の準備 [mac 編](2023.01.31)