Browse Source

20210831创建病例

master
zy_Java 4 years ago
parent
commit
d03d81e35b
  1. 2
      src/main/java/com/ccsens/carbasics/bean/dto/PatientDto.java
  2. 47
      src/main/java/com/ccsens/carbasics/bean/vo/CarVo.java
  3. 33
      src/main/java/com/ccsens/carbasics/bean/vo/OrganizationVo.java
  4. 21
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java
  5. 20
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberDao.java
  6. 97
      src/main/java/com/ccsens/carbasics/service/FirstAidService.java
  7. 20
      src/main/java/com/ccsens/carbasics/util/Constant.java
  8. 3
      src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java
  9. 26
      src/main/resources/mapper_dao/OrganizationDao.xml
  10. 23
      src/main/resources/mapper_dao/OrganizationMemberDao.xml

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

@ -121,6 +121,6 @@ public class PatientDto {
@ApiModelProperty("民族")
private String nation;
@ApiModelProperty("证件号")
private String idCard;
private String idcard;
}
}

47
src/main/java/com/ccsens/carbasics/bean/vo/CarVo.java

@ -1,47 +0,0 @@
package com.ccsens.carbasics.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 平车
* @author: whj
* @time: 2021/7/27 16:53
*/
public class CarVo {
@Data
@ApiModel("查询医院平车")
public static class Car{
@ApiModelProperty("平车ID")
public Long id;
@ApiModelProperty("平车编号")
public String serial;
@ApiModelProperty("急救ID")
public Long aidId;
@ApiModelProperty("患者名字")
public String patientName;
@ApiModelProperty("绑定平车急救的项目ID")
public Long projectId;
}
@ApiModel("绑定平车信息--响应")
@Data
public static class QueryBind {
@ApiModelProperty("患者平车ID")
private Long patientCarId;
@ApiModelProperty("患者id")
private Long patientId;
@ApiModelProperty("平车id")
private Long carId;
@ApiModelProperty("平车编号")
private String carSerial;
@ApiModelProperty("开始时间")
private Long startTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("患者姓名")
private String name;
}
}

33
src/main/java/com/ccsens/carbasics/bean/vo/OrganizationVo.java

@ -0,0 +1,33 @@
package com.ccsens.carbasics.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: whj
* @time: 2021/8/31 9:38
*/
public class OrganizationVo {
@Data
@ApiModel("机构基本信息")
public static class Basic{
@ApiModelProperty("医院ID")
private Long organizationId;
}
@Data
@ApiModel("成员部门和职位信息")
public static class MemberPosition{
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("职位code")
private String positionCode;
@ApiModelProperty("科室code")
private String departmentCode;
}
}

21
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java

@ -0,0 +1,21 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.vo.OrganizationVo;
import com.ccsens.carbasics.persist.mapper.OrganizationMapper;
import org.apache.ibatis.annotations.Param;
/**
* @description: 机构相关
* @author: whj
* @time: 2021/8/31 9:32
*/
public interface OrganizationDao extends OrganizationMapper {
/**
* 查询用户和入口项目是否是同一个医院相同返回医院用户信息否则返回null
* @param projectId 项目ID
* @param userId 用户ID
* @return 医院信息
*/
OrganizationVo.Basic getOrganization(@Param("projectId") Long projectId, @Param("userId") Long userId);
}

20
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberDao.java

@ -0,0 +1,20 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.vo.OrganizationVo;
import com.ccsens.carbasics.persist.mapper.OrganizationMemberMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* @author
*/
@Repository
public interface OrganizationMemberDao extends OrganizationMemberMapper {
/**
* 通过userId查找成员的科室和部门信息
* @param userId
* @return
*/
OrganizationVo.MemberPosition getMemberPosition(@Param("userId") Long userId);
}

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

@ -1,25 +1,120 @@
package com.ccsens.carbasics.service;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.carbasics.bean.dto.PatientDto;
import com.ccsens.carbasics.bean.po.FirstAid;
import com.ccsens.carbasics.bean.po.FirstAidLog;
import com.ccsens.carbasics.bean.po.FirstAidMember;
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.OrganizationDao;
import com.ccsens.carbasics.persist.dao.OrganizationMemberDao;
import com.ccsens.carbasics.persist.mapper.FirstAidLogMapper;
import com.ccsens.carbasics.persist.mapper.FirstAidMemberMapper;
import com.ccsens.carbasics.util.Constant;
import com.ccsens.carbasics.util.DefaultCodeError;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class FirstAidService implements IFirstAidService{
@Resource
private OrganizationDao organizationDao;
@Resource
private OrganizationMemberDao organizationMemberDao;
@Resource
private Snowflake snowflake;
@Resource
private FirstAidDao firstAidDao;
@Resource
private FirstAidMemberMapper firstAidMemberMapper;
@Resource
private FirstAidLogMapper firstAidLogMapper;
@Override
public PageInfo<PatientVo.QueryPatientList> querySelf(PatientDto.QueryPatient param, Long userId) {
// 判断有无权限添加
OrganizationVo.Basic basic = organizationDao.getOrganization(param.getProjectId(), userId);
if (basic == null) {
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE);
}
return null;
}
@Override
public void savePatient(PatientDto.SavePatient param, Long userId) {
//查找当前用户的职位和科室
OrganizationVo.MemberPosition memberPosition = organizationMemberDao.getMemberPosition(userId);
log.info("当前用户的科室职位信息:{}",memberPosition);
if(ObjectUtil.isNull(memberPosition)){
//为空则提示没有权限
throw new BaseException(DefaultCodeError.NO_POWER);
}
//职位
Byte position = null;
//是否是急诊的护士
if(Constant.Department.JI_ZHEN.equalsIgnoreCase(memberPosition.getDepartmentCode()) && Constant.Position.HU_SHI.equalsIgnoreCase(memberPosition.getPositionCode())){
position = 0;
}
//是否是神内的医生
if(Constant.Department.SHEN_NEI.equalsIgnoreCase(memberPosition.getDepartmentCode()) && Constant.Position.YI_SHENG.equalsIgnoreCase(memberPosition.getPositionCode())){
position = 1;
}
if(ObjectUtil.isNull(position)){
//不是急诊护士或者不是神内的医生,提示没有权限
throw new BaseException(DefaultCodeError.NO_POWER);
}
//创建病例
FirstAid firstAid = new FirstAid();
firstAid.setId(snowflake.nextId());
firstAid.setName(param.getName());
firstAid.setGender(param.getGender());
firstAid.setNation(param.getNation());
firstAid.setIdcard(param.getIdcard());
if(StrUtil.isNotEmpty(param.getIdcard())){
firstAid.setAge(IdcardUtil.getAgeByIdCard(param.getIdcard()));
}
firstAidDao.insertSelective(firstAid);
//添加急救成员
FirstAidMember firstAidMember = new FirstAidMember();
firstAidMember.setId(snowflake.nextId());
firstAidMember.setCreateUserId(userId);
if(position == 1){
firstAidMember.setRecordUserId(userId);
}
firstAidMemberMapper.insertSelective(firstAidMember);
//添加急救日志表(创建信息)
FirstAidLog firstAidLog = new FirstAidLog();
firstAidLog.setId(snowflake.nextId());
firstAidLog.setFirstAidId(firstAid.getId());
firstAidLog.setOperationTime(System.currentTimeMillis());
firstAidLog.setOperationUserId(userId);
firstAidLog.setOperationType((byte) 0);
firstAidLog.setOperationRole(position);
firstAidLogMapper.insertSelective(firstAidLog);
//如果是医生,再添加一条加入的日志
if(position == 1){
FirstAidLog firstAidLogJoin = new FirstAidLog();
firstAidLogJoin.setId(snowflake.nextId());
firstAidLogJoin.setFirstAidId(firstAid.getId());
firstAidLogJoin.setOperationTime(System.currentTimeMillis());
firstAidLogJoin.setOperationUserId(userId);
firstAidLogJoin.setOperationType((byte) 7);
firstAidLogJoin.setOperationRole(position);
firstAidLogMapper.insertSelective(firstAidLog);
}
}
}

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

@ -15,8 +15,28 @@ public class Constant {
/**xls*/
public static final String XLS = "xls";
/**科室相关*/
public static final class Department {
/**急诊*/
public static final String JI_ZHEN = "JiZhen";
/**神内*/
public static final String SHEN_NEI = "ShenNei";
/**神外*/
public static final String SHEN_WAI = "ShenWai";
}
/**职位相关*/
public static final class Position {
/**护士*/
public static final String HU_SHI = "HuShi";
/**医生*/
public static final String YI_SHENG = "YiSheng";
}
public enum DataStatus {
/**
*
*/
Create((byte) 0,"创建"),
FirstAidPass((byte) 1,"急救审核通过"),
FirstAidRefuse((byte) 2,"急救审核拒绝"),

3
src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java

@ -28,7 +28,8 @@ public class DefaultCodeError extends CodeError {
public static final Code ARRIVE_WORKER_ERROR = new Code(16,"到场人员信息错误", true);
public static final Code NO_POWER = new Code(17,"权限不足", true);
public static final Code NO_HOSPITAL = new Code(18,"未查到对应的医院信息", true);
public static final Code NO_DATA_MODIFY_PRIVILEGE = new Code(19,"没有数据修改权限", true);
public static final Code NO_DATA_MODIFY_PRIVILEGE = new Code(19,"没有操作权限", true);

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

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.carbasics.persist.dao.OrganizationDao">
<select id="getOrganization" resultType="com.ccsens.carbasics.bean.vo.OrganizationVo$Basic">
SELECT
t1.organization_id
FROM
( SELECT organization_id FROM t_organization_project WHERE project_id = #{projectId} AND rec_status = 0 ) t1,
(
SELECT
d.organization_id
FROM
t_organization_member m,
t_organization_department d
WHERE
m.department_id = d.id
AND m.user_id = #{userId}
AND m.rec_status = 0
AND d.rec_status = 0
limit 1
) t2
WHERE
t1.organization_id = t2.organization_id
</select>
</mapper>

23
src/main/resources/mapper_dao/OrganizationMemberDao.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.carbasics.persist.dao.OrganizationMemberDao">
<select id="getMemberPosition" resultType="com.ccsens.carbasics.bean.vo.OrganizationVo$MemberPosition">
SELECT
m.id,
m.`name`,
p.`code` as positionCode,
d.`code` as departmentCode
FROM
t_organization_member m,
t_organization_position p,
t_organization_department d
WHERE
m.user_id = #{userId}
and m.position_id = p.id
and m.department_id = d.id
and m.rec_status = 0
and p.rec_status = 0
and d.rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save