57 changed files with 1586 additions and 98 deletions
@ -0,0 +1,23 @@ |
|||
package com.ccsens.cloudutil.bean.tall.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotEmpty; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author AUSU |
|||
*/ |
|||
@Data |
|||
public class ProjectDto { |
|||
@Data |
|||
@ApiModel("根据模板复制项目") |
|||
public static class CopyProject{ |
|||
@NotNull(message = "请选择要复制得项目") |
|||
@ApiModelProperty("项目id") |
|||
private Long projectId; |
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
package com.ccsens.cloudutil.bean.tall.vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author AUSU |
|||
*/ |
|||
@Data |
|||
public class ProjectVo { |
|||
|
|||
@Data |
|||
@ApiModel("复制的项目信息") |
|||
public static class ProjectInfo{ |
|||
@ApiModelProperty("项目id") |
|||
private Long id; |
|||
@ApiModelProperty("任务详情") |
|||
private List<TaskDetail> taskDetails; |
|||
} |
|||
@Data |
|||
@ApiModel("任务详情") |
|||
public static class TaskDetail{ |
|||
@ApiModelProperty("任务详情id") |
|||
private Long taskDetailId; |
|||
@ApiModelProperty("任务详情名称") |
|||
private String taskDetailName; |
|||
@ApiModelProperty("任务等级") |
|||
private Byte taskDetailLevel; |
|||
@ApiModelProperty("任务详情下的分解任务") |
|||
private List<TaskSub> taskSubList; |
|||
} |
|||
@Data |
|||
@ApiModel("分解任务") |
|||
public static class TaskSub{ |
|||
@ApiModelProperty("分解任务id") |
|||
private Long taskSubId; |
|||
@ApiModelProperty("分解任务开始时间") |
|||
private Long startTime; |
|||
@ApiModelProperty("分解任务结束时间") |
|||
private Long endTime; |
|||
} |
|||
|
|||
} |
|||
@ -1,6 +1,5 @@ |
|||
spring: |
|||
profiles: |
|||
active: test |
|||
include: util-test,common |
|||
|
|||
active: dev |
|||
include: util-dev,common |
|||
|
|||
|
|||
@ -0,0 +1,54 @@ |
|||
package com.ccsens.wisdomcar.api; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; |
|||
import com.ccsens.wisdomcar.bean.dto.PatientAndFamilyDto; |
|||
import com.ccsens.wisdomcar.service.IPatientAndFamilyService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
/** |
|||
* @author 马 |
|||
*/ |
|||
@Slf4j |
|||
@Api(tags = "患者与家属相关接口" , description = "") |
|||
@RestController |
|||
@RequestMapping("/patientAndFamily") |
|||
public class PatientAndFamilyController { |
|||
@Resource |
|||
IPatientAndFamilyService patientAndFamilyService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改(补录)患者信息", notes = "mz") |
|||
@RequestMapping(value = "/updatePatientInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updatePatientInfo(@ApiParam @Validated @RequestBody QueryDto<PatientAndFamilyDto.PatientInfo> params) { |
|||
log.info("修改(补录)患者信息:{}", params); |
|||
patientAndFamilyService.updatePatientInfo(params.getParam()); |
|||
log.info("修改(补录)患者信息"); |
|||
return JsonResponse.newInstance().ok(); |
|||
|
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改(补录)患者家属信息", notes = "mz") |
|||
@RequestMapping(value = "/updatePatientFamilyInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updatePatientFamilyInfo(@ApiParam @Validated @RequestBody QueryDto<PatientAndFamilyDto.PatientFamilyInfo> params) { |
|||
log.info("修改(补录)患者家属信息:{}", params); |
|||
patientAndFamilyService.updatePatientFamilyInfo(params.getParam()); |
|||
log.info("修改(补录)患者家属信息"); |
|||
return JsonResponse.newInstance().ok(); |
|||
|
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,54 @@ |
|||
package com.ccsens.wisdomcar.api; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.ccsens.wisdomcar.bean.dto.ProjectDto; |
|||
import com.ccsens.wisdomcar.bean.vo.ProjectVo; |
|||
import com.ccsens.wisdomcar.service.IProjectService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: 项目页面的操作 |
|||
* @author: whj |
|||
* @time: 2021/6/1 13:31 |
|||
*/ |
|||
@Slf4j |
|||
@Api(tags = "页面相关api" , description = "") |
|||
@RestController |
|||
@RequestMapping("/project") |
|||
public class ProjectController { |
|||
|
|||
@Resource |
|||
private IProjectService projectService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "点击开始", notes = "whj") |
|||
@RequestMapping(value = "/start", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse start(@ApiParam @Validated @RequestBody QueryDto<ProjectDto.Start> params){ |
|||
log.info("点击开始:{}", params); |
|||
projectService.start(params.getParam(), params.getUserId()); |
|||
log.info("点击开始结束"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
@MustLogin |
|||
@ApiOperation(value = "查询称重和剂量", notes = "whj") |
|||
@RequestMapping(value = "/weight", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<ProjectVo.Record> weight(@ApiParam @Validated @RequestBody QueryDto<ProjectDto.Weight> params){ |
|||
log.info("查询称重和剂量:{}", params); |
|||
List<ProjectVo.Record> list = projectService.queryWeight(params.getParam(), params.getUserId()); |
|||
log.info("查询称重和剂量:{}", list); |
|||
return JsonResponse.newInstance().ok(list); |
|||
} |
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
package com.ccsens.wisdomcar.api; |
|||
|
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.ccsens.wisdomcar.bean.dto.RecordDto; |
|||
import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; |
|||
import com.ccsens.wisdomcar.bean.vo.RecordVo; |
|||
import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; |
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; |
|||
import com.ccsens.wisdomcar.bean.dto.StatisticsDto; |
|||
import com.ccsens.wisdomcar.bean.vo.StatisticsVo; |
|||
import com.ccsens.wisdomcar.service.IWisdomCarService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Slf4j |
|||
@Api(tags = "平车相关api" , description = "") |
|||
@RestController |
|||
@RequestMapping("/car") |
|||
public class WisdomCarController { |
|||
|
|||
@Resource |
|||
private IWisdomCarService wisdomCarService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "空闲平车查询", notes = "whj") |
|||
@RequestMapping(value = "/free", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<WisdomCarVo.FreeCar> freeCar(@ApiParam @Validated @RequestBody QueryDto<WisdomCarDto.FreeCar> params){ |
|||
log.info("空闲平车查询:{}", params); |
|||
List<WisdomCarVo.FreeCar> list = wisdomCarService.queryFreeCar(params.getParam(), params.getUserId()); |
|||
log.info("空闲平车查询结果:{}", list); |
|||
return JsonResponse.newInstance().ok(list); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "创建病例接口", notes = "") |
|||
@RequestMapping(value = "/createCase", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse createCase(@ApiParam @Validated @RequestBody QueryDto<CreateCaseDto.PatientInfo> params) { |
|||
log.info("创建病例接口:{}", params); |
|||
wisdomCarService.createCase(params.getParam(), params.getUserId()); |
|||
log.info("创建病例接口"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "绑定平车", notes = "") |
|||
@RequestMapping(value = "/bindingCar", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse bindingCar(@ApiParam @Validated @RequestBody QueryDto<WisdomCarDto.BindingCar> params) { |
|||
log.info("绑定平车:{}", params); |
|||
wisdomCarService.bindingCar(params.getParam(),params.getUserId()); |
|||
log.info("绑定平车"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "平车数据上传", notes = "") |
|||
@RequestMapping(value = "/uploadCarData", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse uploadCarData(@ApiParam @Validated @RequestBody QueryDto<WisdomCarDto.UploadCarData> params) { |
|||
log.info("平车数据上传:{}", params); |
|||
wisdomCarService.uploadCarData(params.getParam(),params.getUserId()); |
|||
log.info("平车数据上传"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
} |
|||
|
|||
|
|||
@ -1,16 +0,0 @@ |
|||
package com.ccsens.wisdomcar.api; |
|||
|
|||
import io.swagger.annotations.Api; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Slf4j |
|||
@Api(tags = "平车相关api" , description = "") |
|||
@RestController |
|||
@RequestMapping("/car") |
|||
public class WisdomCatController { |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package com.ccsens.wisdomcar.bean.dto; |
|||
|
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.text.ParseException; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @author AUSU |
|||
*/ |
|||
|
|||
@Data |
|||
public class CreateCaseDto { |
|||
@Data |
|||
@ApiModel("患者与家属信息") |
|||
public static class PatientInfo{ |
|||
@ApiModelProperty("患者姓名") |
|||
private String patientName; |
|||
@ApiModelProperty("患者性别(0-女,1-男)") |
|||
private Byte patientSex; |
|||
@ApiModelProperty("患者年龄") |
|||
private int patientAge; |
|||
@ApiModelProperty("患者身份证号") |
|||
private String patientIdCard; |
|||
@ApiModelProperty("患者手机号") |
|||
private int patientPhone; |
|||
@ApiModelProperty("患者病案号") |
|||
private String medicalRecordNum; |
|||
@ApiModelProperty("患者家属姓名") |
|||
private String familyName; |
|||
@ApiModelProperty("患者家属手机号") |
|||
private String familyPhone; |
|||
} |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
package com.ccsens.wisdomcar.bean.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 马 |
|||
*/ |
|||
@Data |
|||
public class PatientAndFamilyDto { |
|||
|
|||
@Data |
|||
@ApiModel("修改(补录)患者信息") |
|||
public static class PatientInfo { |
|||
@ApiModelProperty("患者id") |
|||
private Long id; |
|||
@ApiModelProperty("患者姓名") |
|||
private String name; |
|||
@ApiModelProperty("患者性别(0-女,1-男)") |
|||
private Byte sex; |
|||
@ApiModelProperty("患者年龄") |
|||
private Integer age; |
|||
@ApiModelProperty("患者身份证号") |
|||
private String idCard; |
|||
@ApiModelProperty("患者手机号") |
|||
private String phone; |
|||
|
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("修改(补录)患者家属信息") |
|||
public static class PatientFamilyInfo { |
|||
@ApiModelProperty("患者家属id") |
|||
private Long id; |
|||
@ApiModelProperty("患者家属姓名") |
|||
private String name; |
|||
@ApiModelProperty("患者家属手机号") |
|||
private String phone; |
|||
|
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
package com.ccsens.wisdomcar.bean.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
/** |
|||
* @description:页面上操作 |
|||
* @author: whj |
|||
* @time: 2021/6/1 13:34 |
|||
*/ |
|||
public class ProjectDto { |
|||
|
|||
@Data |
|||
@ApiModel("点击开始-请求") |
|||
public static class Start { |
|||
@ApiModelProperty("开始时间") |
|||
private Long startTime = System.currentTimeMillis(); |
|||
@NotNull(message="请说明您的任务") |
|||
@ApiModelProperty("分解任务ID") |
|||
private Long taskSubId; |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("查询称重和剂量--请求") |
|||
public static class Weight { |
|||
@NotNull(message="请说明您的任务") |
|||
@ApiModelProperty("分解任务ID") |
|||
private Long taskSubId; |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
package com.ccsens.wisdomcar.bean.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
/** |
|||
* @description: 平车相关 |
|||
* @author: whj |
|||
* @time: 2021/6/1 13:01 |
|||
*/ |
|||
public class WisdomCarDto { |
|||
|
|||
@Data |
|||
@ApiModel("查询空闲平车--请求参数") |
|||
public static class FreeCar{ |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("绑定平车") |
|||
public class BindingCar { |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("平车数据上传") |
|||
public class UploadCarData { |
|||
} |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
package com.ccsens.wisdomcar.bean.vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: whj |
|||
* @time: 2021/6/1 13:34 |
|||
*/ |
|||
public class ProjectVo { |
|||
public static class Start { |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("查询称重和剂量--响应") |
|||
public static class Record { |
|||
@ApiModelProperty("类型 1:体重 8溶栓剂量 9团注剂量 10维持剂量") |
|||
private byte type; |
|||
@ApiModelProperty("对应的值") |
|||
private String value; |
|||
} |
|||
|
|||
@ApiModel("患者平车绑定信息") |
|||
@Data |
|||
public static class BindCar { |
|||
@ApiModelProperty("患者平车绑定ID") |
|||
private Long id; |
|||
@ApiModelProperty("任务ID") |
|||
private Long taskSubId; |
|||
@ApiModelProperty("患者ID") |
|||
private Long patientId; |
|||
@ApiModelProperty("平车ID") |
|||
private Long carId; |
|||
@ApiModelProperty("开始时间") |
|||
private Long startTime; |
|||
@ApiModelProperty("结束时间") |
|||
private Long endTime; |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
package com.ccsens.wisdomcar.bean.vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: 平车相关 |
|||
* @author: whj |
|||
* @time: 2021/6/1 13:02 |
|||
*/ |
|||
public class WisdomCarVo { |
|||
@Data |
|||
@ApiModel("查询空闲平车--响应参数") |
|||
public static class FreeCar{ |
|||
@ApiModelProperty("平车ID") |
|||
private Long id; |
|||
@ApiModelProperty("平车编号") |
|||
private String carNumber; |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
package com.ccsens.wisdomcar.persist.dao; |
|||
|
|||
import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author whj |
|||
*/ |
|||
public interface WisdomCarDao { |
|||
/** |
|||
* 查询空闲平车 |
|||
* @param hospitalId 医院ID |
|||
* @return 空闲平车 |
|||
*/ |
|||
List<WisdomCarVo.FreeCar> queryFreeCar(@Param("hospitalId") Long hospitalId); |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
package com.ccsens.wisdomcar.service; |
|||
|
|||
|
|||
import com.ccsens.wisdomcar.bean.dto.PatientAndFamilyDto; |
|||
|
|||
/** |
|||
* @author 马 |
|||
*/ |
|||
public interface IPatientAndFamilyService { |
|||
|
|||
|
|||
/** |
|||
* 修改(补录)患者信息 |
|||
* @param param 患者信息 |
|||
*/ |
|||
void updatePatientInfo(PatientAndFamilyDto.PatientInfo param); |
|||
|
|||
/** |
|||
* 修改(补录)患者家属信息 |
|||
* @param param 家属信息 |
|||
*/ |
|||
void updatePatientFamilyInfo(PatientAndFamilyDto.PatientFamilyInfo param); |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
package com.ccsens.wisdomcar.service; |
|||
|
|||
import com.ccsens.wisdomcar.bean.dto.ProjectDto; |
|||
import com.ccsens.wisdomcar.bean.vo.ProjectVo; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author whj |
|||
*/ |
|||
public interface IProjectService { |
|||
|
|||
/** |
|||
* 网页设置结点开始 |
|||
* @param param 设置参数 |
|||
* @param userId userId |
|||
*/ |
|||
void start(ProjectDto.Start param, Long userId); |
|||
|
|||
/** |
|||
* 查询称重和剂量 |
|||
* @param param param |
|||
* @param userId userId |
|||
* @return 称重和剂量 |
|||
*/ |
|||
List<ProjectVo.Record> queryWeight(ProjectDto.Weight param, Long userId); |
|||
|
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
package com.ccsens.wisdomcar.service; |
|||
|
|||
import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; |
|||
import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; |
|||
import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; |
|||
import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author whj |
|||
*/ |
|||
public interface IWisdomCarService { |
|||
/** |
|||
* 查询空闲平车 |
|||
* @param param 平车要求,暂无 |
|||
* @param userId 用户userId,根据userId查询医院ID |
|||
* @return 空闲平车 |
|||
*/ |
|||
List<WisdomCarVo.FreeCar> queryFreeCar(WisdomCarDto.FreeCar param, Long userId); |
|||
|
|||
|
|||
|
|||
|
|||
/** |
|||
* 创建病例 |
|||
* @param param 患者信息与家属信息 |
|||
* @param userId 当前用户id |
|||
*/ |
|||
void createCase(CreateCaseDto.PatientInfo param, Long userId); |
|||
|
|||
/** |
|||
* 绑定平车 |
|||
* @param param 参数 |
|||
* @param userId 当前用户id |
|||
*/ |
|||
void bindingCar(WisdomCarDto.BindingCar param, Long userId); |
|||
|
|||
/** |
|||
* 平车数据上传 |
|||
* @param param 参数 |
|||
* @param userId 当前用户id |
|||
*/ |
|||
void uploadCarData(WisdomCarDto.UploadCarData param, Long userId); |
|||
} |
|||
@ -0,0 +1,58 @@ |
|||
package com.ccsens.wisdomcar.service; |
|||
|
|||
|
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.ccsens.util.exception.BaseException; |
|||
import com.ccsens.wisdomcar.bean.dto.PatientAndFamilyDto; |
|||
import com.ccsens.wisdomcar.bean.po.PatientProject; |
|||
import com.ccsens.wisdomcar.persist.dao.PatientProjectDao; |
|||
import com.ccsens.wisdomcar.util.Constant; |
|||
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; |
|||
|
|||
/** |
|||
* @author 马 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class PatientAndFamilyService implements IPatientAndFamilyService{ |
|||
|
|||
@Resource |
|||
private PatientProjectDao patientProjectDao; |
|||
|
|||
|
|||
@Override |
|||
public void updatePatientInfo(PatientAndFamilyDto.PatientInfo param) { |
|||
PatientProject patient = patientProjectDao.selectByPrimaryKey(param.getId()); |
|||
if (ObjectUtil.isNotNull(param)){ |
|||
if (ObjectUtil.isNotNull(param.getName())){ |
|||
patient.setName(param.getName()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getPhone())){ |
|||
patient.setPhone(param.getPhone()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getAge())){ |
|||
patient.setAge(param.getAge()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getIdCard())){ |
|||
patient.setIdCard(param.getIdCard()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getSex())){ |
|||
patient.setSex(param.getSex()); |
|||
} |
|||
patientProjectDao.updateByPrimaryKeySelective(patient); |
|||
}else{ |
|||
throw new BaseException(Constant.PATIENT_NOT_FOUND); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void updatePatientFamilyInfo(PatientAndFamilyDto.PatientFamilyInfo param) { |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,116 @@ |
|||
package com.ccsens.wisdomcar.service; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import cn.hutool.core.lang.Snowflake; |
|||
import com.ccsens.util.CodeEnum; |
|||
import com.ccsens.util.exception.BaseException; |
|||
import com.ccsens.wisdomcar.bean.dto.ProjectDto; |
|||
import com.ccsens.wisdomcar.bean.po.*; |
|||
import com.ccsens.wisdomcar.bean.vo.ProjectVo; |
|||
import com.ccsens.wisdomcar.persist.dao.PatientDataDao; |
|||
import com.ccsens.wisdomcar.persist.dao.StepDao; |
|||
import com.ccsens.wisdomcar.persist.dao.StepTaskDao; |
|||
import com.ccsens.wisdomcar.persist.dao.WisdomCarRecordDao; |
|||
import com.ccsens.wisdomcar.persist.mapper.PatientWisdomCarMapper; |
|||
import com.ccsens.wisdomcar.util.Constant; |
|||
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; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: whj |
|||
* @time: 2021/6/1 21:15 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class ProjectService implements IProjectService { |
|||
@Resource |
|||
private StepTaskDao stepTaskDao; |
|||
@Resource |
|||
private WisdomCarRecordDao wisdomCarRecordDao; |
|||
@Resource |
|||
private PatientDataDao patientDataDao; |
|||
@Resource |
|||
private StepDao stepDao; |
|||
@Resource |
|||
private PatientWisdomCarMapper patientWisdomCarMapper; |
|||
@Resource |
|||
private Snowflake snowflake; |
|||
|
|||
@Override |
|||
public void start(ProjectDto.Start param, Long userId) { |
|||
StepTaskExample taskExample = new StepTaskExample(); |
|||
taskExample.createCriteria().andTaskSubIdEqualTo(param.getTaskSubId()); |
|||
List<StepTask> stepTasks = stepTaskDao.selectByExample(taskExample); |
|||
if (CollectionUtil.isEmpty(stepTasks)) { |
|||
log.info("没有找到对应任务的患者信息:{}", param); |
|||
throw new BaseException(CodeEnum.PARAM_ERROR); |
|||
} |
|||
// TODO 待确认,是否处理成已提交不再修改????
|
|||
StepTask stepTask = stepTasks.get(0); |
|||
PatientDataExample dataExample = new PatientDataExample(); |
|||
dataExample.createCriteria().andTaskSubIdEqualTo(param.getTaskSubId()).andStepIdEqualTo(stepTask.getStepId()); |
|||
List<PatientData> patientData = patientDataDao.selectByExample(dataExample); |
|||
if (CollectionUtil.isNotEmpty(patientData)){ |
|||
log.info("taskId:{}, stepId:{}已经存在,不再修改", param.getTaskSubId(), stepTask.getStepId()); |
|||
PatientData data = patientData.get(0); |
|||
// 未推送
|
|||
if (data.getPushStatus() == Constant.PUSH_STATUS_SUCCESS) { |
|||
log.info("已推送成功,不处理"); |
|||
return; |
|||
} |
|||
|
|||
// TODO 异步推送数据 根据结果修改状态
|
|||
PatientData updateData = new PatientData(); |
|||
updateData.setId(data.getId()); |
|||
updateData.setPushStatus(Constant.PUSH_STATUS_SUCCESS); |
|||
patientDataDao.updateByPrimaryKeySelective(updateData); |
|||
return; |
|||
} |
|||
|
|||
// TODO 判断是否为结束结点
|
|||
Step step = stepDao.selectByPrimaryKey(stepTask.getStepId()); |
|||
Integer max = stepDao.getMaxSequence(Constant.STEP_TYPE_REAL); |
|||
if (step != null && max != null && step.getSequence() != null && step.getSequence().intValue() == max.intValue()) { |
|||
// 修改平车结束时间点
|
|||
ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(param.getTaskSubId()); |
|||
if (bindCar == null) { |
|||
log.info("出现异常,未找到绑定平车:{}", param.getTaskSubId()); |
|||
throw new BaseException(CodeEnum.PARAM_ERROR); |
|||
} |
|||
PatientWisdomCar patientWisdomCar = new PatientWisdomCar(); |
|||
patientWisdomCar.setId(bindCar.getId()); |
|||
patientWisdomCar.setEndTime(param.getStartTime()); |
|||
patientWisdomCarMapper.updateByPrimaryKeySelective(patientWisdomCar); |
|||
} |
|||
|
|||
PatientData data = new PatientData(); |
|||
data.setId(snowflake.nextId()); |
|||
data.setUserId(userId); |
|||
data.setTaskSubId(param.getTaskSubId()); |
|||
data.setStepId(stepTask.getStepId()); |
|||
data.setPushStatus(Constant.PUSH_STATUS_NO); |
|||
data.setStartTime(param.getStartTime()); |
|||
data.setType(Constant.OPERATION_USER); |
|||
patientDataDao.insertSelective(data); |
|||
// TODO 异步推送数据 根据结果修改状态
|
|||
|
|||
} |
|||
|
|||
@Override |
|||
public List<ProjectVo.Record> queryWeight(ProjectDto.Weight param, Long userId) { |
|||
ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(param.getTaskSubId()); |
|||
if (bindCar == null) { |
|||
log.info("没有找到绑定的平车信息:{},userId:{}", param, userId); |
|||
return new ArrayList<>(); |
|||
} |
|||
return wisdomCarRecordDao.queryRecent(bindCar.getCarId(), bindCar.getStartTime(), bindCar.getEndTime(), (byte)1,(byte)8,(byte)9,(byte)10); |
|||
} |
|||
} |
|||
@ -0,0 +1,207 @@ |
|||
package com.ccsens.wisdomcar.service; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.ccsens.util.exception.BaseException; |
|||
import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; |
|||
import com.ccsens.wisdomcar.bean.po.HospitalMember; |
|||
import com.ccsens.wisdomcar.bean.po.HospitalMemberExample; |
|||
import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; |
|||
import com.ccsens.wisdomcar.persist.dao.HospitalMemberDao; |
|||
import com.ccsens.wisdomcar.persist.dao.WisdomCarDao; |
|||
import cn.hutool.core.lang.Snowflake; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto; |
|||
import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; |
|||
import com.ccsens.cloudutil.bean.tall.vo.ProjectVo; |
|||
import com.ccsens.cloudutil.feign.TallFeignClient; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.RedisUtil; |
|||
import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; |
|||
import com.ccsens.wisdomcar.bean.po.*; |
|||
import com.ccsens.wisdomcar.persist.dao.HospitalWrokingDao; |
|||
import com.ccsens.wisdomcar.persist.dao.PatientFamilyDao; |
|||
import com.ccsens.wisdomcar.persist.dao.PatientProjectDao; |
|||
import com.ccsens.wisdomcar.util.Constant; |
|||
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; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author AUSU |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class WisdomCarService implements IWisdomCarService { |
|||
|
|||
@Resource |
|||
private PatientProjectDao patientProjectDao; |
|||
@Resource |
|||
private PatientFamilyDao patientFamilyDao; |
|||
@Resource |
|||
private HospitalMemberDao hospitalMemberDao; |
|||
@Resource |
|||
private Snowflake snowflake; |
|||
@Resource |
|||
private RedisUtil redisUtil; |
|||
@Resource |
|||
private HospitalWrokingDao hospitalWrokingDao; |
|||
@Resource |
|||
private TallFeignClient tallFeignClient; |
|||
@Resource |
|||
private WisdomCarDao wisdomcarDao; |
|||
|
|||
|
|||
@Override |
|||
public void createCase(CreateCaseDto.PatientInfo param, Long userId) { |
|||
//tall中需要添加的成员
|
|||
MemberRoleDto.SaveMemberForTemplate saveMemberForTemplate = new MemberRoleDto.SaveMemberForTemplate(); |
|||
List<MemberRoleDto.MemberForTemplate> memberList = new ArrayList<>(); |
|||
|
|||
|
|||
//查找医院id
|
|||
HospitalMemberExample hospitalMemberExample = new HospitalMemberExample(); |
|||
hospitalMemberExample.createCriteria().andUserIdEqualTo(userId); |
|||
List<HospitalMember> hospitalMembers = hospitalMemberDao.selectByExample(hospitalMemberExample); |
|||
HospitalMember hospitalMember; |
|||
|
|||
//患者
|
|||
PatientProject patient = new PatientProject(); |
|||
patient.setId(snowflake.nextId()); |
|||
//设置病历号,redis自增
|
|||
if (CollectionUtil.isNotEmpty(hospitalMembers)){ |
|||
hospitalMember = hospitalMembers.get(0); |
|||
long incr = redisUtil.incr("医院_" + hospitalMember.getHospitalId().toString(), 1L); |
|||
patient.setMedicalRecordNum(String.valueOf(incr)); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getPatientName())){ |
|||
patient.setName(param.getPatientName()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getPatientSex())){ |
|||
patient.setSex(param.getPatientSex()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getPatientAge())){ |
|||
patient.setAge(param.getPatientAge()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getPatientIdCard())){ |
|||
patient.setIdCard(param.getPatientIdCard()); |
|||
} |
|||
if (ObjectUtil.isNotNull(param.getPatientPhone())){ |
|||
patient.setPhone(param.getFamilyPhone()); |
|||
} |
|||
patientProjectDao.insertSelective(patient); |
|||
|
|||
//患者家属
|
|||
if (ObjectUtil.isNotNull(param.getFamilyName()) || ObjectUtil.isNotNull(param.getFamilyPhone())){ |
|||
PatientFamily patientFamily = new PatientFamily(); |
|||
patientFamily.setId(snowflake.nextId()); |
|||
patientFamily.setName(param.getFamilyName()); |
|||
patientFamily.setPhone(param.getFamilyPhone()); |
|||
patientFamily.setPatientId(patient.getId()); |
|||
patientFamilyDao.insertSelective(patientFamily); |
|||
if (ObjectUtil.isNotNull(param.getFamilyPhone())){ |
|||
MemberRoleDto.MemberForTemplate memberForTemplate = new MemberRoleDto.MemberForTemplate(); |
|||
//添加对应角色名称
|
|||
List<String> roleName = new ArrayList<>(); |
|||
roleName.add(Constant.PATIENT_FAMILY); |
|||
memberForTemplate.setRoleName(roleName); |
|||
memberForTemplate.setPhone(param.getFamilyPhone()); |
|||
if (ObjectUtil.isNotNull(param.getFamilyName())){ |
|||
memberForTemplate.setMemberName(param.getFamilyName()); |
|||
} |
|||
memberList.add(memberForTemplate); |
|||
} |
|||
} |
|||
|
|||
//查找正在值班得急救医生和急救护士
|
|||
if (CollectionUtil.isNotEmpty(hospitalMembers)){ |
|||
long currentTime = System.currentTimeMillis(); |
|||
//正在值班的医生(0-急诊护士,1-急诊医生,2-专科医生,3-分诊台)
|
|||
List<HospitalMember> doctor = hospitalWrokingDao.findWorkingDoctor(hospitalMembers.get(0).getHospitalId(),currentTime); |
|||
for (HospitalMember member : doctor) { |
|||
MemberRoleDto.MemberForTemplate memberForTemplate = new MemberRoleDto.MemberForTemplate(); |
|||
List<String> roleName = new ArrayList<>(); |
|||
memberForTemplate.setUserId(member.getUserId()); |
|||
//急诊护士
|
|||
if (Constant.EMERGENCY_NURSE_ZERO.equals(member.getPosition())){ |
|||
roleName.add(Constant.EMERGENCY_NURSE); |
|||
} |
|||
//急诊医生
|
|||
if (Constant.EMERGENCY_DOCTOR_ONE.equals(member.getPosition())){ |
|||
roleName.add(Constant.EMERGENCY_DOCTOR); |
|||
} |
|||
//专科医生
|
|||
if (Constant.SPECIALIST_TWO.equals(member.getPosition())){ |
|||
roleName.add(Constant.SPECIALIST); |
|||
} |
|||
memberForTemplate.setRoleName(roleName); |
|||
memberList.add(memberForTemplate); |
|||
} |
|||
|
|||
} |
|||
|
|||
ProjectDto.CopyProject copyProject = new ProjectDto.CopyProject(); |
|||
copyProject.setProjectId(Constant.TEMPLATE_PROJECT); |
|||
log.info("调用tall内的复制项目:{}",copyProject); |
|||
QueryDto<ProjectDto.CopyProject> dto = new QueryDto<>(); |
|||
dto.setParam(copyProject); |
|||
JsonResponse<ProjectVo.ProjectInfo> projectId = tallFeignClient.copyProjectNew(dto); |
|||
log.info("复制项目后返回:{}", projectId); |
|||
if (ObjectUtil.isNull(projectId)) { |
|||
log.info("调用tall返回null"); |
|||
throw new BaseException(Constant.RETURN_NULL); |
|||
} |
|||
if(!projectId.getCode().equals(Constant.RESPONSE_OK)){ |
|||
log.info("调用tall异常后返回:{}", projectId.getMsg()); |
|||
throw new BaseException(Constant.RETURN_ERROR); |
|||
} |
|||
|
|||
ProjectVo.ProjectInfo data = projectId.getData(); |
|||
if (ObjectUtil.isNotNull(data)){ |
|||
saveMemberForTemplate.setProjectId(data.getId()); |
|||
saveMemberForTemplate.setMemberForTemplate(memberList); |
|||
//调用tall的添加成员接口
|
|||
log.info("调用tall内的给复制的项目添加成员接口"); |
|||
JsonResponse jsonResponse = tallFeignClient.addMemberForTemplate(saveMemberForTemplate); |
|||
if (!jsonResponse.getCode().equals(Constant.RESPONSE_OK)){ |
|||
log.info("调用tall异常后返回:{}",jsonResponse.getMsg()); |
|||
throw new BaseException(Constant.RETURN_ERROR); |
|||
} |
|||
}else{ |
|||
throw new BaseException(Constant.RETURN_NULL); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
@Override |
|||
public List<WisdomCarVo.FreeCar> queryFreeCar(WisdomCarDto.FreeCar param, Long userId) { |
|||
HospitalMemberExample example = new HospitalMemberExample(); |
|||
example.createCriteria().andUserIdEqualTo(userId); |
|||
List<HospitalMember> hospitalMembers = hospitalMemberDao.selectByExample(example); |
|||
if (CollectionUtil.isEmpty(hospitalMembers)) { |
|||
return new ArrayList<>(); |
|||
} |
|||
Long hospitalId = hospitalMembers.get(0).getHospitalId(); |
|||
return wisdomcarDao.queryFreeCar(hospitalId); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public void bindingCar(WisdomCarDto.BindingCar param, Long userId) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void uploadCarData(WisdomCarDto.UploadCarData param, Long userId) { |
|||
|
|||
} |
|||
|
|||
|
|||
} |
|||
@ -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.wisdomcar.persist.dao.WisdomCarDao"> |
|||
|
|||
<select id="queryFreeCar" resultType="com.ccsens.wisdomcar.bean.vo.WisdomCarVo$FreeCar"> |
|||
( SELECT id, car_number FROM t_wisdom_car WHERE hospital_id = #{hospitalId} AND rec_status = 0 ) EXCEPT |
|||
( |
|||
SELECT |
|||
c.id, |
|||
c.car_number |
|||
FROM |
|||
t_patient_wisdom_car pc, |
|||
t_wisdom_car c |
|||
WHERE |
|||
pc.car_id = c.id |
|||
AND c.hospital_id = #{hospitalId} |
|||
AND pc.end_time = 0 |
|||
AND pc.start_time >= ( unix_timestamp( ) - 2 * 60 * 60 ) * 1000 |
|||
AND pc.rec_status = 0 |
|||
AND c.rec_status = 0 |
|||
) |
|||
</select> |
|||
</mapper> |
|||
Loading…
Reference in new issue