门诊皮试 up
This commit is contained in:
@@ -2,16 +2,12 @@ package com.openhis.web.outpatientmanage.appservice;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto;
|
import com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto;
|
||||||
import com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam;
|
import com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam;
|
||||||
import com.openhis.web.patientmanage.dto.PatientListDto;
|
import com.openhis.web.patientmanage.dto.PatientListDto;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 门诊管理 应用实现类
|
* 门诊管理 应用实现类
|
||||||
@@ -31,6 +27,11 @@ public interface IOutpatientSkinTestRecordService {
|
|||||||
*/
|
*/
|
||||||
List<PatientListDto> getSkinTestResult();
|
List<PatientListDto> getSkinTestResult();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取药品状态列表
|
||||||
|
*/
|
||||||
|
List<PatientListDto> getMedicationStatus();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询门诊皮试记录,可选条件
|
* 分页查询门诊皮试记录,可选条件
|
||||||
*
|
*
|
||||||
@@ -67,13 +68,13 @@ public interface IOutpatientSkinTestRecordService {
|
|||||||
*
|
*
|
||||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||||
*/
|
*/
|
||||||
int editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
boolean editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 护士核对皮试结果后,确认签名(服务申请管理与过敏与不耐受的相关字段更新)
|
* 护士核对皮试结果后,确认签名(服务申请管理与过敏与不耐受的相关字段更新)
|
||||||
*
|
*
|
||||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||||
*/
|
*/
|
||||||
int nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
boolean nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import com.openhis.clinical.domain.AllergyIntolerance;
|
|||||||
import com.openhis.clinical.mapper.AllergyIntoleranceMapper;
|
import com.openhis.clinical.mapper.AllergyIntoleranceMapper;
|
||||||
import com.openhis.clinical.service.IAllergyIntoleranceService;
|
import com.openhis.clinical.service.IAllergyIntoleranceService;
|
||||||
import com.openhis.common.enums.ClinicalStatus;
|
import com.openhis.common.enums.ClinicalStatus;
|
||||||
|
import com.openhis.common.enums.EventStatus;
|
||||||
import com.openhis.common.enums.VerificationStatus;
|
import com.openhis.common.enums.VerificationStatus;
|
||||||
import com.openhis.common.utils.EnumUtils;
|
import com.openhis.common.utils.EnumUtils;
|
||||||
import com.openhis.web.outpatientmanage.appservice.IOutpatientSkinTestRecordService;
|
import com.openhis.web.outpatientmanage.appservice.IOutpatientSkinTestRecordService;
|
||||||
@@ -59,7 +60,7 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
PractitionerRoleMapper practitionerRoleMapper;
|
PractitionerRoleMapper practitionerRoleMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
IAllergyIntoleranceService AllergyIntoleranceService;
|
IAllergyIntoleranceService allergyIntoleranceService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
IPractitionerRoleService practitionerRoleService;
|
IPractitionerRoleService practitionerRoleService;
|
||||||
@@ -109,6 +110,24 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
return dtos;
|
return dtos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取药品状态列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<PatientListDto> getMedicationStatus() {
|
||||||
|
// 获取药品状态列表
|
||||||
|
List<EventStatus> statusList = Arrays.asList(EventStatus.values());
|
||||||
|
List<PatientListDto> dtos = new ArrayList<>();
|
||||||
|
// 取得更新值
|
||||||
|
for (EventStatus status : statusList) {
|
||||||
|
PatientListDto dto = new PatientListDto();
|
||||||
|
dto.setValue(status.getValue());
|
||||||
|
dto.setInfo(status.getInfo());
|
||||||
|
dtos.add(dto);
|
||||||
|
}
|
||||||
|
return dtos;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询门诊皮试记录,可选条件
|
* 分页查询门诊皮试记录,可选条件
|
||||||
*
|
*
|
||||||
@@ -136,6 +155,9 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
// 皮试检查项目状态枚举类回显赋值
|
// 皮试检查项目状态枚举类回显赋值
|
||||||
e.setVerificationStatusEnum_enumText(
|
e.setVerificationStatusEnum_enumText(
|
||||||
EnumUtils.getInfoByValue(VerificationStatus.class, e.getVerificationStatusEnum()));
|
EnumUtils.getInfoByValue(VerificationStatus.class, e.getVerificationStatusEnum()));
|
||||||
|
// 药品状态状态枚举类回显赋值
|
||||||
|
e.setMedicationStatusEnum_enumText(
|
||||||
|
EnumUtils.getInfoByValue(EventStatus.class, e.getMedicationStatusEnum()));
|
||||||
});
|
});
|
||||||
return outpatientSkinTestRecordPage;
|
return outpatientSkinTestRecordPage;
|
||||||
}
|
}
|
||||||
@@ -173,11 +195,12 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
public boolean editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
||||||
// 判断核对人是否不为空
|
// 判断核对人是否不为空,药品状态不是已发药
|
||||||
if (outpatientSkinTestRecordDto.getPerformerCheckId() != null) {
|
if (outpatientSkinTestRecordDto.getPerformerCheckId() != null
|
||||||
// 签名后不能修改
|
|| outpatientSkinTestRecordDto.getMedicationStatusEnum() != EventStatus.COMPLETED.getValue()) {
|
||||||
return 0;
|
// 签名后不能修改,未发药不能修改
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新服务申请管理表
|
// 更新服务申请管理表
|
||||||
@@ -187,7 +210,7 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
|
|
||||||
// 判断开始时间为空,不允许更新表
|
// 判断开始时间为空,不允许更新表
|
||||||
if (StringUtils.isEmpty(outpatientSkinTestRecordDto.getOccurrenceStartTime())) {
|
if (StringUtils.isEmpty(outpatientSkinTestRecordDto.getOccurrenceStartTime())) {
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
Date endTime;
|
Date endTime;
|
||||||
// 判断结束时间,为空以开始时间基础加10分钟
|
// 判断结束时间,为空以开始时间基础加10分钟
|
||||||
@@ -208,7 +231,7 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
Practitioner practitioner =
|
Practitioner practitioner =
|
||||||
practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
if (practitioner == null) {
|
if (practitioner == null) {
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
// 设置执行人ID
|
// 设置执行人ID
|
||||||
serviceRequest.setPerformerId(practitioner.getId());
|
serviceRequest.setPerformerId(practitioner.getId());
|
||||||
@@ -249,26 +272,20 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
// 设置备注
|
// 设置备注
|
||||||
.setNote(outpatientSkinTestRecordDto.getNote());
|
.setNote(outpatientSkinTestRecordDto.getNote());
|
||||||
|
|
||||||
// 当皮试结果是为阳性的时候,设置过敏时间
|
|
||||||
if (allergyIntolerance.getClinicalStatusEnum() == 0) {
|
|
||||||
// 设置过敏时间(当下日期)
|
|
||||||
allergyIntolerance.setOnsetDateTime(DateUtils.getNowDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 以服务申请ID为主条件更新过敏与不耐受表
|
// 以服务申请ID为主条件更新过敏与不耐受表
|
||||||
UpdateWrapper<AllergyIntolerance> updateWrapperAI = new UpdateWrapper<>();
|
UpdateWrapper<AllergyIntolerance> updateWrapperAI = new UpdateWrapper<>();
|
||||||
updateWrapperAI.eq("request_id", allergyIntolerance.getRequestId());
|
updateWrapperAI.eq("request_id", allergyIntolerance.getRequestId());
|
||||||
boolean result = AllergyIntoleranceService.saveOrUpdate(allergyIntolerance, updateWrapperAI);
|
boolean result = allergyIntoleranceService.saveOrUpdate(allergyIntolerance, updateWrapperAI);
|
||||||
// 更新或插入失败
|
// 更新或插入失败
|
||||||
if (!result || countUpdate <= 0) {
|
if (!result || countUpdate <= 0) {
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
public boolean nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
||||||
|
|
||||||
// 过敏与不耐受表更新
|
// 过敏与不耐受表更新
|
||||||
QueryWrapper<AllergyIntolerance> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<AllergyIntolerance> queryWrapper = new QueryWrapper<>();
|
||||||
@@ -276,9 +293,10 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
AllergyIntolerance allergyIntolerance = allergyIntoleranceMapper.selectOne(queryWrapper);
|
AllergyIntolerance allergyIntolerance = allergyIntoleranceMapper.selectOne(queryWrapper);
|
||||||
|
|
||||||
// 检查的状态是确定和反驳的时候,不更新
|
// 检查的状态是确定和反驳的时候,不更新
|
||||||
if (allergyIntolerance == null || (allergyIntolerance.getVerificationStatusEnum() != 2
|
if (allergyIntolerance == null
|
||||||
&& allergyIntolerance.getVerificationStatusEnum() != 3)) {
|
|| (allergyIntolerance.getVerificationStatusEnum() != VerificationStatus.CONFIRMED.getValue()
|
||||||
return 0;
|
&& allergyIntolerance.getVerificationStatusEnum() != VerificationStatus.REFUTED.getValue())) {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新服务申请管理表的
|
// 更新服务申请管理表的
|
||||||
@@ -288,30 +306,42 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
// 找不到找到practitionerId时,不更新
|
// 找不到找到practitionerId时,不更新
|
||||||
if (practitioner == null) {
|
if (practitioner == null) {
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
// 设置核对人ID
|
// 设置核对人ID
|
||||||
serviceRequest.setPerformerCheckId(practitioner.getId());
|
serviceRequest.setPerformerCheckId(practitioner.getId());
|
||||||
|
// 把服务请求的状态设置为已完成
|
||||||
|
serviceRequest.setStatusEnum(EventStatus.COMPLETED.getValue());
|
||||||
// 以id为主条件更新服务申请管理表
|
// 以id为主条件更新服务申请管理表
|
||||||
UpdateWrapper<ServiceRequest> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<ServiceRequest> updateWrapper = new UpdateWrapper<>();
|
||||||
updateWrapper.eq("id", outpatientSkinTestRecordDto.getId()).set("performer_check_id",
|
updateWrapper.eq("id", outpatientSkinTestRecordDto.getId())
|
||||||
serviceRequest.getPerformerCheckId());
|
.set("performer_check_id", serviceRequest.getPerformerCheckId())
|
||||||
|
.set("status_enum", serviceRequest.getStatusEnum());
|
||||||
|
|
||||||
boolean resultUpdateRequestService = serviceRequestService.update(null, updateWrapper);
|
boolean resultUpdateRequestService = serviceRequestService.update(null, updateWrapper);
|
||||||
|
|
||||||
// 设置断言人
|
// 设置断言人
|
||||||
allergyIntolerance.setCheckPractitionerId(practitioner.getId());
|
allergyIntolerance.setCheckPractitionerId(practitioner.getId());
|
||||||
|
|
||||||
|
// 当皮试结果是为阳性的时候,设置过敏时间
|
||||||
|
if (allergyIntolerance.getClinicalStatusEnum() == ClinicalStatus.ACTIVE.getValue()) {
|
||||||
|
// 设置过敏时间(皮实结束时间)
|
||||||
|
allergyIntolerance
|
||||||
|
.setOnsetDateTime(DateUtils.parseDate(outpatientSkinTestRecordDto.getOccurrenceEndTime()));
|
||||||
|
}
|
||||||
|
|
||||||
// 以服务申请ID为主条件更新服务申请管理表
|
// 以服务申请ID为主条件更新服务申请管理表
|
||||||
UpdateWrapper<AllergyIntolerance> updateWrapperAI = new UpdateWrapper<>();
|
UpdateWrapper<AllergyIntolerance> updateWrapperAI = new UpdateWrapper<>();
|
||||||
updateWrapperAI.eq("request_id", outpatientSkinTestRecordDto.getId()).set("check_practitioner_id",
|
updateWrapperAI.eq("request_id", outpatientSkinTestRecordDto.getId())
|
||||||
allergyIntolerance.getCheckPractitionerId());
|
.set("check_practitioner_id", allergyIntolerance.getCheckPractitionerId())
|
||||||
boolean resultUpdateAllergyIntolerance = serviceRequestService.update(updateWrapper);
|
.set("onset_date_time", allergyIntolerance.getOnsetDateTime());
|
||||||
|
boolean resultUpdateAllergyIntolerance = allergyIntoleranceService.update(null, updateWrapperAI);
|
||||||
|
|
||||||
if (resultUpdateRequestService && resultUpdateAllergyIntolerance) {
|
if (resultUpdateRequestService && resultUpdateAllergyIntolerance) {
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class OutpatientSkinTestRecordController {
|
|||||||
@PutMapping("/outpatient-record-skintest")
|
@PutMapping("/outpatient-record-skintest")
|
||||||
public R<?> editSkinTestRecord(@Validated @RequestBody OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
public R<?> editSkinTestRecord(@Validated @RequestBody OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
||||||
|
|
||||||
if (OutpatientSkinTestRecordService.editSkinTestRecord(outpatientSkinTestRecordDto) <= 0) {
|
if (!OutpatientSkinTestRecordService.editSkinTestRecord(outpatientSkinTestRecordDto)) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
}
|
}
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"皮试项目检查"}));
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"皮试项目检查"}));
|
||||||
@@ -69,7 +69,7 @@ public class OutpatientSkinTestRecordController {
|
|||||||
@PutMapping("/outpatient-record-signcheck")
|
@PutMapping("/outpatient-record-signcheck")
|
||||||
public R<?> nurseSignChkPs(@Validated @RequestBody OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
public R<?> nurseSignChkPs(@Validated @RequestBody OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
|
||||||
|
|
||||||
if (OutpatientSkinTestRecordService.nurseSignChkPs(outpatientSkinTestRecordDto) <= 0) {
|
if (!OutpatientSkinTestRecordService.nurseSignChkPs(outpatientSkinTestRecordDto)) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, null));
|
||||||
}
|
}
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"皮试记录护士核对签名"}));
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"皮试记录护士核对签名"}));
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ public class OutpatientSkinTestRecordDto {
|
|||||||
|
|
||||||
/** 药品状态 */
|
/** 药品状态 */
|
||||||
private Integer medicationStatusEnum;
|
private Integer medicationStatusEnum;
|
||||||
|
private String medicationStatusEnum_enumText;
|
||||||
|
|
||||||
/** 皮试结果 */
|
/** 皮试结果 */
|
||||||
private Integer clinicalStatusEnum;
|
private Integer clinicalStatusEnum;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
ad.name AS medicationInformation, --药品信息
|
ad.name AS medicationInformation, --药品信息
|
||||||
md.bus_no || ' ' || md.name || ' 规格:' || COALESCE(m.total_volume, '') AS medicationDetail,--药品
|
md.bus_no || ' ' || md.name || ' 规格:' || COALESCE(m.total_volume, '') AS medicationDetail,--药品
|
||||||
m.lot_number AS medicationLotNumber, --药品批次号
|
m.lot_number AS medicationLotNumber, --药品批次号
|
||||||
mr.status_enum, --药品状态
|
mr.status_enum AS medicationStatusEnum, --药品状态
|
||||||
sr.performer_id, --执行护士
|
sr.performer_id, --执行护士
|
||||||
sr.performer_check_id,--核对人
|
sr.performer_check_id,--核对人
|
||||||
to_char(sr.occurrence_start_time, 'YYYY-MM-DD HH24:MI:SS') AS occurrenceStartTime, --预计执行时间
|
to_char(sr.occurrence_start_time, 'YYYY-MM-DD HH24:MI:SS') AS occurrenceStartTime, --预计执行时间
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
ad.bus_no = 'ps001' -- 皮试检查的编号,todo:编号未定,后期修改
|
ad.bus_no = 'ps001' -- 皮试检查的编号,todo:编号未定,后期修改
|
||||||
AND mr.skin_test_flag = 1
|
AND mr.skin_test_flag = 1
|
||||||
AND md.skin_test_flag = 1
|
AND md.skin_test_flag = 1
|
||||||
AND sr.status_enum = 2 --服务状态有效
|
AND sr.status_enum in (2,3,6) --服务状态有效
|
||||||
AND ep.type_code = '1' --参与者身份类型是医生
|
AND ep.type_code = '1' --参与者身份类型是医生
|
||||||
|
|
||||||
<!-- 门诊号 查询条件-->
|
<!-- 门诊号 查询条件-->
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
ad.bus_no = 'ps001' -- 皮试检查的编号,todo:编号未定,后期修改
|
ad.bus_no = 'ps001' -- 皮试检查的编号,todo:编号未定,后期修改
|
||||||
AND mr.skin_test_flag = 1
|
AND mr.skin_test_flag = 1
|
||||||
AND md.skin_test_flag = 1
|
AND md.skin_test_flag = 1
|
||||||
AND sr.status_enum = 2 --服务状态有效
|
AND sr.status_enum in (2,3,6) --服务状态有效
|
||||||
AND ep.type_code = '1' --参与者身份类型是医生
|
AND ep.type_code = '1' --参与者身份类型是医生
|
||||||
|
|
||||||
<!-- 门诊号 查询条件-->
|
<!-- 门诊号 查询条件-->
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import lombok.Getter;
|
|||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum EventStatus {
|
public enum EventStatus implements HisEnumInterface {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 草稿
|
* 草稿
|
||||||
|
|||||||
Reference in New Issue
Block a user