Browse Source

Merge branch 'master' of dd.tall.wiki:ccsens_wiki/carbasics

master
zy_Java 4 years ago
parent
commit
45eb48c2c7
  1. 84
      src/main/java/com/ccsens/carbasics/service/FirstAidRecordService.java
  2. 5
      src/main/java/com/ccsens/carbasics/service/FirstAidService.java
  3. 2
      src/main/java/com/ccsens/carbasics/util/Constant.java
  4. 24
      src/main/resources/mapper_dao/FirstAidDao.xml
  5. 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.bean.vo.PatientVo;
import com.ccsens.carbasics.persist.dao.CodeParentDao; import com.ccsens.carbasics.persist.dao.CodeParentDao;
import com.ccsens.carbasics.persist.dao.FirstAidDao; 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.dao.PatientDao;
import com.ccsens.carbasics.persist.mapper.CodeDictionariesMapper; import com.ccsens.carbasics.persist.mapper.CodeDictionariesMapper;
import com.ccsens.carbasics.persist.mapper.FirstAidRecordLogMapper; import com.ccsens.carbasics.persist.mapper.FirstAidRecordLogMapper;
@ -49,6 +50,8 @@ public class FirstAidRecordService implements IFirstAidRecordService {
private CodeParentDao codeParentDao; private CodeParentDao codeParentDao;
@Resource @Resource
private FirstAidDao firstAidDao; private FirstAidDao firstAidDao;
@Resource
private FirstAidLogDao firstAidLogDao;
@Override @Override
@ -98,37 +101,8 @@ public class FirstAidRecordService implements IFirstAidRecordService {
} }
FirstAid firstAid = firstAids.get(0); FirstAid firstAid = firstAids.get(0);
// 判断权限状态
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) { aidStatus(param, firstAid);
// 创建/急救拒绝 不校验,允许修改
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);
}
//遍历传入的code //遍历传入的code
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { param.getCodeAndAnswerList().forEach(codeAndAnswer -> {
if(StrUtil.isNotEmpty(codeAndAnswer.getQuestionCode())) { if(StrUtil.isNotEmpty(codeAndAnswer.getQuestionCode())) {
@ -146,7 +120,7 @@ public class FirstAidRecordService implements IFirstAidRecordService {
if(CollectionUtil.isNotEmpty(codeAndAnswer.getAnswer())){ if(CollectionUtil.isNotEmpty(codeAndAnswer.getAnswer())){
//循环答案 //循环答案
codeAndAnswer.getAnswer().forEach(answer -> { 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 { }else {
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), "",param.getProjectId()); 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) { private void saveRecord(byte userType, Long userId, Long firstAidId, String code, String answer,Long projectId) {
//添加日志表,不管数据是否重复 //添加日志表,不管数据是否重复
FirstAidRecordLog firstAidRecordLog = new FirstAidRecordLog(); FirstAidRecordLog firstAidRecordLog = new FirstAidRecordLog();

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

@ -383,13 +383,12 @@ public class FirstAidService implements IFirstAidService{
//判断病例是否已有医生加入 //判断病例是否已有医生加入
FirstAidMember firstAidMember = firstAidMemberDao.findByAidId(param.getFirstAidId()); FirstAidMember firstAidMember = firstAidMemberDao.findByAidId(param.getFirstAidId());
if (0 != firstAidMember.getRecordUserId() && ObjectUtil.isNotNull(firstAidMember.getRecordUserId())) { FirstAid firstAidInfo = firstAidDao.selectByPrimaryKey(param.getFirstAidId());
if (0 != firstAidMember.getRecordUserId() && ObjectUtil.isNotNull(firstAidMember.getRecordUserId()) && firstAidInfo.getProjectId() != null && firstAidInfo.getProjectId() != 0) {
throw new BaseException(DefaultCodeError.DOCTOR_HAS_JOINED); throw new BaseException(DefaultCodeError.DOCTOR_HAS_JOINED);
} }
//根据模板类型创建项目 //根据模板类型创建项目
FirstAid firstAidInfo = firstAidDao.selectByPrimaryKey(param.getFirstAidId());
CProjectVo.CopyProjectInfo copyProjectInfo = new CProjectVo.CopyProjectInfo(); CProjectVo.CopyProjectInfo copyProjectInfo = new CProjectVo.CopyProjectInfo();
//如果已有项目则不创建,使用旧项目 //如果已有项目则不创建,使用旧项目
if (firstAidInfo.getType().equals(param.getType()) && 0 != firstAidInfo.getProjectId()) { if (firstAidInfo.getType().equals(param.getType()) && 0 != firstAidInfo.getProjectId()) {

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 String TIME_CODE = "JRZL-CCSJ";
} }
/**跑道图-机械再通例数*/ /**跑道图-脑出血例数*/
public final static class Ich { public final static class Ich {
public final static String NAME = "脑出血例数"; public final static String NAME = "脑出血例数";
/**CT诊断结果*/ /**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 left join t_qcp_first_aid_record r1 on a.id = r1.first_aid_id and r1.rec_status = 0
<choose> <choose>
<when test="param.firstAidType == 0">and r1.question_code='JBXX-FBSJ'</when> <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> </choose>
left join t_qcp_first_aid_record r2 on a.id = r2.first_aid_id and r2.rec_status = 0 left join t_qcp_first_aid_record r2 on a.id = r2.first_aid_id and r2.rec_status = 0
<choose> <choose>
<when test="param.firstAidType == 0">and r2.question_code='JBXX-DYSJ'</when> <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> </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 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 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> <choose>
<when test="param.type == 0"> <when test="param.type == 0">
and m.create_user_id = #{userId} m.create_user_id = #{userId}
</when> </when>
<when test="param.type == 1"> <when test="param.type == 1">
and m.record_user_id in (#{userId}, 0) m.record_user_id in (#{userId}, 0)
</when> </when>
</choose> </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 order by a.updated_at desc
</select> </select>

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

@ -6,7 +6,7 @@
<select id="countTimeWindowPatient" resultType="java.lang.Long"> <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 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-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} 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=")"> <foreach collection="hospitalIds" item="id" separator="," open="and a.hospital_id in (" close=")">
#{id} #{id}
@ -102,7 +102,7 @@
</choose> </choose>
count(*) as total from t_qcp_first_aid a, t_qcp_first_aid_record r1 , t_qcp_first_aid_record r2 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-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} 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=")"> <foreach collection="hospitalIds" item="id" separator="," open="and a.hospital_id in (" close=")">
#{id} #{id}

Loading…
Cancel
Save