zhizhi wu 4 years ago
parent
commit
0b3c439566
  1. 84
      src/main/java/com/ccsens/carbasics/service/FirstAidRecordService.java
  2. 2
      src/main/java/com/ccsens/carbasics/util/Constant.java
  3. 24
      src/main/resources/mapper_dao/FirstAidDao.xml
  4. 4
      src/main/resources/mapper_dao/FirstAidRecordDao.xml

84
src/main/java/com/ccsens/carbasics/service/FirstAidRecordService.java

@ -9,6 +9,7 @@ import com.ccsens.carbasics.bean.po.*;
import com.ccsens.carbasics.bean.vo.PatientVo;
import com.ccsens.carbasics.persist.dao.CodeParentDao;
import com.ccsens.carbasics.persist.dao.FirstAidDao;
import com.ccsens.carbasics.persist.dao.FirstAidLogDao;
import com.ccsens.carbasics.persist.dao.PatientDao;
import com.ccsens.carbasics.persist.mapper.CodeDictionariesMapper;
import com.ccsens.carbasics.persist.mapper.FirstAidRecordLogMapper;
@ -49,6 +50,8 @@ public class FirstAidRecordService implements IFirstAidRecordService {
private CodeParentDao codeParentDao;
@Resource
private FirstAidDao firstAidDao;
@Resource
private FirstAidLogDao firstAidLogDao;
@Override
@ -98,37 +101,8 @@ public class FirstAidRecordService implements IFirstAidRecordService {
}
FirstAid firstAid = firstAids.get(0);
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) {
// 创建/急救拒绝 不校验,允许修改
log.info("允许修改:{}", firstAid.getDataStatus());
} else if (firstAid.getDataStatus() == Constant.DataStatus.FirstAidPass.status) {
// 急救审核通过,急救不能修改
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.FIRST_AID);
param.getCodeAndAnswerList().forEach(codeAndAnswer -> {
if (children.contains(codeAndAnswer.getQuestionCode())) {
log.info("{}是急救的code,不能修改", codeAndAnswer.getQuestionCode() );
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
});
} else if (firstAid.getDataStatus() == Constant.DataStatus.DischargeRefuse.status) {
// 出院审核拒绝,只允许修改出院信息
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.DISCHARGE);
param.getCodeAndAnswerList().forEach(codeAndAnswer -> {
if (!children.contains(codeAndAnswer.getQuestionCode())) {
log.info("{}不是出院的code,不能修改", codeAndAnswer.getQuestionCode() );
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
});
} else if (firstAid.getDataStatus() == Constant.DataStatus.ApplyFor.status ){
// 申请修改/修改拒绝
} else {
// 出院通过
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
// 判断权限状态
aidStatus(param, firstAid);
//遍历传入的code
param.getCodeAndAnswerList().forEach(codeAndAnswer -> {
if(StrUtil.isNotEmpty(codeAndAnswer.getQuestionCode())) {
@ -146,7 +120,7 @@ public class FirstAidRecordService implements IFirstAidRecordService {
if(CollectionUtil.isNotEmpty(codeAndAnswer.getAnswer())){
//循环答案
codeAndAnswer.getAnswer().forEach(answer -> {
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), answer,param.getProjectId());
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), StrUtil.isBlank(answer) ? "" : answer,param.getProjectId());
});
}else {
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), "",param.getProjectId());
@ -156,6 +130,52 @@ public class FirstAidRecordService implements IFirstAidRecordService {
}
private void aidStatus(PatientDto.SaveAidRecordN param, FirstAid firstAid) {
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) {
// 创建/急救拒绝 不校验,允许修改
log.info("允许修改:{}", firstAid.getDataStatus());
} else if (firstAid.getDataStatus() == Constant.DataStatus.FirstAidPass.status) {
// 急救审核通过,急救不能修改
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.FIRST_AID);
param.getCodeAndAnswerList().forEach(codeAndAnswer -> {
if (children.contains(codeAndAnswer.getQuestionCode())) {
log.info("{}是急救的code,不能修改", codeAndAnswer.getQuestionCode() );
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
});
} else if (firstAid.getDataStatus() == Constant.DataStatus.DischargeRefuse.status) {
// 出院审核拒绝,只允许修改出院信息
pageChildCode(param);
} else if (firstAid.getDataStatus() == Constant.DataStatus.ApplyFor.status
|| firstAid.getDataStatus() == Constant.DataStatus.ApplyForRefuse.status){
// 申请修改/修改拒绝
// 出院是否审核通过过
FirstAidLogExample logExample = new FirstAidLogExample();
logExample.createCriteria().andFirstAidIdEqualTo(firstAid.getId())
.andOperationTypeEqualTo(Constant.DataStatus.DischargePass.status);
long l = firstAidLogDao.countByExample(logExample);
if (l > 0) {
// 有,则都不修改
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
} else {
pageChildCode(param);
}
} else {
// 出院通过
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
}
private void pageChildCode(PatientDto.SaveAidRecordN param) {
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.DISCHARGE);
param.getCodeAndAnswerList().forEach(codeAndAnswer -> {
if (!children.contains(codeAndAnswer.getQuestionCode())) {
log.info("{}不是出院的code,不能修改", codeAndAnswer.getQuestionCode() );
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
});
}
private void saveRecord(byte userType, Long userId, Long firstAidId, String code, String answer,Long projectId) {
//添加日志表,不管数据是否重复
FirstAidRecordLog firstAidRecordLog = new FirstAidRecordLog();

2
src/main/java/com/ccsens/carbasics/util/Constant.java

@ -59,7 +59,7 @@ public class Constant {
/**穿刺完成时间*/
public final static String TIME_CODE = "JRZL-CCSJ";
}
/**跑道图-机械再通例数*/
/**跑道图-脑出血例数*/
public final static class Ich {
public final static String NAME = "脑出血例数";
/**CT诊断结果*/

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

@ -16,31 +16,31 @@
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 == 1">and r1.question_code='CYQK-CYSJ'</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
<choose>
<when test="param.firstAidType == 0">and r2.question_code='JBXX-DYSJ'</when>
<when test="param.firstAidType == 1">and r2.question_code='CYQK-LYFS'</when>
<when test="param.firstAidType == 1">and r2.question_code='CYQK-CYSJ'</when>
</choose>
left join t_qcp_first_aid_record r3 on a.id = r3.first_aid_id and r3.question_code='CJBL-YSBL' and r3.rec_status = 0
where
<choose>
<when test="param.firstAidType == 0">r.id is null</when>
<when test="param.firstAidType == 1"> r.id is not null</when>
<otherwise>r.id is null</otherwise>
</choose>
<if test="param.name != null and param.name != ''">
and a.name like concat('%', #{param.name}, '%')
</if>
<choose>
<when test="param.type == 0">
and m.create_user_id = #{userId}
m.create_user_id = #{userId}
</when>
<when test="param.type == 1">
and m.record_user_id in (#{userId}, 0)
m.record_user_id in (#{userId}, 0)
</when>
</choose>
<choose>
<when test="param.firstAidType == 0"> and (r.id is null or r.answer = '')</when>
<when test="param.firstAidType == 1"> and (r.id is not null and r.answer != '')</when>
<otherwise>and (r.id is null or r.answer = '')</otherwise>
</choose>
<if test="param.name != null and param.name != ''">
and a.name like concat('%', #{param.name}, '%')
</if>
order by a.updated_at desc
</select>

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

@ -6,7 +6,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'
and a.id = r2.first_aid_id and r1.question_code = 'JBXX-DYSJ'
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=")">
#{id}
@ -102,7 +102,7 @@
</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'
and a.id = r2.first_aid_id and r1.question_code = 'JBXX-DYSJ'
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=")">
#{id}

Loading…
Cancel
Save