public void setContext(Chart chart) { this.chart = chart; male = IInfoModel.MALE.equals(chart.getPatient().getGender()); }
private void save() throws Exception { @SuppressWarnings("unchecked") List<InFacilityLaboItem> list = setTableModel.getDataProvider(); // laboCode(facilityId)を設定する String fid = Project.getFacilityId(); for (InFacilityLaboItem item : list) { item.setLaboCode(fid); } // まずは施設内検査項目を登録する。 MasudaDelegater del = MasudaDelegater.getInstance(); del.updateInFacilityLaboItemList(list); // ついでNLaboModuleを登録する。 String pid = chart.getPatient().getPatientId(); String fidPid = fid + ":" + pid; String ptName = chart.getPatient().getFullName(); String sampleDate = dateFld.getText().trim(); // 検査箋(検査モジュール)のキー = patientId.sampleDate.labCode StringBuilder buf = new StringBuilder(); buf.append(pid); buf.append("."); buf.append(sampleDate); buf.append("."); buf.append(fid); String testKey = buf.toString(); // NLaboModuleを作成 NLaboModule nLaboModule = new NLaboModule(); // NLaboItemを作成 List<NLaboItem> nLaboItemList = new ArrayList<>(); for (InFacilityLaboItem item : list) { String itemValue = item.getItemValue(); if (itemValue == null || itemValue.trim().isEmpty()) { continue; } NLaboItem nLaboItem = createNLaboItem(item); nLaboItem.setPatientId(fidPid); nLaboItem.setLaboCode(fid); nLaboItem.setSampleDate(sampleDate); nLaboItem.setLaboModule(nLaboModule); nLaboItemList.add(nLaboItem); } // 空ならリターン if (nLaboItemList.isEmpty()) { return; } // NLaboModuleに情報設定 nLaboModule.setPatientId(pid); // ここはただのPatientID nLaboModule.setPatientName(ptName); nLaboModule.setPatientSex(male ? "M" : "F"); nLaboModule.setSampleDate(sampleDate); nLaboModule.setLaboCenterCode(fid); nLaboModule.setModuleKey(testKey); nLaboModule.setReportFormat("NLab"); // nLaboModule.setNumOfItems(String.valueOf(nLaboItemList.size())); nLaboModule.setItems(nLaboItemList); // NLaboModuleをデータベースに登録する LaboDelegater ldel = LaboDelegater.getInstance(); ldel.postNLaboModule(nLaboModule); }