DiagnosisInspector 作成
新しい iMac になったら,画面がものすごく広くなったため(20": 1680x1050→ 27": 2560x1440),カルテの左側エリアにかなり余裕ができた。そこで,診断名を表示する DiagnosisInspector.java を作った。 インスペクタを開くときに,診断をサーバから読み込んで表示する。サーバとの通信はそのときだけで,その後は DiagnosisDocument から情報を受け取って表示するしくみ。
| Macintosh の画面 | Windows XP の画面 |
client/DiagnosisInspector.java
client/DiagnosisDocument.java
public static final String MAIN_DIAGNOSIS = "主病名";
public static final String SUSPECTED_DIAGNOSIS = "疑い病名";
:
// DiagnosisInspector
DiagnosisInspector diagnosisInspector;
:
private void initialize() {
:
// PatientInspector に新しく作った DiagnosisInspector と連絡
diagnosisInspector = ((ChartImpl) getContext()).getDiagnosisInspector();
}
:
public void start() {
:
// DiagnosisInspector に自分を教える
diagnosisInspector.setDiagnosisDocument(this);
:
public void getDiagnosisHistory(Date past) {
:
// 最後に有効期限(disUseDate)が99999999以外に設定されていたら移行病名としてセット
for (Object rd : list) checkIkouByomei((RegisteredDiagnosisModel) rd);
// 新しく作った DiagnosisInspector を update
diagnosisInspector.update();
}
:
class DiagnosisPutTask extends DBTask> {
:
protected void succeeded(List list) {
:
// DiagnosisInspector に連絡
diagnosisInspector.update();
}
client/ChartImpl.java
/**
* 病名インスペクタを返す
*/
public DiagnosisInspector getDiagnosisInspector() {
return inspector.getDiagnosisInspector();
}
project/ProjectStub.java
public String getFifthInspector() {
return prefs.get("fifthInspector", PatientInspector.INSPECTOR_ITEMS[5]); // 病名
}
public void setFifthInspector(String fifthInspector) {
prefs.put("fifthInspector", fifthInspector);
}
client/PatientInspector.java
private boolean bDiagnosis;
private boolean bFile;
public static String[] INSPECTOR_ITEMS = new String[]{
"メモ", "カレンダー", "文書履歴", "アレルギー", "身長体重", "病名", "関連文書", "なし"
};
// 病名インスペクタ
private DiagnosisInspector diagnosisInspector;
public DiagnosisInspector getDiagnosisInspector() {
return diagnosisInspector;
}
// 関連文書インスペクタ → ついでに作った
private FileInspector fileInspector;
public FileInspector getFileInspector() {
return fileInspector;
}
:
private void initComponents() {
String diagnosisTitle = "病名";
String fileTitle = "関連文書";
String fifthInspector = Project.getPreferences().get("fifthInspector", INSPECTOR_ITEMS[5]); //"病名"
diagnosisInspector = new DiagnosisInspector(context);
fileInspector = new FileInspector(context);
diagnosisInspector.getPanel().setPreferredSize(new Dimension(prefW, 100));
fileInspector.getPanel().setPreferredSize(new Dimension(prefW, 100));
:
layoutRow(container, fifthInspector);
if (!bDiagnosis) {
tabbedPane.addTab(diagnosisTitle, diagnosisInspector.getPanel());
}
if (!bFile) {
tabbedPane.addTab(fileTitle, fileInspector.getPanel());
}
:
private void layoutRow(JPanel content, String itype) {
:
else if (itype.equals(INSPECTOR_ITEMS[5])) { // "病名"
diagnosisInspector.getPanel().setBorder(BorderFactory.createTitledBorder("病名"));
content.add(diagnosisInspector.getPanel());
bDiagnosis = true;
} else if (itype.equals(INSPECTOR_ITEMS[6])) { // "関連文書"
fileInspector.getPanel().setBorder(BorderFactory.createTitledBorder("関連文書"));
content.add(fileInspector.getPanel());
bFile = true;
}
client/KarteSettingPanel.java
private static int INSPECTOR_LENGTH = 5;
:
initComponents() {
:
label = new JLabel("4番目:", SwingConstants.RIGHT);
gbb.add(label, 0, row, 1, 1, GridBagConstraints.EAST);
gbb.add(inspectorCompo[row], 1, row, 1, 1, GridBagConstraints.WEST);
row++;
label = new JLabel("ボトム:", SwingConstants.RIGHT);
gbb.add(label, 0, row, 1, 1, GridBagConstraints.EAST);
gbb.add(inspectorCompo[row], 1, row, 1, 1, GridBagConstraints.WEST);
row++;
:
private void bindModelToView() {
inspectorCompo[4].setSelectedItem(model.getFifthInspector());
:
private void bindViewToModel() {
model.setFifthInspector((String) inspectorCompo[4].getSelectedItem());
:
class KarteModel {
private String fifthInspector;
:
public void populate(ProjectStub stub) {
setFifthInspector(stub.getFifthInspector());
:
public void restore(ProjectStub stub) {
stub.setFifthInspector(getFifthInspector());
:
public String getFifthInspector() {
return fifthInspector;
}
public void setFifthInspector(String fifthInspector) {
this.fifthInspector = fifthInspector;
}
« SaveDialog の改造 | トップページ | FileInspector の作成 »
「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)




