Browse Source

提交病例搜索修改sql

recovery
wang1007152140 4 years ago
parent
commit
ea5baebc8f
  1. 9
      tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java
  2. 77
      tcm/src/main/resources/mapper_dao/PatientDao.xml

9
tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java

@ -87,6 +87,15 @@ public class PatientDto {
@Data
@ApiModel("查询患者的搜索条件集合")
public static class SelPatlenConditionList{
@ApiModelProperty("医院id")
private Long hospitalId;
@ApiModelProperty("录入状态")
private Byte inputStatus;
@ApiModelProperty("对照组id")
private Long inpatientId;
@ApiModelProperty("住院号")
private String hospitalization="";
@ApiModelProperty("搜索条件集合,不包含时间格式的条件")
private List<Condition> conditionList;
@ApiModelProperty("搜索条件集合,是包含时间格式的条件")

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

@ -50,38 +50,52 @@
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
<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 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
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>>
</select>
<select id="selPatientInformationList" resultType="com.ccsens.tcm.bean.vo.PatientVo$SelPatient">
SELECT
@ -130,7 +144,6 @@
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
@ -181,7 +194,7 @@
<if test="id!=null and id!=0">
group by content
</if>
=======
</select>
<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,

Loading…
Cancel
Save