待ち時間表示
受付リストに,待ち人数と待ち時間(次に診察する患者さんが待っていた時間)を表示するようにした。インスペクタにはその患者さんの待ち時間が出るようにした。
plugin/WatingListImpl.java
・
・
public void updateState(final PatientVisitModel updated) {
・
・
//pns
setPvtCount(pvtTableModel.getObjectCount());
}
・
・
//pns^
/**
* 来院数を設定する。
* @param cnt 来院数
*/
public void setPvtCount(int cnt) {
pvtCount = cnt;
//String text = ClientContext.getString("watingList.state.pvtCountText");
//text += String.valueOf(pvtCount); // 来院数:20
//view.getCountLbl().setText(text);
setPvtCount();
}
/**
* 来院数,待人数,待時間表示
*/
private void setPvtCount() {
int waitingCount = 0;
String waitingTime = "00:00";
List dataList = pvtTableModel.getObjectList();
if (pvtCount > 0) {
boolean found = false;
for (int i = 0; i < pvtCount; i++) {
PatientVisitModel pvt = (PatientVisitModel) dataList.get(i);
int state = pvt.getState();
if (state == ChartImpl.CLOSE_NONE || state == ChartImpl.OPEN_NONE) {
// 診察未終了レコードをカウント,最初に見つかった未終了レコードの時間から待ち時間を計算
waitingCount++;
if (!found) {
Date pvtDate = ModelUtils.getDateTimeAsObject(pvt.getPvtDate());
waitingTime = DurationFormatUtils.formatPeriod(pvtDate.getTime(), new Date().getTime(), "HH:mm");
found = true;
}
}
}
}
StringBuilder sb = new StringBuilder();
sb.append("来院数");
sb.append(String.valueOf(pvtCount));
sb.append("人,待ち");
sb.append(String.valueOf(waitingCount));
sb.append("人,待ち時間 ");
sb.append(waitingTime);
view.getCountLbl().setText(sb.toString());
}
//pns$
plugin/RowTipsTable.java
public String getToolTipText(MouseEvent e) {
ObjectReflectTableModel model = (ObjectReflectTableModel) getModel();
int row = rowAtPoint(e.getPoint());
PatientVisitModel pvt = (PatientVisitModel) model.getObject(row);
//pns^ 待ち時間表示
Date pvtDate = ModelUtils.getDateTimeAsObject(pvt.getPvtDate());
int pvtState = pvt.getState();
String waitingTime = "";
if (pvtDate != null &&
(pvtState == ChartImpl.CLOSE_NONE || pvtState ==ChartImpl.OPEN_NONE)) {
waitingTime = " - 待ち時間 " + DurationFormatUtils.formatPeriod(pvtDate.getTime(), new Date().getTime(), "HH:mm");
}
String patientName = pvt != null ? pvt.getPatient().getKanaName() : null;
return patientName + waitingTime;
//pns$
// return pvt != null ? pvt.getPatient().getKanaName() : null;
}
client/ChartImpl.java
public void initComponents() {
・
・
statusPanel.setRightInfo(rdPrifix + created); // カルテ登録日:yyyy/mm/dd
//pns^待ち時間表示
Date pvtDate = ModelUtils.getDateTimeAsObject(pvt.getPvtDate());
if (pvtDate != null && pvt.getState() == CLOSE_NONE) { // window open 前に呼ばれる
String waitingTime = DurationFormatUtils.formatPeriod(pvtDate.getTime(), new Date().getTime(), "HH:mm");
statusPanel.setRightInfo(rdPrifix + created + "待ち時間 " + waitingTime);
}
//pns$
« ORCA から送られてきた「診療内容」を反映する | トップページ | byomeiCount の永続化 »
「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)




