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:通过搜索条件查询患者病例的信息")
@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) {
log.info("添加患者病例信息:{}",params);
log.info("通过搜索条件查询病例信息:{}",params);
PageInfo<PatientVo.SelPatient> selPatientListPageInfo= patientService.selPatientMesList(params.getParam(),0L);
log.info("添加患者病例信息成功");
log.info("通过搜索条件查询病例信息成功");
return JsonResponse.newInstance().ok(selPatientListPageInfo);
}
@ApiOperation(value = "查询搜索条件", notes = "w:查询搜索条件")
@RequestMapping(value = "/selSearchCriteriaList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<QuestionVo.ReportCodeVo>> selSearchCriteriaList() {
List<QuestionVo.ReportCodeVo> selSearchCriteriaList= patientService.selSearchCriteriaList();
log.info("通过查询搜索条件");
log.info("查询搜索条件");
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")
private Long[] inpatientId;
@ApiModelProperty("试题id")
private Long id;
private Long testQuestionsId;
@ApiModelProperty("录入状态")
private Byte inputStatus;
@ApiModelProperty("医院id")
private Long hospitalId;
@ApiModelProperty("住院号")
private String hospitalization="";
}
@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);
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

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

@ -241,13 +241,14 @@ public class PatientService implements IPatientService {
@Override
public List<StatisticVo.SelGroupNum> countAnalysis(StatisticDto.SelBinLCount param, Long userId) {
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;
for (int i = 0; i < param.getInpatientId().length; i++) {
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.getList().add(selGroupList);
selGroupNumsList.add(selGroupNum);
}
return selGroupNumsList;
}

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

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

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

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