Browse Source

修改病例分析

recovery
wang1007152140 5 years ago
parent
commit
99a3759e8e
  1. 6
      tcm/src/main/java/com/ccsens/tcm/api/PatientController.java
  2. 8
      tcm/src/main/java/com/ccsens/tcm/bean/dto/StatisticDto.java
  3. 14
      tcm/src/main/java/com/ccsens/tcm/persist/dao/PatientDao.java
  4. 5
      tcm/src/main/java/com/ccsens/tcm/service/PatientService.java
  5. 4
      tcm/src/main/resources/application.yml
  6. 174
      tcm/src/main/resources/mapper_dao/PatientDao.xml

6
tcm/src/main/java/com/ccsens/tcm/api/PatientController.java

@ -63,16 +63,16 @@ public class PatientController {
@ApiOperation(value = "通过搜索条件查询患者病例的信息", notes = "w:通过搜索条件查询患者病例的信息") @ApiOperation(value = "通过搜索条件查询患者病例的信息", notes = "w:通过搜索条件查询患者病例的信息")
@RequestMapping(value = "/selPatientMesList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/selPatientMesList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PageInfo<PatientVo.SelPatient>> selPatientMesList(@ApiParam @Validated @RequestBody QueryDto<PatientDto.SelPatlenConditionList> params) { public JsonResponse<PageInfo<PatientVo.SelPatient>> selPatientMesList(@ApiParam @Validated @RequestBody QueryDto<PatientDto.SelPatlenConditionList> params) {
log.info("添加患者病例信息:{}",params); log.info("通过搜索条件查询病例信息:{}",params);
PageInfo<PatientVo.SelPatient> selPatientListPageInfo= patientService.selPatientMesList(params.getParam(),0L); PageInfo<PatientVo.SelPatient> selPatientListPageInfo= patientService.selPatientMesList(params.getParam(),0L);
log.info("添加患者病例信息成功"); log.info("通过搜索条件查询病例信息成功");
return JsonResponse.newInstance().ok(selPatientListPageInfo); return JsonResponse.newInstance().ok(selPatientListPageInfo);
} }
@ApiOperation(value = "查询搜索条件", notes = "w:查询搜索条件") @ApiOperation(value = "查询搜索条件", notes = "w:查询搜索条件")
@RequestMapping(value = "/selSearchCriteriaList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/selSearchCriteriaList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<QuestionVo.ReportCodeVo>> selSearchCriteriaList() { public JsonResponse<List<QuestionVo.ReportCodeVo>> selSearchCriteriaList() {
List<QuestionVo.ReportCodeVo> selSearchCriteriaList= patientService.selSearchCriteriaList(); List<QuestionVo.ReportCodeVo> selSearchCriteriaList= patientService.selSearchCriteriaList();
log.info("通过查询搜索条件"); log.info("查询搜索条件");
return JsonResponse.newInstance().ok(selSearchCriteriaList); return JsonResponse.newInstance().ok(selSearchCriteriaList);
} }

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

@ -35,7 +35,13 @@ public class StatisticDto {
@ApiModelProperty("对照组id") @ApiModelProperty("对照组id")
private Long[] inpatientId; private Long[] inpatientId;
@ApiModelProperty("试题id") @ApiModelProperty("试题id")
private Long id; private Long testQuestionsId;
@ApiModelProperty("录入状态")
private Byte inputStatus;
@ApiModelProperty("医院id")
private Long hospitalId;
@ApiModelProperty("住院号")
private String hospitalization="";
} }
@Data @Data

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

@ -24,8 +24,18 @@ public interface PatientDao {
Integer countCase(@Param("param") StatisticDto.SelCount param,@Param("inputStatus") byte inputStatus); Integer countCase(@Param("param") StatisticDto.SelCount param,@Param("inputStatus") byte inputStatus);
/**
StatisticVo.SelGroupList countAnalysis(List<PatientDto.Condition> conditionList, List<PatientDto.ConditionDate> conditionListDate, Long aLong, Long id); *
* @param conditionList 没有时间条件
* @param conditionListDate 有时间条件
* @param inpatientId 对照组id
* @param testQuestionsId 测试题id
* @param hospitalization 住院号
* @param inputStatus 录入状态
* @param hospitalId 医院id
* @return
*/
StatisticVo.SelGroupList countAnalysis(List<PatientDto.Condition> conditionList, List<PatientDto.ConditionDate> conditionListDate, Long inpatientId, Long testQuestionsId,String hospitalization,Byte inputStatus,Long hospitalId);
/** /**
* 统计病例完成情况 * 统计病例完成情况
* @param hospitalId 医院id * @param hospitalId 医院id

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

@ -241,13 +241,14 @@ public class PatientService implements IPatientService {
@Override @Override
public List<StatisticVo.SelGroupNum> countAnalysis(StatisticDto.SelBinLCount param, Long userId) { public List<StatisticVo.SelGroupNum> countAnalysis(StatisticDto.SelBinLCount param, Long userId) {
List<StatisticVo.SelGroupNum> selGroupNumsList= new ArrayList<StatisticVo.SelGroupNum>(); List<StatisticVo.SelGroupNum> selGroupNumsList= new ArrayList<StatisticVo.SelGroupNum>();
if(param.getInpatientId()!=null && param.getInpatientId().length>0) if(param.getInpatientId()!=null && param.getInpatientId().length==0)
return selGroupNumsList; return selGroupNumsList;
for (int i = 0; i < param.getInpatientId().length; i++) { for (int i = 0; i < param.getInpatientId().length; i++) {
StatisticVo.SelGroupNum selGroupNum =new StatisticVo.SelGroupNum(); StatisticVo.SelGroupNum selGroupNum =new StatisticVo.SelGroupNum();
StatisticVo.SelGroupList selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(),param.getInpatientId()[i],param.getId()); StatisticVo.SelGroupList selGroupList= patientDao.countAnalysis(param.getConditionList(),param.getConditionListDate(),param.getInpatientId()[i],param.getTestQuestionsId(),param.getHospitalization(),param.getInputStatus(),param.getHospitalId());
selGroupNum.setInpatientId(param.getInpatientId()[i]); selGroupNum.setInpatientId(param.getInpatientId()[i]);
selGroupNum.getList().add(selGroupList); selGroupNum.getList().add(selGroupList);
selGroupNumsList.add(selGroupNum);
} }
return selGroupNumsList; return selGroupNumsList;
} }

4
tcm/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring: spring:
profiles: profiles:
active: test active: dev
include: common, util-test include: common, util-dev

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

@ -62,40 +62,50 @@
<if test="inputStatus !=null"> <if test="inputStatus !=null">
and tpi.input_status=#{inputStatus} and tpi.input_status=#{inputStatus}
</if> </if>
<if test="conditionList!=null and conditionList.size()!=0 and conditionListDate!=null and conditionListDate.size() !=0"> <if test="(conditionList!=null and conditionList.size()!=0 ) or (conditionListDate != null and conditionListDate.size() !=0 )">
AND tpi.id IN ( and tpi.id IN (
SELECT DISTINCT SELECT DISTINCT
( t.patient_id ) ( t.patient_id )
FROM FROM
( (
<trim suffixOverrides="INTERSECT"> <trim suffixOverrides="INTERSECT">
<foreach collection="conditionList" item="item"> <if test="conditionList!=null and conditionList.size()!=0 ">
SELECT <foreach collection="conditionList" item="item">
tpr.patient_id SELECT
FROM tpr.patient_id
t_patient_record tpr FROM
WHERE t_patient_record tpr
tpr.rec_status = 0 WHERE
AND tpr.test_questions_id = #{item.testQuestionsId} tpr.rec_status = 0
AND tpr.contents LIKE concat('%',#{item.contents},'%') AND tpr.test_questions_id = #{item.testQuestionsId}
INTERSECT <if test="item.contents!=null and item.contents!=''">
</foreach> AND tpr.contents LIKE concat('%',#{item.contents},'%')
<foreach collection="conditionListDate" item="item1"> </if>
SELECT INTERSECT
tpr.patient_id </foreach>
FROM </if>
t_patient_record tpr <if test="conditionListDate != null and conditionListDate.size() !=0 ">
WHERE <foreach collection="conditionListDate" item="item1">
tpr.rec_status = 0 SELECT
AND tpr.test_questions_id = #{item1.testQuestionsId} tpr.patient_id
AND tpr.contents &gt; #{item1.startTime} FROM
AND tpr.contents &lt; #{item1.endTime} t_patient_record tpr
INTERSECT WHERE
</foreach> tpr.rec_status = 0
</trim> AND tpr.test_questions_id = #{item1.testQuestionsId}
) t <if test="item1.startTime!=null and item1.startTime!=''">
) AND tpr.contents &gt; #{item1.startTime}
</if>> </if>
<if test="item1.endTime!=null and item1.endTime!=''">
AND tpr.contents &lt; #{item1.endTime}
</if>
INTERSECT
</foreach>
</if>
</trim>
) t
)
</if>
</select> </select>
<select id="selPatientInformationList" resultType="com.ccsens.tcm.bean.vo.PatientVo$SelPatient"> <select id="selPatientInformationList" resultType="com.ccsens.tcm.bean.vo.PatientVo$SelPatient">
SELECT SELECT
@ -147,9 +157,8 @@
<select id="countAnalysis" resultType="com.ccsens.tcm.bean.vo.StatisticVo$SelGroupList"> <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 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 where tpi.rec_status=0
and tpi.inpatient_id=#{aLong} <if test="testQuestionsId!=null and testQuestionsId!=0">
<if test="id!=null and id!=0"> and tpr.test_questions_id=#{testQuestionsId}
and tpr.test_questions_id=#{id}
</if> </if>
and tpi.id in ( and tpi.id in (
SELECT SELECT
@ -158,40 +167,64 @@
t_patient_information tpi left join t_inpatient ti on ti.rec_status=0 and ti.id=tpi.inpatient_id t_patient_information tpi left join t_inpatient ti on ti.rec_status=0 and ti.id=tpi.inpatient_id
WHERE WHERE
tpi.rec_status = 0 tpi.rec_status = 0
AND tpi.id IN ( <if test="hospitalId!=null and hospitalId !=0 ">
SELECT DISTINCT and tpi.hospital_id=#{hospitalId}
( t.patient_id ) </if>
FROM <if test="hospitalization!=null and hospitalization!=''">
( and tpi.hospitalization like concat('%',#{hospitalization},'%')
<trim suffixOverrides="INTERSECT"> </if>
<foreach collection="conditionList" item="item"> <if test="inpatientId !=null and inpatientId!=0">
SELECT and tpi.inpatient_id=#{inpatientId}
tpr.patient_id </if>
FROM <if test="inputStatus !=null">
t_patient_record tpr and tpi.input_status=#{inputStatus}
WHERE </if>
tpr.rec_status = 0 <if test="(conditionList!=null and conditionList.size()!=0 ) or (conditionListDate != null and conditionListDate.size() !=0 )">
AND tpr.test_questions_id = #{item.testQuestionsId} and tpi.id IN (
AND tpr.contents LIKE concat('%',#{item.contents},'%') SELECT DISTINCT
INTERSECT ( t.patient_id )
</foreach> FROM
<foreach collection="conditionListDate" item="item1"> (
SELECT <trim suffixOverrides="INTERSECT">
tpr.patient_id <if test="conditionList!=null and conditionList.size()!=0 ">
FROM <foreach collection="conditionList" item="item">
t_patient_record tpr SELECT
WHERE tpr.patient_id
tpr.rec_status = 0 FROM
AND tpr.test_questions_id = #{item1.testQuestionsId} t_patient_record tpr
AND tpr.contents &gt; #{item1.startTime} WHERE
AND tpr.contents &lt; #{item1.endTime} tpr.rec_status = 0
INTERSECT AND tpr.test_questions_id = #{item.testQuestionsId}
</foreach> <if test="item.contents!=null and item.contents!=''">
</trim> AND tpr.contents LIKE concat('%',#{item.contents},'%')
) t </if>
) INTERSECT
</foreach>
</if>
<if test="conditionListDate != null and conditionListDate.size() !=0 ">
<foreach collection="conditionListDate" item="item1">
SELECT
tpr.patient_id
FROM
t_patient_record tpr
WHERE
tpr.rec_status = 0
AND tpr.test_questions_id = #{item1.testQuestionsId}
<if test="item1.startTime!=null and item1.startTime!=''">
AND tpr.contents &gt; #{item1.startTime}
</if>
<if test="item1.endTime!=null and item1.endTime!=''">
AND tpr.contents &lt; #{item1.endTime}
</if>
INTERSECT
</foreach>
</if>
</trim>
) t
)
</if>
) )
<if test="id!=null and id!=0"> <if test="testQuestionsId!=null">
group by content group by content
</if> </if>
</select> </select>
@ -276,6 +309,5 @@
) t ) t
GROUP BY GROUP BY
t.user_id t.user_id
>>>>>>> 56dd44ed6563a7cf642ed1ee775eca6980ebe8ca
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save