|
@@ -123,6 +123,63 @@ public class AHomePageFacade extends HomePageServiceImpl{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 病案首页编辑功能
|
|
|
+ *
|
|
|
+ * @param aHomePageIngVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public RespDTO<Map<String, Object>> executeHomePageEdit(AHomePageIngVO aHomePageIngVO) {
|
|
|
+ if (aHomePageIngVO.getHomePages() != null && aHomePageIngVO.getHomePages().size() > 0) {
|
|
|
+ //验证数据有效性
|
|
|
+ for (AHomePageVO aHomePageVO : aHomePageIngVO.getHomePages()) {
|
|
|
+ /*if("".equals(aHomePageVO.getHomePageId())) {
|
|
|
+ return RespDTO.onError("请输入病案首页编号!");
|
|
|
+ }else */
|
|
|
+ if (aHomePageVO.getHospitalId() == null) {
|
|
|
+ return RespDTO.onError("请输入医院编码!");
|
|
|
+ } else if ("".equals(aHomePageVO.getBehospitalCode())) {
|
|
|
+ return RespDTO.onError("请输入病人住院编码!");
|
|
|
+ }
|
|
|
+ //出院诊断
|
|
|
+ if (aHomePageVO.getLeaveDiags() != null && aHomePageVO.getLeaveDiags().size() > 0) {
|
|
|
+ for (AHomeDiagnoseVO aHomeDiagnoseVO : aHomePageVO.getLeaveDiags()) {
|
|
|
+ /*if("".equals(aHomeDiagnoseVO.getHomePageId())) {
|
|
|
+ return RespDTO.onError("出院诊断未输入病案首页编号!");
|
|
|
+ }else*/
|
|
|
+ if (aHomeDiagnoseVO.getHospitalId() == null) {
|
|
|
+ return RespDTO.onError("出院诊断未输入医院编码!");
|
|
|
+ } else if ("".equals(aHomeDiagnoseVO.getDiagnoseOrderNo())) {
|
|
|
+ return RespDTO.onError("出院诊断未输入顺序号!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ;
|
|
|
+
|
|
|
+ //住院手术
|
|
|
+ if (aHomePageVO.getOperations() != null && aHomePageVO.getOperations().size() > 0) {
|
|
|
+ for (AHomeOperationVO aHomeOperationVO : aHomePageVO.getOperations()) {
|
|
|
+ /* if("".equals(aHomeOperationVO.getHomePageId())) {
|
|
|
+ return RespDTO.onError("住院手术未输入病案首页编号!");
|
|
|
+ }else*/
|
|
|
+ if (aHomeOperationVO.getHospitalId() == null) {
|
|
|
+ return RespDTO.onError("住院手术未输入医院编码!");
|
|
|
+ } else if ("".equals(aHomeOperationVO.getOperationOrderNo())) {
|
|
|
+ return RespDTO.onError("住院手术未输入顺序号!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载数据
|
|
|
+ updateHomePageEdit(aHomePageIngVO);
|
|
|
+ //评分后返回结构体
|
|
|
+ return homePageIng(aHomePageIngVO);
|
|
|
+ } else {
|
|
|
+ return RespDTO.onError("未接收到数据!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 更新数据到数据库
|
|
|
* @param aHomePageIngVO
|
|
@@ -148,6 +205,297 @@ public class AHomePageFacade extends HomePageServiceImpl{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 编辑功能更新数据到数据库
|
|
|
+ *
|
|
|
+ * @param aHomePageIngVO
|
|
|
+ */
|
|
|
+ private void updateHomePageEdit(AHomePageIngVO aHomePageIngVO) {
|
|
|
+ try {
|
|
|
+ List<HomePage> homePageList = Lists.newArrayList();
|
|
|
+ aHomePageIngVO.getHomePages().stream().forEach(s -> {
|
|
|
+ HomePage homePage1 = this.getOne(new QueryWrapper<HomePage>()
|
|
|
+ .eq("behospital_code", s.getBehospitalCode()), false);
|
|
|
+ if (homePage1 != null) {
|
|
|
+ s.setHomePageId(homePage1.getHomePageId());
|
|
|
+ }
|
|
|
+ //初始化入参
|
|
|
+ HomePage homePage = new HomePage();
|
|
|
+ BeanUtil.copyProperties(s, homePage);
|
|
|
+// homePage.setBirthday(DateUtil.parseDate(s.getBirthday()));
|
|
|
+ if (StringUtil.isNotEmpty(s.getBirthday())) {
|
|
|
+ homePage.setBirthday(DateUtil.parseDate(s.getBirthday()));
|
|
|
+ }
|
|
|
+ if (StringUtil.isNotEmpty(s.getBehospitalDate())) {
|
|
|
+ homePage.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));
|
|
|
+ }
|
|
|
+ if (StringUtil.isNotEmpty(s.getLeaveHospitalDate())) {
|
|
|
+ homePage.setLeaveHospitalDate(DateUtil.parseDateTime(s.getLeaveHospitalDate()));
|
|
|
+ }
|
|
|
+ if (StringUtil.isNotEmpty(s.getQcDate())) {
|
|
|
+ homePage.setQcDate(DateUtil.parseDateTime(s.getQcDate()));
|
|
|
+ }
|
|
|
+ // 拆分年龄
|
|
|
+ if (StringUtil.isNotEmpty(s.getAgeType())) {
|
|
|
+ List<String> ageTypeList = SplitUtil.splitAge(s.getAgeType());
|
|
|
+ for (String ageType : ageTypeList) {
|
|
|
+ String[] ageTypeArr = ageType.split(",");
|
|
|
+ if (ageTypeArr.length != 2) continue;
|
|
|
+ homePage.setAge(ageTypeArr[0]);
|
|
|
+ homePage.setAgeUnit(ageTypeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分新生儿年龄
|
|
|
+ if (StringUtil.isNotBlank(s.getNewbornAgeUnit())) {
|
|
|
+ homePage.setNewbornMonth(s.getNewbornAgeUnit().replace("月", ""));
|
|
|
+// List<String> newbornAgeUnitList = SplitUtil.splitAge(s.getNewbornAgeUnit());
|
|
|
+// for (String newbornAgeUnit : newbornAgeUnitList) {
|
|
|
+// String[] newbornAgeUnitArr = newbornAgeUnit.split(",");
|
|
|
+// if (newbornAgeUnitArr.length != 2) continue;
|
|
|
+// if (newbornAgeUnitArr[1].equals("月")) {
|
|
|
+// homePage.setNewbornMonth(newbornAgeUnitArr[0]);
|
|
|
+// } else if (newbornAgeUnitArr[1].equals("天")) {
|
|
|
+// homePage.setNewbornDay(newbornAgeUnitArr[0]);
|
|
|
+// }
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分新生儿出生体重
|
|
|
+ if (StringUtil.isNotBlank(s.getNewbornWeightUnit())) {
|
|
|
+ List<String> newbornWeightUnitList = SplitUtil.splitWeight(s.getNewbornWeightUnit());
|
|
|
+ for (String newbornWeightUnit : newbornWeightUnitList) {
|
|
|
+ String[] newbornWeightUnitArr = newbornWeightUnit.split(",");
|
|
|
+ if (newbornWeightUnitArr.length != 2) continue;
|
|
|
+ homePage.setNewbornWeight(newbornWeightUnitArr[0]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分新生儿入院体重
|
|
|
+ if (StringUtil.isNotBlank(s.getNewbornBehospitalWeightUnit())) {
|
|
|
+ List<String> newbornBehospitalWeightUnitList = SplitUtil.splitWeight(s.getNewbornBehospitalWeightUnit());
|
|
|
+ for (String newbornBehospitalWeightUnit : newbornBehospitalWeightUnitList) {
|
|
|
+ String[] newbornBehospitalWeightUnitArr = newbornBehospitalWeightUnit.split(",");
|
|
|
+ if (newbornBehospitalWeightUnitArr.length != 2) continue;
|
|
|
+ homePage.setNewbornBehospitalWeight(newbornBehospitalWeightUnitArr[0]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分总费用
|
|
|
+ if (StringUtil.isNotBlank(s.getBehospitalFee())) {
|
|
|
+ List<String> behospitalFeeList = SplitUtil.splitTotalFees(s.getBehospitalFee());
|
|
|
+ for (String fee : behospitalFeeList) {
|
|
|
+ String[] feeArr = fee.split(",");
|
|
|
+ if (feeArr.length != 2) continue;
|
|
|
+ if (feeArr[0].equals("总费用")) {
|
|
|
+ homePage.setTotalFee(feeArr[1]);
|
|
|
+ } else if (feeArr[0].equals("自付金额")) {
|
|
|
+ homePage.setOwnFee(feeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分综合医疗服务类
|
|
|
+ if (StringUtil.isNotBlank(s.getGeneralMedicalFee())) {
|
|
|
+ List<String> generalMedicalFeeList = SplitUtil.splitFees(s.getGeneralMedicalFee());
|
|
|
+ for (String fee : generalMedicalFeeList) {
|
|
|
+ String[] feeArr = fee.split(",");
|
|
|
+ if (feeArr.length != 2) continue;
|
|
|
+ if (feeArr[0].equals("一般医疗服务费")) {
|
|
|
+ homePage.setGeneralFee(feeArr[1]);
|
|
|
+ } else if (feeArr[0].equals("一般治疗服务费")) {
|
|
|
+ homePage.setServiceFee(feeArr[1]);
|
|
|
+ } else if (feeArr[0].equals("护理费")) {
|
|
|
+ homePage.setNurseFee(feeArr[1]);
|
|
|
+ } else if (feeArr[0].equals("其他费用")) {
|
|
|
+ homePage.setOtherFee(feeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分诊断类
|
|
|
+ if (StringUtil.isNotBlank(s.getDiagnoseTypeFee())) {
|
|
|
+ List<String> diagnoseTypeFeeList = SplitUtil.splitFees(s.getDiagnoseTypeFee());
|
|
|
+ for (String diagnoseTypeFee : diagnoseTypeFeeList) {
|
|
|
+ String[] diagnoseTypeFeeArr = diagnoseTypeFee.split(",");
|
|
|
+ if (diagnoseTypeFeeArr.length != 2) continue;
|
|
|
+ if (diagnoseTypeFeeArr[0].equals("病理诊断费")) {
|
|
|
+ homePage.setPathologyFee(diagnoseTypeFeeArr[1]);
|
|
|
+ } else if (diagnoseTypeFeeArr[0].equals("实验室诊断费")) {
|
|
|
+ homePage.setLabFee(diagnoseTypeFeeArr[1]);
|
|
|
+ } else if (diagnoseTypeFeeArr[0].equals("影像学诊断费")) {
|
|
|
+ homePage.setPacsFee(diagnoseTypeFeeArr[1]);
|
|
|
+ } else if (diagnoseTypeFeeArr[0].equals("临床诊断项目费")) {
|
|
|
+ homePage.setClinicDiagnoseFee(diagnoseTypeFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分治疗类
|
|
|
+ if (StringUtil.isNotBlank(s.getTreatFee())) {
|
|
|
+ List<String> treatFeeList = SplitUtil.splitFees(s.getTreatFee());
|
|
|
+ for (String treatFee : treatFeeList) {
|
|
|
+ String[] treatFeeArr = treatFee.split(",");
|
|
|
+ if (treatFeeArr.length != 2) continue;
|
|
|
+ if (treatFeeArr[0].equals("非手术治疗项目费")) {
|
|
|
+ homePage.setNotOperationFee(treatFeeArr[1]);
|
|
|
+ } else if (treatFeeArr[0].equals("临床物理治疗费")) {
|
|
|
+ homePage.setClinicPhysicFee(treatFeeArr[1]);
|
|
|
+ } else if (treatFeeArr[0].equals("手术治疗费")) {
|
|
|
+ homePage.setOperationTreatFee(treatFeeArr[1]);
|
|
|
+ } else if (treatFeeArr[0].equals("麻醉费")) {
|
|
|
+ homePage.setAnaesthesiaFee(treatFeeArr[1]);
|
|
|
+ } else if (treatFeeArr[0].equals("手术费")) {
|
|
|
+ homePage.setOperationFee(treatFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分康复类
|
|
|
+ if (StringUtil.isNotBlank(s.getHealthFee())) {
|
|
|
+ List<String> healthFeeList = SplitUtil.splitFees(s.getHealthFee());
|
|
|
+ for (String healthFee : healthFeeList) {
|
|
|
+ String[] healthFeeArr = healthFee.split(",");
|
|
|
+ if (healthFeeArr.length != 2) continue;
|
|
|
+ if (healthFeeArr[0].equals("康复费")) {
|
|
|
+ homePage.setHealthTypeFee(healthFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分中医类
|
|
|
+ if (StringUtil.isNotBlank(s.getChnFee())) {
|
|
|
+ List<String> chnFeeList = SplitUtil.splitFees(s.getChnFee());
|
|
|
+ for (String chnFee : chnFeeList) {
|
|
|
+ String[] chnFeeArr = chnFee.split(",");
|
|
|
+ if (chnFeeArr.length != 2) continue;
|
|
|
+ if (chnFeeArr[0].equals("中医治疗费")) {
|
|
|
+ homePage.setChnTreatFee(chnFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分西药类
|
|
|
+ if (StringUtil.isNotBlank(s.getWesternFee())) {
|
|
|
+ List<String> westernFeeList = SplitUtil.splitFees(s.getWesternFee());
|
|
|
+ for (String westernFee : westernFeeList) {
|
|
|
+ String[] westernFeeArr = westernFee.split(",");
|
|
|
+ if (westernFeeArr.length != 2) continue;
|
|
|
+ if (westernFeeArr[0].equals("西药费")) {
|
|
|
+ homePage.setWesternMedFee(westernFeeArr[1]);
|
|
|
+ } else if (westernFeeArr[0].equals("抗菌药物费用")) {
|
|
|
+ homePage.setAntibiosisFee(westernFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分中药类
|
|
|
+ if (StringUtil.isNotBlank(s.getChnMedicineFee())) {
|
|
|
+ List<String> chnMedicineFeeList = SplitUtil.splitFees(s.getChnMedicineFee());
|
|
|
+ for (String chnMedicineFee : chnMedicineFeeList) {
|
|
|
+ String[] chnMedicineFeeArr = chnMedicineFee.split(",");
|
|
|
+ if (chnMedicineFeeArr.length != 2) continue;
|
|
|
+ if (chnMedicineFeeArr[0].equals("中成药费")) {
|
|
|
+ homePage.setChnMedFee(chnMedicineFeeArr[1]);
|
|
|
+ } else if (chnMedicineFeeArr[0].equals("中草药费")) {
|
|
|
+ homePage.setChnHerbFee(chnMedicineFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分血液类
|
|
|
+ if (StringUtil.isNotBlank(s.getBloodTypeFee())) {
|
|
|
+ List<String> bloodTypeFeeList = SplitUtil.splitFees(s.getBloodTypeFee());
|
|
|
+ for (String bloodTypeFee : bloodTypeFeeList) {
|
|
|
+ String[] bloodTypeFeeArr = bloodTypeFee.split(",");
|
|
|
+ if (bloodTypeFeeArr.length != 2) continue;
|
|
|
+ if (bloodTypeFeeArr[0].equals("血费")) {
|
|
|
+ homePage.setBloodFee(bloodTypeFeeArr[1]);
|
|
|
+ } else if (bloodTypeFeeArr[0].equals("白蛋白类制品费")) {
|
|
|
+ homePage.setAlbumenFee(bloodTypeFeeArr[1]);
|
|
|
+ } else if (bloodTypeFeeArr[0].equals("球蛋白类制品费")) {
|
|
|
+ homePage.setGlobulinFee(bloodTypeFeeArr[1]);
|
|
|
+ } else if (bloodTypeFeeArr[0].equals("凝血因子类制品费")) {
|
|
|
+ homePage.setBloodFactorFee(bloodTypeFeeArr[1]);
|
|
|
+ } else if (bloodTypeFeeArr[0].equals("细胞因子类制品费")) {
|
|
|
+ homePage.setCellFactorFee(bloodTypeFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分检查类
|
|
|
+ if (StringUtil.isNotBlank(s.getMaterialFee())) {
|
|
|
+ List<String> materialFeeList = SplitUtil.splitFees(s.getMaterialFee());
|
|
|
+ for (String materialFee : materialFeeList) {
|
|
|
+ String[] materialFeeArr = materialFee.split(",");
|
|
|
+ if (materialFeeArr.length != 2) continue;
|
|
|
+ if (materialFeeArr[0].equals("检查用一次性医用材料费")) {
|
|
|
+ homePage.setCheckMaterialFee(materialFeeArr[1]);
|
|
|
+ } else if (materialFeeArr[0].equals("治疗用一次性医用材料费")) {
|
|
|
+ homePage.setTreatMaterialFee(materialFeeArr[1]);
|
|
|
+ } else if (materialFeeArr[0].equals("手术用一次性医用材料费")) {
|
|
|
+ homePage.setOperationMaterialFee(materialFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分治疗类
|
|
|
+ if (StringUtil.isNotBlank(s.getOtherLeftFee())) {
|
|
|
+ List<String> otherLeftFeeList = SplitUtil.splitFees(s.getOtherLeftFee());
|
|
|
+ for (String otherLeftFee : otherLeftFeeList) {
|
|
|
+ String[] otherLeftFeeArr = otherLeftFee.split(",");
|
|
|
+ if (otherLeftFeeArr.length != 2) continue;
|
|
|
+ if (otherLeftFeeArr[0].equals("其他费")) {
|
|
|
+ homePage.setOtherTypeFee(otherLeftFeeArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分其他类
|
|
|
+ if (StringUtil.isNotBlank(s.getIsDiagnoseFit())) {
|
|
|
+ List<String> isDiagnoseFitList = SplitUtil.checkDiagnosis(s.getIsDiagnoseFit());
|
|
|
+ for (String isDiagnoseFit : isDiagnoseFitList) {
|
|
|
+ String[] isDiagnoseFitArr = isDiagnoseFit.split(",");
|
|
|
+ if (isDiagnoseFitArr.length != 2) continue;
|
|
|
+ if (isDiagnoseFitArr[0].equals("门诊与出院")) {
|
|
|
+ homePage.setIsOutpatientBehospital(isDiagnoseFitArr[1]);
|
|
|
+ } else if (isDiagnoseFitArr[0].equals("入院与出院")) {
|
|
|
+ homePage.setIsLeaveBehospital(isDiagnoseFitArr[1]);
|
|
|
+ } else if (isDiagnoseFitArr[0].equals("术前与术后")) {
|
|
|
+ homePage.setIsOperationBeforeAfter(isDiagnoseFitArr[1]);
|
|
|
+ } else if (isDiagnoseFitArr[0].equals("临床与病理")) {
|
|
|
+ homePage.setIsClinicPathology(isDiagnoseFitArr[1]);
|
|
|
+ } else if (isDiagnoseFitArr[0].equals("放射与病理")) {
|
|
|
+ homePage.setIsRadiatePathology(isDiagnoseFitArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拆分抢救次数
|
|
|
+ if (StringUtil.isNotBlank(s.getRescueOverview())) {
|
|
|
+ List<String> rescueOverviewList = SplitUtil.splitRescueTimes(s.getRescueOverview());
|
|
|
+ // 第一个是抢救次数,第二个是成功次数
|
|
|
+ if (rescueOverviewList.size() == 2) {
|
|
|
+ homePage.setRescueNum(rescueOverviewList.get(0));
|
|
|
+ homePage.setRescueSuccessNum(rescueOverviewList.get(1));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// sendDataDealFacade.sendInfo(s.getBehospitalCode());
|
|
|
+
|
|
|
+ homePageList.add(homePage);
|
|
|
+
|
|
|
+ //初始化诊断和手术,并同步到数据库
|
|
|
+ aHomeDiagnoseInfoFacade.executeHomeDiagnose(s.getLeaveDiags());//首页诊断
|
|
|
+ aHomeOperationInfoFacade.executeHomeOperation(s.getOperations());//首页手术
|
|
|
+ });
|
|
|
+ execute(homePageList);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage(), e);
|
|
|
+ aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页", "", JSON.toJSONString(aHomePageIngVO), "", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 评分后返回结构体
|
|
|
* @param aHomePageIngVO
|
|
@@ -246,7 +594,7 @@ public class AHomePageFacade extends HomePageServiceImpl{
|
|
|
if (homePageList != null && homePageList.size() > 0) {
|
|
|
homePageList.stream().forEach(s -> {
|
|
|
HomePage homePage = this.getOne(new QueryWrapper<HomePage>()
|
|
|
- .eq("home_page_id", s.getHomePageId())
|
|
|
+// .eq("home_page_id", s.getHomePageId())
|
|
|
.eq("hospital_id", s.getHospitalId())
|
|
|
.eq("behospital_code", s.getBehospitalCode()), false);
|
|
|
if (homePage != null) {
|