初始化辅助检查和体格检查的代码

dev_v1.0.1
liu
parent c8794b60d1
commit 0cbf32143a

@ -56,8 +56,7 @@ public class JwtInterceptor implements HandlerInterceptor {
private void cacheAuth(JWT jwt) {
try {
JSONObject claimsJson = jwt.getPayload().getClaimsJson();
UserInfo userInfo = JSONUtil.toBean(claimsJson, UserInfo.class);
ThreadCache.USER.set(userInfo);
ThreadCache.USER.set(claimsJson.toString());
} catch (Exception e) {
log.error("用户信息异常", e);
}

@ -26,7 +26,7 @@ public class ThreadCache {
/**
* ID
*/
public static final ThreadLocal<UserInfo> USER = new ThreadLocal<>();
public static final ThreadLocal<String> USER = new ThreadLocal<>();
}

@ -5,8 +5,6 @@ import cn.hutool.json.JSONUtil;
import cn.hutool.jwt.JWTUtil;
import cn.hutool.jwt.signers.JWTSigner;
import cn.hutool.jwt.signers.JWTSignerUtil;
import com.supervision.domain.UserInfo;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
public class TokenUtil {

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
/**
@ -14,7 +16,7 @@ import lombok.Data;
*/
@TableName(value ="vp_diagnosis_ancillary_record")
@Data
public class DiagnosisAncillaryRecord implements Serializable {
public class DiagnosisAncillaryRecord extends Model<DiagnosisAncillaryRecord> implements Serializable {
/**
*
*/

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
/**
@ -14,7 +16,7 @@ import lombok.Data;
*/
@TableName(value ="vp_diagnosis_physical_record")
@Data
public class DiagnosisPhysicalRecord implements Serializable {
public class DiagnosisPhysicalRecord extends Model<DiagnosisPhysicalRecord> implements Serializable {
/**
*
*/

@ -21,6 +21,11 @@ public class DiseaseAncillary implements Serializable {
@TableId
private String id;
/**
* ID
*/
private String patientId;
/**
* ID
*/

@ -21,6 +21,11 @@ public class DiseasePhysical implements Serializable {
@TableId
private String id;
/**
* ID
*/
private String patientId;
/**
* ID
*/

@ -10,6 +10,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface PatientService extends IService<Patient> {
Patient queryPatientById(String id);
}

@ -18,10 +18,7 @@ import java.util.Optional;
public class PatientServiceImpl extends ServiceImpl<PatientMapper, Patient>
implements PatientService{
@Override
public Patient queryPatientById(String id) {
return this.lambdaQuery().eq(Patient::getId, id).oneOpt().orElseThrow(() -> new BusinessException("未找到用户"));
}
}

@ -6,6 +6,7 @@
<resultMap id="BaseResultMap" type="com.supervision.model.DiseaseAncillary">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="patientId" column="patient_id" jdbcType="VARCHAR"/>
<result property="itemId" column="item_id" jdbcType="VARCHAR"/>
<result property="requireCheck" column="require_check" jdbcType="INTEGER"/>
<result property="result" column="result" jdbcType="VARCHAR"/>

@ -6,6 +6,7 @@
<resultMap id="BaseResultMap" type="com.supervision.model.DiseasePhysical">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="patientId" column="patient_id" jdbcType="VARCHAR"/>
<result property="toolId" column="tool_id" jdbcType="VARCHAR"/>
<result property="locationId" column="location_id" jdbcType="VARCHAR"/>
<result property="requireCheck" column="require_check" jdbcType="INTEGER"/>
@ -18,7 +19,7 @@
</resultMap>
<sql id="Base_Column_List">
id,tool_id,location_id,
id,patient_id,tool_id,location_id,
require_check,result,trait,
create_user_id,create_time,update_user_id,
update_time

@ -0,0 +1,26 @@
package com.supervision.controller;
import com.supervision.model.DiagnosisAncillaryRecord;
import com.supervision.pojo.vo.AskAncillaryResultReqVO;
import com.supervision.service.AskAncillaryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "辅助检查")
@RestController
@RequestMapping("askAncillary")
@RequiredArgsConstructor
public class AskAncillaryController {
private final AskAncillaryService askAncillaryService;
@ApiOperation("查询辅助检查的结果")
@GetMapping("queryAskAncillaryResult")
public DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO){
return askAncillaryService.queryAskAncillaryResult(reqVO);
}
}

@ -0,0 +1,32 @@
package com.supervision.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.Patient;
import com.supervision.service.AskPatientService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "病人")
@RestController
@RequestMapping("/askPatient")
@RequiredArgsConstructor
public class AskPatientController {
private final AskPatientService askPatientService;
@ApiOperation("分页获取病人列表")
@RequestMapping("queryPatientPage")
public IPage<Patient> queryPatientPage(Integer pageNum, Integer pageSize) {
return askPatientService.queryPatientPage(pageNum, pageSize);
}
@ApiOperation("根据病人ID获取病人详细信息")
@GetMapping("queryPatientInfo")
public Patient queryPatientInfo(String id) {
return askPatientService.queryPatientById(id);
}
}

@ -0,0 +1,26 @@
package com.supervision.controller;
import com.supervision.model.DiagnosisPhysicalRecord;
import com.supervision.pojo.vo.AskPhysicalResultReqVO;
import com.supervision.service.AskPhysicalService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("askPhysical")
@RequiredArgsConstructor
@Validated
public class AskPhysicalController {
private final AskPhysicalService askPhysicalService;
@ApiOperation("查询体格检查的结果")
@GetMapping("queryAskPhysicalResult")
public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) {
return askPhysicalService.queryAskPhysicalResult(reqVO);
}
}

@ -0,0 +1,29 @@
package com.supervision.controller;
import com.supervision.model.Process;
import com.supervision.model.User;
import com.supervision.service.AskProcessService;
import com.supervision.util.UserUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "诊断流程")
@RestController
@RequestMapping("askProcess")
@RequiredArgsConstructor
public class AskProcessController {
private final AskProcessService askProcessService;
@ApiOperation("生成诊断流程任务")
@GetMapping("creatDiagnosisProcess")
public Process creatDiagnosisProcess(@ApiParam("病人ID") String patientId) {
User user = UserUtil.getUser();
return askProcessService.creatDiagnosisProcess(patientId, user);
}
}

@ -1,25 +0,0 @@
package com.supervision.controller;
import com.supervision.model.Patient;
import com.supervision.service.PatientService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "病人")
@RestController
@RequestMapping("/patient")
@RequiredArgsConstructor
public class PatientController {
private final PatientService patientService;
@ApiOperation("根据病人ID获取病人")
@GetMapping("queryPatientInfo")
public Patient queryPatientInfo(String id) {
return patientService.queryPatientById(id);
}
}

@ -0,0 +1,16 @@
package com.supervision.pojo.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class AskAncillaryResultReqVO {
@NotBlank(message = "辅助检查工具名称不能为空")
private String itemName;
@NotBlank(message = "流程ID不能为空")
private String processId;
}

@ -0,0 +1,18 @@
package com.supervision.pojo.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class AskPhysicalResultReqVO {
@NotBlank(message = "体格检查工具名称不能为空")
private String toolName;
private String locationName;
@NotBlank(message = "流程ID不能为空")
private String processId;
}

@ -0,0 +1,9 @@
package com.supervision.service;
import com.supervision.model.DiagnosisAncillaryRecord;
import com.supervision.pojo.vo.AskAncillaryResultReqVO;
public interface AskAncillaryService {
DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO);
}

@ -0,0 +1,11 @@
package com.supervision.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.Patient;
public interface AskPatientService {
IPage<Patient> queryPatientPage(Integer pageNum, Integer pageSize);
Patient queryPatientById(String id);
}

@ -0,0 +1,9 @@
package com.supervision.service;
import com.supervision.model.DiagnosisPhysicalRecord;
import com.supervision.pojo.vo.AskPhysicalResultReqVO;
public interface AskPhysicalService {
DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO);
}

@ -0,0 +1,11 @@
package com.supervision.service;
import com.supervision.model.Process;
import com.supervision.model.User;
public interface AskProcessService {
Process creatDiagnosisProcess(String patientId, User user);
}

@ -0,0 +1,48 @@
package com.supervision.service.impl;
import com.supervision.exception.BusinessException;
import com.supervision.model.ConfigAncillaryItem;
import com.supervision.model.DiagnosisAncillaryRecord;
import com.supervision.model.DiseaseAncillary;
import com.supervision.model.Process;
import com.supervision.pojo.vo.AskAncillaryResultReqVO;
import com.supervision.service.*;
import com.supervision.util.UserUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
@RequiredArgsConstructor
public class AskAncillaryServiceImpl implements AskAncillaryService {
private final ProcessService processService;
private final DiseaseAncillaryService diseaseAncillaryService;
private final ConfigAncillaryItemService ancillaryItemService;
@Override
public DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO) {
// 首先根据process_id查新到流程ID
Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID"));
// 找到对应的项目
ConfigAncillaryItem ancillaryItem = ancillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getItemName, reqVO.getItemName()).last("limit 1")
.oneOpt().orElseThrow(() -> new BusinessException("未找到对应的辅助工具"));
DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getPatientId, process.getPatientId()).eq(DiseaseAncillary::getItemId, ancillaryItem.getId())
.oneOpt().orElseGet(() -> {
DiseaseAncillary get = new DiseaseAncillary();
get.setResult("无相关资讯");
return get;
});
DiagnosisAncillaryRecord record = new DiagnosisAncillaryRecord();
record.setProcessId(process.getId());
record.setItemId(ancillaryItem.getId());
record.setValue(diseaseAncillary.getResult());
record.setCreateUserId(UserUtil.getUser().getId());
record.setUpdateUserId(UserUtil.getUser().getId());
return record;
}
}

@ -0,0 +1,27 @@
package com.supervision.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.exception.BusinessException;
import com.supervision.model.Patient;
import com.supervision.service.AskPatientService;
import com.supervision.service.PatientService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class AskPatientServiceImpl implements AskPatientService {
private final PatientService patientService;
@Override
public IPage<Patient> queryPatientPage(Integer pageNum, Integer pageSize) {
return patientService.lambdaQuery().page(new Page<>(pageNum,pageSize));
}
@Override
public Patient queryPatientById(String id) {
return patientService.lambdaQuery().eq(Patient::getId, id).oneOpt().orElseThrow(() -> new BusinessException("未找到用户"));
}
}

@ -0,0 +1,59 @@
package com.supervision.service.impl;
import cn.hutool.core.util.StrUtil;
import com.supervision.exception.BusinessException;
import com.supervision.model.*;
import com.supervision.model.Process;
import com.supervision.pojo.vo.AskPhysicalResultReqVO;
import com.supervision.service.*;
import com.supervision.util.UserUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
@RequiredArgsConstructor
public class AskPhysicalServiceImpl implements AskPhysicalService {
private final ConfigPhysicalLocationService locationService;
private final ConfigPhysicalToolService toolService;
private final DiseasePhysicalService diseasePhysicalService;
private final ProcessService processService;
@Override
public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) {
// 首先根据process_id查新到流程ID
Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID"));
ConfigPhysicalTool tool = toolService.lambdaQuery().eq(ConfigPhysicalTool::getToolName, reqVO.getToolName()).last("limit 1")
.oneOpt().orElseThrow(() -> new BusinessException("工具不支持"));
// 是否需要具体的部位,0否1是
String locationId = null;
if (1 == tool.getRequireLocation()){
ConfigPhysicalLocation location = locationService.lambdaQuery().eq(ConfigPhysicalLocation::getLocationName, reqVO.getLocationName()).last("limit 1")
.oneOpt().orElseThrow(() -> new BusinessException("为找到对应部位"));
locationId = location.getId();
}
DiseasePhysical result = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getPatientId, process.getPatientId())
.eq(DiseasePhysical::getToolId, tool.getId()).eq(StrUtil.isNotBlank(locationId), DiseasePhysical::getLocationId, locationId).last("limit 1")
.oneOpt()
.orElseGet(() -> {
DiseasePhysical diseasePhysical = new DiseasePhysical();
diseasePhysical.setResult("无相关资讯");
return diseasePhysical;
});
// 检查记录保存到数据库中
DiagnosisPhysicalRecord diagnosisPhysicalRecord = new DiagnosisPhysicalRecord();
diagnosisPhysicalRecord.setProcessId(process.getId());
diagnosisPhysicalRecord.setToolId(tool.getId());
diagnosisPhysicalRecord.setLocationId(locationId);
diagnosisPhysicalRecord.setResult(result.getResult());
diagnosisPhysicalRecord.setCreateUserId(UserUtil.getUser().getCreateUserId());
diagnosisPhysicalRecord.setUpdateUserId(UserUtil.getUser().getCreateUserId());
diagnosisPhysicalRecord.insert();
return diagnosisPhysicalRecord;
}
}

@ -0,0 +1,27 @@
package com.supervision.service.impl;
import com.supervision.model.Process;
import com.supervision.model.User;
import com.supervision.service.AskProcessService;
import com.supervision.service.ProcessService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class AskProcessServiceImpl implements AskProcessService {
private final ProcessService processService;
@Override
public Process creatDiagnosisProcess(String patientId, User user) {
Process process = new Process();
process.setPatientId(patientId);
process.setUserId(user.getId());
process.setStatus(0);
process.setCreateUserId(user.getId());
process.setUpdateUserId(user.getId());
processService.save(process);
return process;
}
}

@ -0,0 +1,20 @@
package com.supervision.util;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.config.ThreadCache;
import com.supervision.domain.UserInfo;
import com.supervision.exception.BusinessException;
import com.supervision.model.User;
public class UserUtil {
public static User getUser(){
String userStr = ThreadCache.USER.get();
User bean = JSONUtil.toBean(userStr, User.class);
if (ObjectUtil.isEmpty(bean)){
throw new BusinessException("未获取到用户信息");
}
return bean;
}
}
Loading…
Cancel
Save