Browse Source

拉代码

recovery
wang1007152140 5 years ago
parent
commit
7a7bcfebf4
  1. 29
      tcm/src/main/java/com/ccsens/tcm/api/ConferenceRecordsController.java
  2. 2
      tcm/src/main/java/com/ccsens/tcm/api/ImportController.java
  3. 35
      tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java
  4. 21
      tcm/src/main/java/com/ccsens/tcm/bean/dto/ConRecDto.java
  5. 26
      tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java
  6. 7
      tcm/src/main/java/com/ccsens/tcm/bean/vo/ConRecVo.java
  7. 61
      tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java
  8. 53
      tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java
  9. 23
      tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java
  10. 57
      tcm/src/main/java/com/ccsens/tcm/service/ConferenceService.java
  11. 20
      tcm/src/main/java/com/ccsens/tcm/service/IConferenceService.java
  12. 19
      tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java
  13. 2
      tcm/src/main/java/com/ccsens/tcm/service/ImportService.java
  14. 25
      tcm/src/main/java/com/ccsens/tcm/service/PatientService.java
  15. 2
      tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java
  16. 84
      tcm/src/main/resources/mapper_dao/PatientDao.xml

29
tcm/src/main/java/com/ccsens/tcm/api/ConferenceRecordsController.java

@ -2,7 +2,10 @@ package com.ccsens.tcm.api;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.tcm.bean.dto.ConRecDto;
import com.ccsens.tcm.bean.dto.StatisticDto;
import com.ccsens.tcm.bean.vo.ConRecVo;
import com.ccsens.tcm.bean.vo.StatisticVo;
import com.ccsens.tcm.service.IConferenceService;
import com.ccsens.tcm.service.IPatientService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
@ -18,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author wang
@ -29,6 +33,10 @@ import javax.annotation.Resource;
public class ConferenceRecordsController {
@Resource
private IPatientService patientService;
@Resource
private IConferenceService conferenceService;
@MustLogin
@ApiOperation(value = "查询会议记录", notes = "w:根据会议记录查询条件查询会议记录")
@RequestMapping(value = "/selConRec", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -38,4 +46,25 @@ public class ConferenceRecordsController {
log.info("查询会议记录基本信息成功");
return JsonResponse.newInstance().ok(selConRecVoPageInfo);
}
@MustLogin
@ApiOperation(value = "添加会议记录", notes = "zy:")
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ConRecVo.SelConRecVo> saveConference(@ApiParam @Validated @RequestBody QueryDto<ConRecDto.SaveConference> params) {
log.info("统计每个医院的完成情况:{}",params);
ConRecVo.SelConRecVo saveConference = conferenceService.saveConference(params.getParam());
log.info("查找每个医院的病例完成情况");
return JsonResponse.newInstance().ok(saveConference);
}
@MustLogin
@ApiOperation(value = "分享会议记录", notes = "zy:")
@RequestMapping(value = "/share", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ConRecVo.ShareConRecVo> shareConference(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
log.info("统计每个医院的完成情况:{}",params);
ConRecVo.ShareConRecVo shareConference = conferenceService.shareConference(params.getParam());
log.info("查找每个医院的病例完成情况");
return JsonResponse.newInstance().ok(shareConference);
}
}

2
tcm/src/main/java/com/ccsens/tcm/api/ImportController.java

@ -17,7 +17,7 @@ import java.io.File;
* @author
*/
@Slf4j
@Api(tags = "试题相关接口")
@Api(tags = "导入试题相关接口")
@RestController
@RequestMapping("/import")
public class ImportController {

35
tcm/src/main/java/com/ccsens/tcm/api/StatisticalAnalysisController.java

@ -32,6 +32,7 @@ import java.util.List;
public class StatisticalAnalysisController {
@Resource
private IPatientService patientService;
@MustLogin
@ApiOperation(value = "每日病例统计", notes = "w:每日病例统计")
@RequestMapping(value = "/countCase", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -45,9 +46,39 @@ public class StatisticalAnalysisController {
@ApiOperation(value = "病例分析", notes = "w:病例分析")
@RequestMapping(value = "/countAnalysis", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<StatisticVo.SelGroupNum>> countAnalysis(@ApiParam @Validated @RequestBody QueryDto<StatisticDto.SelBinLCount> params) {
log.info("病例分析参数:{}",params);
List<StatisticVo.SelGroupNum> selGroupNum= patientService.countAnalysis(params.getParam(),params.getUserId());
log.info("病例分析参数:{}", params);
List<StatisticVo.SelGroupNum> selGroupNum = patientService.countAnalysis(params.getParam(), params.getUserId());
log.info("病例分析调用完成");
return JsonResponse.newInstance().ok(selGroupNum);
}
@MustLogin
@ApiOperation(value = "统计病例的完成情况", notes = "zy:")
@RequestMapping(value = "/complete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticVo.StatisticsComplete> statisticsComplete(@ApiParam @Validated @RequestBody QueryDto<StatisticDto.Complete> params) {
log.info("统计病例的完成情况:{}",params);
StatisticVo.StatisticsComplete statisticsComplete = patientService.statisticsComplete(params.getParam());
log.info("查找统计病例的完成情况");
return JsonResponse.newInstance().ok(statisticsComplete);
}
@MustLogin
@ApiOperation(value = "统计每个医院的完成情况", notes = "zy:")
@RequestMapping(value = "/hospital/complete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticVo.CompleteHospital> completeHospital(@ApiParam @Validated @RequestBody QueryDto params) {
log.info("统计每个医院的完成情况:{}",params);
List<StatisticVo.CompleteHospital> completeHospital = patientService.completeHospital();
log.info("查找每个医院的病例完成情况");
return JsonResponse.newInstance().ok(completeHospital);
}
@MustLogin
@ApiOperation(value = "统计医生的病例的完成情况", notes = "zy:")
@RequestMapping(value = "/doctor/complete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticVo.CompleteDoctor> completeDoctor(@ApiParam @Validated @RequestBody QueryDto<StatisticDto.CompleteDoctor> params) {
log.info("统计每个医院的完成情况:{}",params);
List<StatisticVo.CompleteDoctor> completeDoctors = patientService.completeDoctor(params.getParam());
log.info("查找每个医院的病例完成情况");
return JsonResponse.newInstance().ok(completeDoctors);
}
}

21
tcm/src/main/java/com/ccsens/tcm/bean/dto/ConRecDto.java

@ -39,4 +39,25 @@ public class ConRecDto {
@ApiModelProperty("每页数量")
private Integer pageSize=10;
}
@Data
@ApiModel("查询会议记录搜索条件")
public static class SaveConference {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private Date endTime;
@ApiModelProperty("会议地点")
private String place;
@ApiModelProperty("主持人")
private String host;
@ApiModelProperty("'参会人'")
private String participants;
@ApiModelProperty("内容")
private String discussionContent;
@ApiModelProperty("内容")
private String meetingMinutes;
}
}

26
tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java

@ -27,7 +27,7 @@ public class StatisticDto {
}
@Data
@ApiModel("病例分析传参")
public static class SelBinLCount{
public static class SelBinLCount {
@ApiModelProperty("搜索条件集合,不包含时间格式的条件")
private List<PatientDto.Condition> conditionList;
@ApiModelProperty("搜索条件集合,是包含时间格式的条件")
@ -37,4 +37,28 @@ public class StatisticDto {
@ApiModelProperty("试题id")
private Long id;
}
@Data
@ApiModel("统计病例完成情况的查询条件")
public static class Complete{
@ApiModelProperty("医院id 为空则查询全部")
private Long hospitalId;
@ApiModelProperty("主治大夫id 为空则查询全部")
private Long userId;
}
@Data
@ApiModel("查看医院的的病例完成情况")
public static class CompleteHospital{
@ApiModelProperty("主治大夫id 为空则查询全部")
private Long userId;
}
@Data
@ApiModel("查看医院下的医生的病例完成情况")
public static class CompleteDoctor{
@NotNull(message = "医院id不能为空")
@ApiModelProperty("医院id")
private Long hospitalId;
}
}

7
tcm/src/main/java/com/ccsens/tcm/bean/vo/ConRecVo.java

@ -34,4 +34,11 @@ public class ConRecVo {
@ApiModelProperty("会议纪要")
private String meetingMinutes;
}
@Data
@ApiModel("查询会议记录搜索条件")
public static class ShareConRecVo {
@ApiModelProperty("二维码路径")
private String path;
}
}

61
tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java

@ -10,71 +10,74 @@ import java.util.List;
*/
public class QuestionVo {
@Data
@ApiModel("类型信息")
public static class ReportCodeVo {
//id
@ApiModelProperty("id")
private Long id;
//code
@ApiModelProperty("code")
private String code;
//名称
@ApiModelProperty("名称")
private String name;
//上级code
@ApiModelProperty("上级code")
private String parentCode;
//是否为必做
@ApiModelProperty("是否为必做 0否 1是")
private Byte must;
//第几级code
@ApiModelProperty("第几级code")
private Byte level;
//排序
@ApiModelProperty("排序")
private Integer sort;
//备注
@ApiModelProperty("备注")
private String remark;
//记录类型
@ApiModelProperty("记录类型")
private Byte reportType;
//子类型
@ApiModelProperty("子类型")
private List<ReportCodeVo> subReportCodes;
//题目信息
@ApiModelProperty("题目信息")
private List<CodeQuestionVo> questionVos;
}
@Data
@ApiModel("题目")
public static class CodeQuestionVo {
//id
@ApiModelProperty("id")
private Long id;
//题目名称
@ApiModelProperty("题目名称")
private String question;
//code
@ApiModelProperty("code")
private String code;
//排序
@ApiModelProperty("排序")
private Integer sort;
//单位例如 g/L
@ApiModelProperty("单位例如 g/L")
private String units;
//类型 1单行文本,2多行文本,3单选,4多选,5下拉菜单,6日期,7图片(文件),8单选+其他
// 9多选+其他,10下拉+其他,11多选+其他+说明,12单选+关联其他内容 13数字类型
@ApiModelProperty("类型 1单行文本,2多行文本,3单选,4多选,5下拉菜单,6日期,7图片(文件),8单选+其他" +
" 9多选+其他,10下拉+其他,11多选+其他+说明,12单选+关联其他内容 13数字类型")
private Byte type;
//关联的选项id
@ApiModelProperty("关联的选项id")
private Long relevanceOptionId;
//是否是搜索条件
@ApiModelProperty("是否是搜索条件")
private Byte searchCriteria;
//备注
@ApiModelProperty("备注")
private String remark;
//选项信息
@ApiModelProperty("选项信息")
private List<QuestionOptionVo> optionVos;
}
@Data
@ApiModel("选项")
public static class QuestionOptionVo {
//id
@ApiModelProperty("id")
private Long id;
//题目id
@ApiModelProperty("题目id")
private Long questionId;
//排序
@ApiModelProperty("排序")
private Integer sort;
//显示值
@ApiModelProperty("显示值")
private String showValue;
//提交值
@ApiModelProperty("提交值")
private String submitValue;
//选择之后的操作 0无 1单行文本 2多行文本 3关联其他题目
@ApiModelProperty("选择之后的操作 0无 1单行文本 2多行文本 3关联其他题目")
private Byte afterOperation;
//选择之后关联的题目
@ApiModelProperty("选择之后关联的题目")
private List<CodeQuestionVo> questionVos;
}

53
tcm/src/main/java/com/ccsens/tcm/bean/vo/StatisticVo.java

@ -32,4 +32,57 @@ public class StatisticVo {
@ApiModelProperty("数量")
private Integer nums;
}
@Data
@ApiModel("统计病例的完成情况")
public static class StatisticsComplete{
@ApiModelProperty("已完成")
private Integer completed;
@ApiModelProperty("未完成")
private Integer unfinished;
@ApiModelProperty("进行中")
private Integer underway;
@ApiModelProperty("数据采集超时")
private Integer overtime;
@ApiModelProperty("废弃的")
private Integer discarded;
}
@Data
@ApiModel("医院的的病例完成情况")
public static class CompleteHospital{
@ApiModelProperty("医院id")
private Long hospitalId;
@ApiModelProperty("医院名")
private String hospitalName;
@ApiModelProperty("已完成")
private Integer completed;
@ApiModelProperty("未完成")
private Integer unfinished;
@ApiModelProperty("进行中")
private Integer underway;
@ApiModelProperty("数据采集超时")
private Integer overtime;
@ApiModelProperty("废弃的")
private Integer discarded;
}
@Data
@ApiModel("医院的的病例完成情况")
public static class CompleteDoctor{
@ApiModelProperty("医生id")
private Long doctorId;
@ApiModelProperty("医院名")
private String doctorName;
@ApiModelProperty("已完成")
private Integer completed;
@ApiModelProperty("未完成")
private Integer unfinished;
@ApiModelProperty("进行中")
private Integer underway;
@ApiModelProperty("数据采集超时")
private Integer overtime;
@ApiModelProperty("废弃的")
private Integer discarded;
}
}

23
tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java

@ -24,6 +24,29 @@ public interface PatientDao {
Integer countCase(@Param("param") StatisticDto.SelCount param,@Param("inputStatus") byte inputStatus);
<<<<<<< HEAD
StatisticVo.SelGroupList countAnalysis(List<PatientDto.Condition> conditionList, List<PatientDto.ConditionDate> conditionListDate, Long aLong, Long id);
=======
/**
* 统计病例完成情况
* @param hospitalId 医院id
* @param userId 主治医生id
* @return 返回完成情况
*/
StatisticVo.StatisticsComplete statisticsComplete(@Param("hospitalId")Long hospitalId, @Param("userId")Long userId);
/**
* 查询各个医院的病例完成情况
* @return 返回完成情况按医院分组
*/
List<StatisticVo.CompleteHospital> completeHospital();
/**
* 查看医院下的每个医生的完成情况
* @param hospitalId 医院id
* @return 返回完成情况按医生分组
*/
List<StatisticVo.CompleteDoctor> completeDoctor(@Param("hospitalId")Long hospitalId);
>>>>>>> 56dd44ed6563a7cf642ed1ee775eca6980ebe8ca
}

57
tcm/src/main/java/com/ccsens/tcm/service/ConferenceService.java

@ -0,0 +1,57 @@
package com.ccsens.tcm.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Snowflake;
import com.ccsens.tcm.bean.dto.ConRecDto;
import com.ccsens.tcm.bean.po.ConferenceRecords;
import com.ccsens.tcm.bean.po.ConferenceRecordsExample;
import com.ccsens.tcm.bean.vo.ConRecVo;
import com.ccsens.tcm.config.BeanConfig;
import com.ccsens.tcm.persist.mapper.ConferenceRecordsMapper;
import com.ccsens.util.PropUtil;
import com.ccsens.util.QrCodeUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ConferenceService implements IConferenceService{
@Resource
private Snowflake snowflake;
@Resource
private ConferenceRecordsMapper conferenceRecordsMapper;
@Override
public ConRecVo.SelConRecVo saveConference(ConRecDto.SaveConference param) {
//新建会议记录对象
ConferenceRecords conferenceRecords = new ConferenceRecords();
conferenceRecords.setId(snowflake.nextId());
BeanUtil.copyProperties(param,conferenceRecords);
//加入数据库
conferenceRecordsMapper.insertSelective(conferenceRecords);
//返回
ConRecVo.SelConRecVo selConRecVo = new ConRecVo.SelConRecVo();
BeanUtil.copyProperties(conferenceRecords,selConRecVo);
return selConRecVo;
}
@Override
public ConRecVo.ShareConRecVo shareConference(Object param) throws Exception {
//TODO 获取会议记录的地址
String conferencePath = "www.baidu.com";
//生成二维码
String fileName = QrCodeUtil.getQrCodeWithUtf8(conferencePath, PropUtil.path);
//返回
ConRecVo.ShareConRecVo shareConRecVo = new ConRecVo.ShareConRecVo();
shareConRecVo.setPath(PropUtil.imgDomain + fileName);
return shareConRecVo;
}
}

20
tcm/src/main/java/com/ccsens/tcm/service/IConferenceService.java

@ -0,0 +1,20 @@
package com.ccsens.tcm.service;
import com.ccsens.tcm.bean.dto.ConRecDto;
import com.ccsens.tcm.bean.vo.ConRecVo;
public interface IConferenceService {
/**
* 添加会议记录
* @param param 会议内容
* @return 返回会议内容
*/
ConRecVo.SelConRecVo saveConference(ConRecDto.SaveConference param);
/**
* 分享会议记录
* @param param
* @return 返回二维码路径
*/
ConRecVo.ShareConRecVo shareConference(Object param) throws Exception;
}

19
tcm/src/main/java/com/ccsens/tcm/service/IPatientService.java

@ -30,4 +30,23 @@ public interface IPatientService {
StatisticVo.SelCountS countCase(StatisticDto.SelCount param, Long userId);
List<StatisticVo.SelGroupNum> countAnalysis(StatisticDto.SelBinLCount param, Long userId);
/**
* 统计病例完成情况
* @param param 搜索的条件
* @return 返回完成的情况
*/
StatisticVo.StatisticsComplete statisticsComplete(StatisticDto.Complete param);
/**
* 统计各个医院的病例完成情况
* @return 返回每个医院的名字和
*/
List<StatisticVo.CompleteHospital> completeHospital();
/**
* 统计医院下的每个医生的完成情况
* @param param 医院id
* @return 返回每个医生的完成情况
*/
List<StatisticVo.CompleteDoctor> completeDoctor(StatisticDto.CompleteDoctor param);
}

2
tcm/src/main/java/com/ccsens/tcm/service/ImportService.java

@ -218,7 +218,7 @@ public class ImportService implements IImportService {
question.setSort(sort);
question.setType(objs.length>4 && StringUtil.checkNum(String.valueOf(objs[4]), false) ? Byte.parseByte(String.valueOf(objs[4])) : Constant.Question.QUESTION_SHOW_TYPE);
question.setUnits(objs.length>5 && StringUtils.isEmpty(objs[5]) ? Constant.STRING_DEFAULT : String.valueOf(objs[5]));
question.setSearchCriteria(objs.length>6 && StringUtil.checkNum(String.valueOf(objs[6]), false) ? Byte.parseByte(String.valueOf(objs[6])) : Constant.Question.QUESTION_SHOW_TYPE);
question.setSearchCriteria(objs.length>6 && StringUtil.checkNum(String.valueOf(objs[6]), false) ? Byte.parseByte(String.valueOf(objs[6])) : Constant.Question.SEARCH_CRITERIA);
question.setRemark(objs.length > 8 && !StringUtils.isEmpty(objs[8]) ? (String) objs[8] : Constant.STRING_DEFAULT);
question.setRelevanceOptionId(optionId == null ? 0 : optionId);

25
tcm/src/main/java/com/ccsens/tcm/service/PatientService.java

@ -182,7 +182,7 @@ public class PatientService implements IPatientService {
public List<QuestionVo.ReportCodeVo> selSearchCriteriaList() {
List<QuestionVo.ReportCodeVo> reportCodeVos=null;
List<Object> objects = redisUtil.lGet(Constant.Redis.CODE_QUESTION, 0, -1);
if (CollectionUtil.isEmpty(reportCodeVos)){
if (CollectionUtil.isEmpty(objects)){
throw new BaseException(CodeEnum.MESSAGEISNULL);
}
reportCodeVos = (List<QuestionVo.ReportCodeVo>)objects.get(0);
@ -245,4 +245,27 @@ public class PatientService implements IPatientService {
}
/**
* 统计病例完成情况
*/
@Override
public StatisticVo.StatisticsComplete statisticsComplete(StatisticDto.Complete param) {
return patientDao.statisticsComplete(param.getHospitalId(),param.getUserId());
}
/**
* 查看各个医院的病例完成情况
*/
@Override
public List<StatisticVo.CompleteHospital> completeHospital() {
return patientDao.completeHospital();
}
/**
* 查看医院下每个医生的完成情况
*/
@Override
public List<StatisticVo.CompleteDoctor> completeDoctor(StatisticDto.CompleteDoctor param) {
return patientDao.completeDoctor(param.getHospitalId());
}
}

2
tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java

@ -45,6 +45,8 @@ public class Constant {
public final static String ALL = "all";
/**默认题目类型*/
public final static byte QUESTION_SHOW_TYPE = 1;
/**默认不是搜索类型*/
public final static byte SEARCH_CRITERIA =0;
/**默认选项类型*/
public final static byte RULE_TYPE_DEFAULT = 1;
/**测评分类*/

84
tcm/src/main/resources/mapper_dao/PatientDao.xml

@ -130,6 +130,7 @@
and tpi.update_at &lt; #{param.endDate}
</if>
</select>
<<<<<<< HEAD
<select id="countAnalysis" resultType="com.ccsens.tcm.bean.vo.StatisticVo$SelGroupList">
select if(LOCATE('其他'),'其他',tpr.contents) as content,count(*) as nums from t_patient_information tpi left join t_patient_record tpr on tpi.id=tpr.patient_id and tpr.rec_status=0
where tpi.rec_status=0
@ -180,5 +181,88 @@
<if test="id!=null and id!=0">
group by content
</if>
=======
<select id="statisticsComplete" resultType="com.ccsens.tcm.bean.vo.StatisticVo$StatisticsComplete">
SELECT
MAX(CASE t.input_status WHEN 0 THEN nums ELSE 0 END ) unfinished,
MAX(CASE t.input_status WHEN 1 THEN nums ELSE 0 END ) underway,
MAX(CASE t.input_status WHEN 2 THEN nums ELSE 0 END ) completed,
MAX(CASE t.input_status WHEN 3 THEN nums ELSE 0 END ) overtime,
MAX(CASE t.input_status WHEN 4 THEN nums ELSE 0 END ) discarded
FROM(
SELECT
input_status,
count(*) as nums
FROM
t_patient_information
WHERE
rec_status = 0
<if test="hospitalId != null and hospitalId != 0">
and hospital_id = #{hospitalId}
</if>
<if test="userId != null and userId != 0">
and user_id = #{userId}
</if>
GROUP BY
input_status
) t
</select>
<select id="completeHospital" resultType="com.ccsens.tcm.bean.vo.StatisticVo$CompleteHospital">
SELECT
t.hospital_id as hospitalId,
t.`name` as hospitalName,
MAX(CASE t.input_status WHEN 0 THEN nums ELSE 0 END ) unfinished,
MAX(CASE t.input_status WHEN 1 THEN nums ELSE 0 END ) underway,
MAX(CASE t.input_status WHEN 2 THEN nums ELSE 0 END ) completed,
MAX(CASE t.input_status WHEN 3 THEN nums ELSE 0 END ) overtime,
MAX(CASE t.input_status WHEN 4 THEN nums ELSE 0 END ) discarded
FROM(
SELECT
i.hospital_id,
h.`name`,
i.input_status,
count(*) as nums
FROM
t_patient_information i
LEFT JOIN t_hospital h on i.hospital_id = h.id
WHERE
i.rec_status = 0
and h.rec_status = 0
GROUP BY
hospital_id,
input_status
) t
GROUP BY
t.hospital_id
</select>
<select id="completeDoctor" resultType="com.ccsens.tcm.bean.vo.StatisticVo$CompleteDoctor">
SELECT
t.user_id as doctorId,
t.`name` as doctorName,
MAX(CASE t.input_status WHEN 0 THEN nums ELSE 0 END ) unfinished,
MAX(CASE t.input_status WHEN 1 THEN nums ELSE 0 END ) underway,
MAX(CASE t.input_status WHEN 2 THEN nums ELSE 0 END ) completed,
MAX(CASE t.input_status WHEN 3 THEN nums ELSE 0 END ) overtime,
MAX(CASE t.input_status WHEN 4 THEN nums ELSE 0 END ) discarded
FROM(
SELECT
i.user_id,
d.`name`,
i.input_status,
count(*) as nums
FROM
t_patient_information i
LEFT JOIN t_doctor d on i.user_id = d.user_id
WHERE
i.rec_status = 0
and d.rec_status = 0
and i.hospital_id = #{hospitalId}
GROUP BY
i.user_id,
i.input_status
) t
GROUP BY
t.user_id
>>>>>>> 56dd44ed6563a7cf642ed1ee775eca6980ebe8ca
</select>
</mapper>
Loading…
Cancel
Save