zhizhi wu 4 years ago
parent
commit
b14270aca7
  1. 6
      src/main/java/com/ccsens/carbasics/bean/dto/PatientDto.java
  2. 26
      src/main/java/com/ccsens/carbasics/bean/vo/OcrVo.java
  3. 4
      src/main/java/com/ccsens/carbasics/bean/vo/PatientVo.java
  4. 18
      src/main/java/com/ccsens/carbasics/service/FirstAidService.java
  5. 2
      src/main/resources/mapper_dao/FirstAidDao.xml
  6. 10
      src/main/resources/mapper_dao/FirstAidRecordDao.xml
  7. 4
      src/main/resources/mapper_dao/OrganizationDao.xml

6
src/main/java/com/ccsens/carbasics/bean/dto/PatientDto.java

@ -144,9 +144,9 @@ public class PatientDto {
@Data
@ApiModel("修改急救信息")
public static class UpdatePatient{
@NotNull(message = "请输入项目id")
@ApiModelProperty("项目id")
private Long projectId;
// @NotNull(message = "请输入项目id")
// @ApiModelProperty("项目id")
// private Long projectId;
@NotNull(message = "请输入急救id")
@ApiModelProperty("急救id")
private Long firstAidId;

26
src/main/java/com/ccsens/carbasics/bean/vo/OcrVo.java

@ -2,6 +2,7 @@ package com.ccsens.carbasics.bean.vo;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.util.baidu.BaiDuVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -37,14 +38,27 @@ public class OcrVo {
words.forEach(wordNode ->{
String word = wordNode.getWords();
if (word.startsWith(idCardName)) {
this.name = word.substring(2);
this.name = word.substring(idCardName.length());
} else if (word.startsWith(idCardSex)) {
String sexWord = word.substring(2,3);
this.sex = "女".equals(sexWord) ? (byte)0 : (byte)1;
this.nation = word.substring(5);
int sexIndex = 2;
if (word.length() > sexIndex) {
String sexWord = word.substring(sexIndex,sexIndex +1);
this.sex = "女".equals(sexWord) ? (byte)0 : (byte)1;
}
int nationIndex = 5;
if (word.length() > nationIndex) {
this.nation = word.substring(nationIndex);
}
} else if (word.startsWith(idCardNo)) {
this.idCardNo = word.substring(6);
this.age = IdcardUtil.getAgeByIdCard(this.idCardNo);
int idCardIndex = 6;
int idCardMinLength = 15;
if (word.length() > idCardIndex) {
this.idCardNo = word.substring(6);
}
if (StrUtil.isNotBlank(this.idCardNo) && this.idCardNo.length() >= idCardMinLength) {
this.age = IdcardUtil.getAgeByIdCard(this.idCardNo);
}
}
});
}

4
src/main/java/com/ccsens/carbasics/bean/vo/PatientVo.java

@ -126,11 +126,13 @@ public class PatientVo {
@ApiModelProperty("患者姓名")
private String name;
@ApiModelProperty("性别 0女 1男")
private byte gender;
private Byte gender;
@ApiModelProperty("民族")
private String nation;
@ApiModelProperty("证件号")
private String idcard;
@ApiModelProperty("疑似诊断信息")
private String suspected;
}
@Data

18
src/main/java/com/ccsens/carbasics/service/FirstAidService.java

@ -13,12 +13,8 @@ import com.ccsens.carbasics.bean.vo.FirstAidLogVo;
import com.ccsens.carbasics.bean.vo.FirstAidVo;
import com.ccsens.carbasics.bean.vo.OrganizationVo;
import com.ccsens.carbasics.bean.vo.PatientVo;
import com.ccsens.carbasics.persist.dao.FirstAidDao;
import com.ccsens.carbasics.persist.dao.FirstAidLogDao;
import com.ccsens.carbasics.persist.dao.*;
import com.ccsens.carbasics.persist.dao.FirstAidMemberDao;
import com.ccsens.carbasics.persist.dao.OrganizationDao;
import com.ccsens.carbasics.persist.dao.OrganizationMemberDao;
import com.ccsens.carbasics.persist.mapper.*;
import com.ccsens.carbasics.util.Constant;
import com.ccsens.carbasics.util.DefaultCodeError;
@ -67,6 +63,8 @@ public class FirstAidService implements IFirstAidService{
@Resource
private FirstAidRecordLogMapper firstAidRecordLogMapper;
@Resource
private PatientDao patientDao;
@Resource
private RedisUtil redisUtil;
@ -213,7 +211,17 @@ public class FirstAidService implements IFirstAidService{
getPatient.setGender(firstAids.get(0).getGender());
getPatient.setNation(firstAids.get(0).getNation());
getPatient.setIdcard(firstAids.get(0).getIdcard());
// 查找疑似病例
FirstAidRecordExample recordExample = new FirstAidRecordExample();
recordExample.createCriteria().andFirstAidIdEqualTo(firstAids.get(0).getId()).andQuestionCodeEqualTo(Constant.QuestionCode.CJBL_YSBL);
recordExample.setOrderByClause("id desc limit 1");
List<FirstAidRecord> firstAidRecords = firstAidRecordMapper.selectByExample(recordExample);
if (CollectionUtil.isNotEmpty(firstAidRecords)) {
getPatient.setSuspected(firstAidRecords.get(0).getAnswer());
}
}
return getPatient;
}

2
src/main/resources/mapper_dao/FirstAidDao.xml

@ -15,7 +15,7 @@
and r.question_code = 'CYQK-CYSJ' and r.rec_status = 0
left join t_qcp_first_aid_record r1 on a.id = r1.first_aid_id and r1.rec_status = 0
<choose>
<when test="param.firstAidType == 0">and r1.question_code='JBXX-FBSJ'</when>
<when test="param.firstAidType == 0">and r1.question_code='JBXX-FBTime'</when>
<when test="param.firstAidType == 1">and r1.question_code='CYQK-LYFS'</when>
</choose>
left join t_qcp_first_aid_record r2 on a.id = r2.first_aid_id and r2.rec_status = 0

10
src/main/resources/mapper_dao/FirstAidRecordDao.xml

@ -5,7 +5,7 @@
<select id="countTimeWindowPatient" resultType="java.lang.Long">
select count(*) from t_qcp_first_aid a, t_qcp_first_aid_record r1 , t_qcp_first_aid_record r2
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBSJ'
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBTime'
and a.id = r2.first_aid_id and r2.question_code = 'JBXX-DYSJ'
and r2.answer + 0 &gt;= #{startTime} and r2.answer + 0 &lt;= #{endTime}
<foreach collection="hospitalIds" item="id" separator="," open="and a.hospital_id in (" close=")">
@ -101,7 +101,7 @@
<otherwise>FROM_UNIXTIME(r2.answer/1000,'%Y-%m-%d') as date,</otherwise>
</choose>
count(*) as total from t_qcp_first_aid a, t_qcp_first_aid_record r1 , t_qcp_first_aid_record r2
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBSJ'
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBTime'
and a.id = r2.first_aid_id and r2.question_code = 'JBXX-DYSJ'
and r2.answer + 0 &gt;= #{startTime} and r2.answer + 0 &lt;= #{endTime}
<foreach collection="hospitalIds" item="id" separator="," open="and a.hospital_id in (" close=")">
@ -184,7 +184,7 @@
t_qcp_first_aid_record r2
WHERE
a.id = r1.first_aid_id
AND r1.question_code = 'JBXX-FBSJ'
AND r1.question_code = 'JBXX-FBTime'
AND a.id = r2.first_aid_id
AND r2.question_code = 'JBXX-DYSJ'
AND r2.answer + 0 &gt;= #{startTime}
@ -393,7 +393,7 @@
WHERE
a.id = r1.first_aid_id
AND a.id = r2.first_aid_id
AND r1.question_code = 'JBXX-FBSJ'
AND r1.question_code = 'JBXX-FBTime'
AND a.id = r2.first_aid_id
AND r2.question_code = 'JBXX-DYSJ'
AND r2.answer + 0 &gt;= #{startTime}
@ -540,7 +540,7 @@
t_qcp_first_aid_record r2
WHERE
a.id = r1.first_aid_id
AND r1.question_code = 'JBXX-FBSJ'
AND r1.question_code = 'JBXX-FBTime'
AND a.id = r2.first_aid_id
AND r1.question_code = 'JBXX-DYSJ'
AND r2.answer + 0 &gt;= #{startTime}

4
src/main/resources/mapper_dao/OrganizationDao.xml

@ -150,7 +150,7 @@
<choose>
<when test="type == 0">
select a.hospital_id, count(*) as total from t_qcp_first_aid a, t_qcp_first_aid_record r1 , t_qcp_first_aid_record r2
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBSJ'
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBTime'
and a.id = r2.first_aid_id and r2.question_code = 'JBXX-DYSJ'
and r2.answer - r1.answer &gt; 6 * 60 * 60 * 1000
and a.rec_status = 0 and r1.rec_status = 0 and r2.rec_status = 0
@ -168,7 +168,7 @@
(select
a.hospital_id,
count(*) as total from t_qcp_first_aid a, t_qcp_first_aid_record r1 , t_qcp_first_aid_record r2
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBSJ'
where a.id = r1.first_aid_id and r1.question_code = 'JBXX-FBTime'
and a.id = r2.first_aid_id and r2.question_code = 'JBXX-DYSJ'
and r2.answer - r1.answer &lt; 6 * 60 * 60 * 1000
and a.rec_status = 0 and r1.rec_status = 0 and r2.rec_status = 0

Loading…
Cancel
Save