|
@@ -9,12 +9,14 @@ import com.diagbot.aggregate.ResultStatisticsAggregate;
|
|
|
import com.diagbot.dto.*;
|
|
|
import com.diagbot.entity.QcCasesEntry;
|
|
|
import com.diagbot.entity.SysHospitalSet;
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
import com.diagbot.util.*;
|
|
|
import com.diagbot.vo.*;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.ibatis.annotations.Param;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -1255,22 +1257,141 @@ public class ConsoleFacade {
|
|
|
behospitalPageSet(behospitalPageVO);
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
IPage<QualityControlDTO> records = behospitalInfoFacade.getQualityControl(behospitalPageVO);
|
|
|
+ List<QualityControlDTO> qualityControlDTO = records.getRecords();
|
|
|
long endTime1 = System.currentTimeMillis();
|
|
|
System.out.println("endTime1 = " + (endTime1-startTime));
|
|
|
- /* //模块总扣分
|
|
|
- List<QualityControlDTO>caseData= behospitalInfoFacade.getQualityCase(behospitalPageVO);
|
|
|
+ //模块总扣分
|
|
|
+ CaseScoreVO caseScoreVO = new CaseScoreVO();
|
|
|
+ BeanUtil.copyProperties(behospitalPageVO,caseScoreVO);
|
|
|
+ List<QualityControlDTO>caseData= behospitalInfoFacade.getQualityCase(caseScoreVO);
|
|
|
long endTime2 = System.currentTimeMillis();
|
|
|
System.out.println("endTime2 = " + (endTime2-endTime1));
|
|
|
- //
|
|
|
- List<QualityControlDTO>sorceData= behospitalInfoFacade.getQualitySorce(behospitalPageVO);
|
|
|
+ List<QualityControlDTO>sorceData= behospitalInfoFacade.getQualitySorce(caseScoreVO);
|
|
|
long endTime3 = System.currentTimeMillis();
|
|
|
- System.out.println("endTime3 = " + (endTime3-endTime2));*/
|
|
|
+ System.out.println("endTime3 = " + (endTime3-endTime2));
|
|
|
+ if( ListUtil.isNotEmpty(qualityControlDTO)){
|
|
|
+ for (QualityControlDTO totalData : qualityControlDTO) {
|
|
|
+ if( ListUtil.isNotEmpty(caseData)){
|
|
|
+ for (QualityControlDTO qualityControlDTO2 : caseData) {
|
|
|
+ if(totalData.getBehospitalCode().equals(qualityControlDTO2.getBehospitalCode())){
|
|
|
+ totalData.setAdmissionNoteTolScore(qualityControlDTO2.getAdmissionNoteTolScore() == null ? 0d: qualityControlDTO2.getAdmissionNoteTolScore());
|
|
|
+ totalData.setFirstCourseNoteTolScore(qualityControlDTO2.getFirstCourseNoteTolScore() == null ? 0d: qualityControlDTO2.getFirstCourseNoteTolScore());
|
|
|
+ totalData.setMedHomePageTolScore(qualityControlDTO2.getMedHomePageTolScore() == null ? 0d: qualityControlDTO2.getMedHomePageTolScore());
|
|
|
+ totalData.setDocAdviceNoteTolScore(qualityControlDTO2.getDocAdviceNoteTolScore() == null ? 0d: qualityControlDTO2.getDocAdviceNoteTolScore());
|
|
|
+ totalData.setCourseRecordTolScore(qualityControlDTO2.getCourseRecordTolScore() == null ? 0d: qualityControlDTO2.getCourseRecordTolScore());
|
|
|
+ totalData.setOperationInfoTolScore(qualityControlDTO2.getOperationInfoTolScore() == null ? 0d: qualityControlDTO2.getOperationInfoTolScore());
|
|
|
+ totalData.setDischargeNoteTolScore(qualityControlDTO2.getDischargeNoteTolScore() == null ? 0d: qualityControlDTO2.getDischargeNoteTolScore());
|
|
|
+ totalData.setTotalScore(qualityControlDTO2.getTotalScore()== null ? 0d : qualityControlDTO2.getTotalScore());
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ };}
|
|
|
+ if( ListUtil.isNotEmpty(sorceData)){
|
|
|
+ for (QualityControlDTO qualityControlDTO2 : sorceData) {
|
|
|
+ if(totalData.getBehospitalCode().equals(qualityControlDTO2.getBehospitalCode())) {
|
|
|
+ totalData.setAdmissionNote(qualityControlDTO2.getAdmissionNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ totalData.setFirstCourseNote(qualityControlDTO2.getFirstCourseNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ totalData.setMedHomePage(qualityControlDTO2.getMedHomePage()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ totalData.setDocAdviceNote(qualityControlDTO2.getDocAdviceNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ totalData.setCourseRecord(qualityControlDTO2.getCourseRecord()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ totalData.setOperationInfo(qualityControlDTO2.getOperationInfo()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ totalData.setDischargeNote(qualityControlDTO2.getDischargeNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
|
|
|
+ //存在单项否决
|
|
|
+ Double medHomePageScorTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+ Double admissionNoteScoreTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+ Double firstCourseNoteScoreTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+ Double courseRecordScoreTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+ Double operationInfoScoreTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+ Double dischargeNoteScoreTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+ Double docAdviceNoteScoreTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
|
|
|
+
|
|
|
+ //存在单项否决
|
|
|
+ Double medHomePageScore = totalData.getMedHomePageTolScore()+medHomePageScorTh;
|
|
|
+ Double medHomePageScoreTw = qualityControlDTO2.getMedHomePageScoreOn()+medHomePageScorTh;
|
|
|
+ if(qualityControlDTO2.getMedHomePageScoreOn()>=totalData.getMedHomePageTolScore()){
|
|
|
+ totalData.setMedHomePageScore( medHomePageScore == null ? 0d : medHomePageScore);
|
|
|
+ }else{
|
|
|
+ totalData.setMedHomePageScore(medHomePageScoreTw == null ? 0d : medHomePageScoreTw);
|
|
|
+ }
|
|
|
+
|
|
|
+ Double admissionNoteTolScore = totalData.getAdmissionNoteTolScore()+admissionNoteScoreTh;
|
|
|
+ Double admissionNoteTolScoreTw= qualityControlDTO2.getAdmissionNoteScoreOn()+admissionNoteScoreTh;
|
|
|
+ if(qualityControlDTO2.getAdmissionNoteScoreOn()>=totalData.getAdmissionNoteTolScore()){
|
|
|
+ totalData.setAdmissionNoteScore( admissionNoteTolScore == null ? 0d : admissionNoteTolScore);
|
|
|
+ }else{
|
|
|
+ totalData.setAdmissionNoteScore( admissionNoteTolScoreTw == null ? 0d : admissionNoteTolScoreTw);
|
|
|
+ }
|
|
|
+
|
|
|
+ Double firstCourseNoteScore = totalData.getFirstCourseNoteTolScore()+firstCourseNoteScoreTh;
|
|
|
+ Double firstCourseNoteScoreTw = qualityControlDTO2.getFirstCourseNoteScoreOn()+firstCourseNoteScoreTh;
|
|
|
+ if(qualityControlDTO2.getFirstCourseNoteScoreOn()>=totalData.getFirstCourseNoteTolScore()){
|
|
|
+ totalData.setFirstCourseNoteScore(firstCourseNoteScore == null ? 0d : firstCourseNoteScore);
|
|
|
+ }else{
|
|
|
+ totalData.setFirstCourseNoteScore(firstCourseNoteScoreTw == null ? 0d : firstCourseNoteScoreTw);
|
|
|
+ }
|
|
|
+ Double courseRecordScore = totalData.getCourseRecordTolScore()+courseRecordScoreTh;
|
|
|
+ Double courseRecordScoreTw = qualityControlDTO2.getCourseRecordScoreOn()+courseRecordScoreTh;
|
|
|
+ if(qualityControlDTO2.getCourseRecordScoreOn()>=totalData.getCourseRecordTolScore()){
|
|
|
+ totalData.setCourseRecordScore(courseRecordScore == null ? 0d : courseRecordScore);
|
|
|
+ }else{
|
|
|
+ totalData.setCourseRecordScore(courseRecordScoreTw == null ? 0d : courseRecordScoreTw);
|
|
|
+ }
|
|
|
+ Double operationInfoScore = totalData.getOperationInfoTolScore()+operationInfoScoreTh;
|
|
|
+ Double operationInfoScoreTw = qualityControlDTO2.getOperationInfoScoreOn()+operationInfoScoreTh;
|
|
|
+ if(qualityControlDTO2.getOperationInfoScoreOn()>=totalData.getOperationInfoTolScore()){
|
|
|
+ totalData.setOperationInfoScore(operationInfoScore == null ? 0d : operationInfoScore);
|
|
|
+ }else{
|
|
|
+ totalData.setOperationInfoScore(operationInfoScoreTw == null ? 0d : operationInfoScoreTw);
|
|
|
+ }
|
|
|
+ Double dischargeNoteScore = totalData.getDischargeNoteTolScore()+dischargeNoteScoreTh;
|
|
|
+ Double dischargeNoteScoreTw = qualityControlDTO2.getDischargeNoteScoreOn()+dischargeNoteScoreTh;
|
|
|
+ if(qualityControlDTO2.getDischargeNoteScoreOn()>=totalData.getDischargeNoteTolScore()){
|
|
|
+ totalData.setDischargeNoteScore(dischargeNoteScore == null ? 0d : dischargeNoteScore);
|
|
|
+ }else{
|
|
|
+ totalData.setDischargeNoteScore(dischargeNoteScoreTw == null ? 0d : dischargeNoteScoreTw);
|
|
|
+ }
|
|
|
+ Double docAdviceNoteScore =totalData.getDocAdviceNoteTolScore()+docAdviceNoteScoreTh;
|
|
|
+ Double docAdviceNoteScoreTw =qualityControlDTO2.getDocAdviceNoteScoreOn()+docAdviceNoteScoreTh;
|
|
|
+ if(qualityControlDTO2.getDocAdviceNoteScoreOn()>=totalData.getDocAdviceNoteTolScore()){
|
|
|
+ totalData.setDocAdviceNoteScore(docAdviceNoteScore == null ? 0d : docAdviceNoteScore);
|
|
|
+ }else{
|
|
|
+ totalData.setDocAdviceNoteScore(docAdviceNoteScoreTw == null ? 0d : docAdviceNoteScoreTw);
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ };}
|
|
|
+ Double mainScore = totalData.getMedHomePageScore()+totalData.getAdmissionNoteScore()+totalData.getFirstCourseNoteScore()+
|
|
|
+ totalData.getCourseRecordScore()+totalData.getOperationInfoScore()+totalData.getDischargeNoteScore()+totalData. getDocAdviceNoteScore();
|
|
|
+ Double otherScore = new Double(0d);
|
|
|
+ Double otherCaseScore = null;
|
|
|
+ Double res = new Double(120d);
|
|
|
+ Double resPr = new Double(100d);
|
|
|
+ String scoreType = "0";
|
|
|
+ scoreType = sysHospitalSetFacade.getScoreType(caseScoreVO.getHospitalId());
|
|
|
+ if ("1".equals(scoreType)) {
|
|
|
+ otherScore = (resPr-totalData.getTotalScore()-mainScore);
|
|
|
+ } else if ("0".equals(scoreType)) {
|
|
|
+ otherScore = res-(totalData.getTotalScore()*res/resPr)-mainScore;
|
|
|
+ }
|
|
|
+ otherCaseScore = (double) Math.round(otherScore * 10) / 10;
|
|
|
+ totalData.setOtherCaseScore(otherCaseScore == null ? 0d : otherCaseScore );
|
|
|
+
|
|
|
+
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //
|
|
|
+ long endTime4= System.currentTimeMillis();
|
|
|
+ System.out.println("endTime4 = " + (endTime4-endTime3));
|
|
|
+
|
|
|
|
|
|
/* List<QualityControlDTO>records= behospitalInfoFacade.getQualityCaseSorce(behospitalPageVO);
|
|
|
long endTime3 = System.currentTimeMillis();*/
|
|
|
// System.out.println("endTime3 = " + (endTime3-startTime));
|
|
|
-
|
|
|
- // System.out.println("总耗时 = " + (endTime3-startTime));
|
|
|
+ System.out.println("总耗时 = " + (endTime3-startTime));
|
|
|
return records;
|
|
|
|
|
|
}
|