|
@@ -10,7 +10,10 @@ import com.wdkl.infoboardclassic.MainActivity;
|
|
|
import com.wdkl.infoboardclassic.R;
|
|
|
import com.wdkl.infoboardclassic.constant.Constants;
|
|
|
import com.wdkl.infoboardclassic.data.AllPatientInfoItem;
|
|
|
+import com.wdkl.infoboardclassic.data.HospitalFrameBean;
|
|
|
+import com.wdkl.infoboardclassic.data.NurseConfigBean;
|
|
|
import com.wdkl.infoboardclassic.data.NurseConfigItem;
|
|
|
+import com.wdkl.infoboardclassic.data.NurseConfigLevel;
|
|
|
import com.wdkl.infoboardclassic.data.PatientInfoBean;
|
|
|
import com.wdkl.infoboardclassic.utils.ToastUtil;
|
|
|
|
|
@@ -20,6 +23,7 @@ import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import okhttp3.Call;
|
|
|
import okhttp3.Callback;
|
|
@@ -36,8 +40,11 @@ public class PatientInfoManager {
|
|
|
private List<NurseConfigItem> nurseConfigItemList = new ArrayList<>();
|
|
|
|
|
|
private List<PatientInfoBean> patientInfoBeanList;
|
|
|
+ private List<NurseConfigBean> nurseConfigBeanList;
|
|
|
+ private List<HospitalFrameBean> bedFrameBeanList;
|
|
|
|
|
|
private int[] titleId = new int[] {R.string.patient_count_title, R.string.discharged_today_title, R.string.discharged_tomorrow_title, R.string.admission_today};
|
|
|
+ private int[] nurseConfigTitleIds = new int[] {R.string.gradeLevel, R.string.dosageLevel, R.string.dietLevel, R.string.insulateLevel, R.string.allerayLevel};
|
|
|
|
|
|
private PatientInfoManager(){
|
|
|
}
|
|
@@ -78,7 +85,15 @@ public class PatientInfoManager {
|
|
|
if (response.isSuccessful()) {
|
|
|
String responseStr = response.body().string();
|
|
|
//Log.d(TAG, "get response:" + responseStr);
|
|
|
- patientInfoBeanList = JSONObject.parseArray(responseStr, PatientInfoBean.class);
|
|
|
+
|
|
|
+ JSONObject json = JSON.parseObject(responseStr);
|
|
|
+ List<PatientInfoBean> patientList = JSONArray.parseArray(json.getString("patient"), PatientInfoBean.class);
|
|
|
+ List<NurseConfigBean> nurseConfigList = JSONArray.parseArray(json.getString("nurse_config"), NurseConfigBean.class);
|
|
|
+ List<HospitalFrameBean> bedFrameList = JSONArray.parseArray(json.getString("bed_frame"), HospitalFrameBean.class);
|
|
|
+
|
|
|
+ PatientInfoManager.getInstance().setBedFrameBeanList(bedFrameList);
|
|
|
+ PatientInfoManager.getInstance().setNurseConfigBeanList(nurseConfigList);
|
|
|
+ PatientInfoManager.getInstance().setPatientInfoBeanList(patientList);
|
|
|
} else {
|
|
|
Log.e(TAG, response.body().string());
|
|
|
ToastUtil.showShortToast("获取数据错误");
|
|
@@ -141,21 +156,122 @@ public class PatientInfoManager {
|
|
|
return allPatientInfoItemList;
|
|
|
}
|
|
|
|
|
|
- public List<String> getNurseConfigTitle() {
|
|
|
- nurseConfigTitleList.clear();
|
|
|
- for (int i = 0; i < 5; i++) {
|
|
|
- nurseConfigTitleList.add("护理等级");
|
|
|
+ //默认值
|
|
|
+ public List<NurseConfigItem> defaultNurseConfigItems() {
|
|
|
+ for (int i = 0; i < nurseConfigTitleIds.length; i++) {
|
|
|
+ NurseConfigItem item = new NurseConfigItem();
|
|
|
+ List<NurseConfigLevel> configLevelList = new ArrayList<>();
|
|
|
+ for (int j = 0; j < 4; j++) {
|
|
|
+ NurseConfigLevel configLevel = new NurseConfigLevel();
|
|
|
+ configLevel.setNurseConfigLevel("");
|
|
|
+ configLevel.setNurseConfigContent("");
|
|
|
+ configLevelList.add(configLevel);
|
|
|
+ }
|
|
|
+
|
|
|
+ item.setNurseConfigTitle(BaseApp.getContext().getString(nurseConfigTitleIds[i]));
|
|
|
+ item.setNurseConfigLevelList(configLevelList);
|
|
|
+ nurseConfigItemList.add(item);
|
|
|
}
|
|
|
- return nurseConfigTitleList;
|
|
|
+ return nurseConfigItemList;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setBedFrameBeanList(List<HospitalFrameBean> hospitalFrameBeans) {
|
|
|
+ bedFrameBeanList = hospitalFrameBeans;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setNurseConfigBeanList(List<NurseConfigBean> nurseConfigBeans) {
|
|
|
+ nurseConfigBeanList = nurseConfigBeans;
|
|
|
}
|
|
|
|
|
|
public List<NurseConfigItem> getNurseConfigItems() {
|
|
|
- nurseConfigItemList.clear();
|
|
|
- for (int i = 0; i < 4; i++) {
|
|
|
- NurseConfigItem item = new NurseConfigItem("一级", "1,5,9,22");
|
|
|
- nurseConfigItemList.add(item);
|
|
|
+ if (nurseConfigBeanList != null) {
|
|
|
+ List<NurseConfigBean> gradeLvl = nurseConfigBeanList.stream().filter(p -> p.getNurseLevel() == 0).collect(Collectors.toList());
|
|
|
+ List<NurseConfigBean> insulateLvl = nurseConfigBeanList.stream().filter(p -> p.getNurseLevel() == 1).collect(Collectors.toList());
|
|
|
+ List<NurseConfigBean> dietLvl = nurseConfigBeanList.stream().filter(p -> p.getNurseLevel() == 2).collect(Collectors.toList());
|
|
|
+ List<NurseConfigBean> dosageLvl = nurseConfigBeanList.stream().filter(p -> p.getNurseLevel() == 3).collect(Collectors.toList());
|
|
|
+ List<NurseConfigBean> allerayLvl = nurseConfigBeanList.stream().filter(p -> p.getNurseLevel() == 4).collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (int i = 0; i < nurseConfigTitleIds.length; i++) {
|
|
|
+ NurseConfigItem item = new NurseConfigItem();
|
|
|
+ //护理名称
|
|
|
+ item.setNurseConfigTitle(BaseApp.getContext().getString(nurseConfigTitleIds[i]));
|
|
|
+ //护理级别名称和对应床号
|
|
|
+ List<NurseConfigLevel> configLevelList = new ArrayList<>();
|
|
|
+ for (int j = 0; j < 4; j++) {
|
|
|
+ NurseConfigLevel configLevel = new NurseConfigLevel();
|
|
|
+ switch (i) {
|
|
|
+ case 0:
|
|
|
+ if (gradeLvl != null && j < gradeLvl.size()) {
|
|
|
+ configLevel.setNurseConfigLevel(gradeLvl.get(j).getValue());
|
|
|
+ long id = gradeLvl.get(j).getId();
|
|
|
+ configLevel.setNurseConfigContent(getNurseConfigNumber(id));
|
|
|
+ } else {
|
|
|
+ configLevel.setNurseConfigLevel("");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ if (insulateLvl != null && j < insulateLvl.size()) {
|
|
|
+ configLevel.setNurseConfigLevel(insulateLvl.get(j).getValue());
|
|
|
+ long id = gradeLvl.get(j).getId();
|
|
|
+ configLevel.setNurseConfigContent(getNurseConfigNumber(id));
|
|
|
+ } else {
|
|
|
+ configLevel.setNurseConfigLevel("");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ if (dietLvl != null && j < dietLvl.size()) {
|
|
|
+ configLevel.setNurseConfigLevel(dietLvl.get(j).getValue());
|
|
|
+ long id = gradeLvl.get(j).getId();
|
|
|
+ configLevel.setNurseConfigContent(getNurseConfigNumber(id));
|
|
|
+ } else {
|
|
|
+ configLevel.setNurseConfigLevel("");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ if (dosageLvl != null && j < dosageLvl.size()) {
|
|
|
+ configLevel.setNurseConfigLevel(dosageLvl.get(j).getValue());
|
|
|
+ long id = gradeLvl.get(j).getId();
|
|
|
+ configLevel.setNurseConfigContent(getNurseConfigNumber(id));
|
|
|
+ } else {
|
|
|
+ configLevel.setNurseConfigLevel("");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ if (allerayLvl != null && j < allerayLvl.size()) {
|
|
|
+ configLevel.setNurseConfigLevel(allerayLvl.get(j).getValue());
|
|
|
+ long id = gradeLvl.get(j).getId();
|
|
|
+ configLevel.setNurseConfigContent(getNurseConfigNumber(id));
|
|
|
+ } else {
|
|
|
+ configLevel.setNurseConfigLevel("");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ configLevelList.add(configLevel);
|
|
|
+ }
|
|
|
+ item.setNurseConfigLevelList(configLevelList);
|
|
|
+ nurseConfigItemList.add(item);
|
|
|
+ }
|
|
|
+ return nurseConfigItemList;
|
|
|
+ } else {
|
|
|
+ return defaultNurseConfigItems();
|
|
|
}
|
|
|
- return nurseConfigItemList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getNurseConfigNumber(long configLevelId) {
|
|
|
+ String bedNo = "";
|
|
|
+ if (patientInfoBeanList != null && bedFrameBeanList != null) {
|
|
|
+ //通过护理项ID查找对应所有病人
|
|
|
+ List<PatientInfoBean> patients = patientInfoBeanList.stream().filter(p -> p.getGradeLevel() == configLevelId).collect(Collectors.toList());
|
|
|
+ //通过病人信息查找对应床位号
|
|
|
+ for (PatientInfoBean bean : patients) {
|
|
|
+ for (HospitalFrameBean frameBean : bedFrameBeanList) {
|
|
|
+ if (bean.getFrameId().longValue() == frameBean.getId().longValue()) {
|
|
|
+ bedNo = bedNo + frameBean.getName() + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return bedNo;
|
|
|
}
|
|
|
|
|
|
private String getString(int resId) {
|