病人信息和输液记录格式修改

This commit is contained in:
liuhongrui
2025-03-18 14:59:03 +08:00
parent 1276b80a01
commit cc80209329
12 changed files with 229 additions and 71 deletions

View File

@@ -1,16 +1,14 @@
package com.openhis.web.outpatientmanage.appservice;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.openhis.administration.domain.Practitioner;
import com.openhis.administration.domain.PractitionerRole;
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionInitDto;
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto;
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto;
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionSearchParam;
import org.apache.ibatis.annotations.Param;
/**
* 门诊管理——输液实现类
@@ -27,7 +25,6 @@ public interface IOutpatientInfusionRecordService {
*/
OutpatientInfusionInitDto getOutpatientInfusionInit();
/**
* 获取门诊输液记录的患者列表
*
@@ -39,14 +36,14 @@ public interface IOutpatientInfusionRecordService {
IPage<OutpatientInfusionPatientDto> getOutpatientInfusionPatient(
OutpatientInfusionSearchParam outpatientInfusionSearchParam, Integer pageNo, Integer pageSize);
/**
* 查询单个患者门诊输液记录查询
*
* @param outpatientInfusionPatientDto 患者输液信息
* @return 门诊输液记录列表
*/
List<OutpatientInfusionRecordDto> getPatientInfusionRecord(OutpatientInfusionPatientDto outpatientInfusionPatientDto);
List<OutpatientInfusionRecordDto>
getPatientInfusionRecord(OutpatientInfusionPatientDto outpatientInfusionPatientDto);
/**
* 执行单个患者门诊输液
@@ -57,6 +54,14 @@ public interface IOutpatientInfusionRecordService {
*/
boolean editPatientInfusionRecord(OutpatientInfusionRecordDto outpatientInfusionRecordDto, Long exeCount);
/**
* 执行单个患者门诊输液
*
* @param outpatientInfusionRecordDtoList 输液记录
* @return 修改成功/失败
*/
boolean batchEditPatientInfusionRecord(List<OutpatientInfusionRecordDto> outpatientInfusionRecordDtoList);
/**
* 执行输液后,修改执行结束时间
*

View File

@@ -5,6 +5,7 @@ import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -12,9 +13,11 @@ import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.utils.AgeCalculatorUtil;
@@ -25,9 +28,11 @@ import com.openhis.administration.domain.Practitioner;
import com.openhis.administration.domain.PractitionerRole;
import com.openhis.administration.service.IPractitionerRoleService;
import com.openhis.administration.service.IPractitionerService;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.enums.AdministrativeGender;
import com.openhis.common.enums.ClinicalStatus;
import com.openhis.common.enums.EventStatus;
import com.openhis.common.enums.Whether;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.outpatientmanage.appservice.IOutpatientInfusionRecordService;
@@ -39,7 +44,6 @@ import com.openhis.web.outpatientmanage.mapper.OutpatientManageMapper;
import com.openhis.workflow.domain.ServiceRequest;
import com.openhis.workflow.mapper.ServiceRequestMapper;
import com.openhis.workflow.service.IServiceRequestService;
import org.springframework.transaction.annotation.Transactional;
/**
* 门诊管理——输液实现类
@@ -85,9 +89,9 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
LocalDateTime beginTime = DateUtils.startDayOrEndDay(DateUtils.getDate(), true);
LocalDateTime endTime = DateUtils.startDayOrEndDay(DateUtils.getDate(), false);
// 创建查询包装器
QueryWrapper<OutpatientInfusionRecordDto> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("occurrence_start_time", beginTime);
queryWrapper.le("occurrence_end_time", endTime);
LambdaQueryWrapper<OutpatientInfusionRecordDto> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.ge(OutpatientInfusionRecordDto::getOccurrenceStartTime, beginTime);
queryWrapper.le(OutpatientInfusionRecordDto::getOccurrenceEndTime, endTime);
// 从数据库获取输液记录列表
List<OutpatientInfusionRecordDto> infusionList =
@@ -98,9 +102,14 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
// 药品状态
e.setClinicalStatusEnum_enumText(EnumUtils.getInfoByValue(EventStatus.class, e.getMedicationStatusEnum()));
// 皮试标志
e.setSkinTestFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getSkinTestFlag()));
// 只有皮试药品才显示皮试结果
if (e.getSkinTestFlag() == Whether.YES.getValue()) {
// 皮试结果
e.setMedicationStatusEnum_enumText(
EnumUtils.getInfoByValue(ClinicalStatus.class, e.getClinicalStatusEnum()));
}
});
initDto.setInfusionList(infusionList);
@@ -122,27 +131,36 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
LocalDateTime beginTime;
LocalDateTime endTime;
if (outpatientInfusionSearchParam == null || outpatientInfusionSearchParam.getBeginTime() == null
String searchKey;
// 搜索key为空
if (outpatientInfusionSearchParam == null) {
searchKey = null;
} else {
searchKey = outpatientInfusionSearchParam.getSearchKey();
}
// 任意开始结束时间为空,默认查询当天日期记录
if (outpatientInfusionSearchParam.getBeginTime() == null
|| outpatientInfusionSearchParam.getEndTime() == null) {
beginTime = DateUtils.startDayOrEndDay(DateUtils.getDate(), true);
endTime = DateUtils.startDayOrEndDay(DateUtils.getDate(), false);
} else {
} else {// 时间不空,删选时间
beginTime = DateUtils.startDayOrEndDay(outpatientInfusionSearchParam.getBeginTime(), true);
endTime = DateUtils.startDayOrEndDay(outpatientInfusionSearchParam.getEndTime(), false);
}
// 构建查询条件
QueryWrapper<OutpatientInfusionPatientDto> queryWrapper =
HisQueryUtils.buildQueryWrapper(null, outpatientInfusionSearchParam.getSearchKey(),
new HashSet<>(Arrays.asList("patient_bus_no", "encounter_bus_no", "patient_name")), null);
QueryWrapper<OutpatientInfusionPatientDto> queryWrapper = HisQueryUtils.buildQueryWrapper(null, searchKey,
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientBusNo,
CommonConstants.FieldName.EncounterBusNo, CommonConstants.FieldName.PatientName)),
null);
// based_on_id 是为空的
queryWrapper.eq("based_on_id", null);
// 状态是未完成的
queryWrapper.in("status_enum", EventStatus.IN_PROGRESS.getValue(), EventStatus.NOT_DONE.getValue());
queryWrapper.in("service_status", EventStatus.IN_PROGRESS.getValue(), EventStatus.NOT_DONE.getValue());
// 添加时间段查询条件
if (beginTime != null && endTime != null) {
queryWrapper.ge("begin_time", beginTime);
queryWrapper.le("end_time", endTime);
queryWrapper.ge("create_time", beginTime);
queryWrapper.le("create_time", endTime);
}
IPage<OutpatientInfusionPatientDto> outpatientInfusionPatientDto =
@@ -172,12 +190,13 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
return null;
}
// 创建查询包装器
QueryWrapper<OutpatientInfusionRecordDto> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("patient_id", outpatientInfusionPatientDto.getPatientId());
LambdaQueryWrapper<OutpatientInfusionRecordDto> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OutpatientInfusionRecordDto::getPatientId, outpatientInfusionPatientDto.getPatientId());
// based_on_id 是为空的
queryWrapper.eq("based_on_id", null);
queryWrapper.eq(OutpatientInfusionRecordDto::getBasedOnId, null);
// 状态是未完成的
queryWrapper.in("status_enum", EventStatus.IN_PROGRESS.getValue(), EventStatus.NOT_DONE.getValue());
queryWrapper.in(OutpatientInfusionRecordDto::getServiceStatus, EventStatus.IN_PROGRESS.getValue(),
EventStatus.NOT_DONE.getValue());
// 从数据库获取输液记录列表
List<OutpatientInfusionRecordDto> infusionList =
outpatientManageMapper.getOutpatientInfusionRecord(queryWrapper);
@@ -228,7 +247,7 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
.setPerformerTypeCode(practitionerRole.getRoleCode())
// 设置执行日期为当前时间
.setOccurrenceStartTime(DateUtils.getNowDate())
// 默认30结束
// 默认执行时间加30min结束
.setOccurrenceEndTime(DateUtils.addDateMinute(DateUtils.getNowDate(), 30));
boolean result = serviceRequestService.save(serviceRequest);
@@ -239,12 +258,13 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
// 判断如果是执行该患者最后一次记录,更新原来的服请求状态
if ((BigDecimal.valueOf(exeCount + 1)).compareTo(outpatientInfusionRecordDto.getMedicationAntity()) == 0) {
// 以id为主条件更新服务申请管理表
UpdateWrapper<ServiceRequest> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", outpatientInfusionRecordDto.getServiceId())
.set("status_enum", EventStatus.COMPLETED.getValue())
.set("performer_type_code", practitionerRole.getRoleCode())
.set("performer_id", practitioner.getId()).set("occurrence_start_time", DateUtils.getNowDate())
.set("occurrence_end_time", DateUtils.getNowDate());
LambdaUpdateWrapper<ServiceRequest> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ServiceRequest::getId, outpatientInfusionRecordDto.getServiceId())
.set(ServiceRequest::getStatusEnum, EventStatus.COMPLETED.getValue())
.set(ServiceRequest::getPerformerTypeCode, practitionerRole.getRoleCode())
.set(ServiceRequest::getPerformerId, practitioner.getId())
.set(ServiceRequest::getOccurrenceStartTime, DateUtils.getNowDate())
.set(ServiceRequest::getOccurrenceEndTime, DateUtils.getNowDate());
int countUpdate = serviceRequestMapper.update(null, updateWrapper);
if (countUpdate < 0) {
return false;
@@ -256,6 +276,108 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
return false;
}
/**
* 执行患者门诊输液
*
* @param outpatientInfusionRecordDtoList 输液记录
* @return 修改成功/失败
*/
@Override
public boolean batchEditPatientInfusionRecord(List<OutpatientInfusionRecordDto> outpatientInfusionRecordDtoList) {
// 根据执行人ID通过登录userId获取
Practitioner practitioner =
practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
// 根具执行人ID获取执行人身份类型
PractitionerRole practitionerRole = practitionerRoleService.getPractitionerRoleById(practitioner.getId());
if (practitioner == null || practitionerRole == null) {
return false;
}
// 按 groupId 分组
Map<Long, List<OutpatientInfusionRecordDto>> groupedRecords = outpatientInfusionRecordDtoList.stream()
.collect(Collectors.groupingBy(OutpatientInfusionRecordDto::getGroupId));
// 遍历每个分组
for (Map.Entry<Long, List<OutpatientInfusionRecordDto>> entry : groupedRecords.entrySet()) {
// Long groupId = entry.getKey();
List<OutpatientInfusionRecordDto> groupRecords = entry.getValue();
// 获取执行次数
Long exeCount = serviceRequestService.countServiceRequestByBasedOnId(groupRecords.get(0).getBasedOnId());
// 批量处理每个分组中的记录
for (OutpatientInfusionRecordDto record : groupRecords) {
boolean result = editSingleRecord(record, exeCount, practitioner, practitionerRole);
if (!result) {
return false; // 如果某个记录执行失败,返回 false
}
}
// 更新分组中每个记录的状态
for (OutpatientInfusionRecordDto record : groupRecords) {
if (!updateRecordStatus(record.getServiceId(), practitioner, practitionerRole)) {
return false; // 如果更新状态失败,返回 false
}
}
}
return true; // 所有分组都执行成功
}
/**
* 处理单个记录的执行逻辑
*
* @param record 输液记录
* @param practitioner 执行人
* @param practitionerRole 执行人身份类型
* @return 执行成功/失败
*/
public boolean editSingleRecord(OutpatientInfusionRecordDto record, Long exeCount, Practitioner practitioner,
PractitionerRole practitionerRole) {
String busNo = AssignSeqUtil.formatString(record.getBusNo(), exeCount, 3);
if ((BigDecimal.valueOf(exeCount)).compareTo(record.getMedicationAntity()) < 0) {
ServiceRequest serviceRequest = new ServiceRequest();
serviceRequest.setPrescriptionNo(record.getPrescriptionNo()).setBusNo(busNo)
.setBasedOnId(record.getServiceId()).setStatusEnum(EventStatus.COMPLETED.getValue())
.setActivityId(record.getActivityId()).setPatientId(record.getPatientId())
.setEncounterId(record.getEncounterId()).setPerformerId(practitioner.getId())
.setPerformerTypeCode(practitionerRole.getRoleCode()).setOccurrenceStartTime(DateUtils.getNowDate())
.setOccurrenceEndTime(DateUtils.addDateMinute(DateUtils.getNowDate(), 30));
boolean result = serviceRequestService.save(serviceRequest);
if (!result) {
return false;
}
}
return true;
}
/**
* 更新执行状态
*
* @param serviceId 服务请求ID
* @param practitioner 执行人
* @param practitionerRole 执行人身份类型
* @return 修改成功/失败
*/
public boolean updateRecordStatus(Long serviceId, Practitioner practitioner, PractitionerRole practitionerRole) {
LambdaUpdateWrapper<ServiceRequest> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ServiceRequest::getId, serviceId)
.set(ServiceRequest::getStatusEnum, EventStatus.COMPLETED.getValue())
.set(ServiceRequest::getPerformerTypeCode, practitionerRole.getRoleCode())
.set(ServiceRequest::getPerformerId, practitioner.getId())
.set(ServiceRequest::getOccurrenceStartTime, DateUtils.getNowDate())
.set(ServiceRequest::getOccurrenceEndTime, DateUtils.getNowDate());
int countUpdate = serviceRequestMapper.update(null, updateWrapper);
return countUpdate > 0;
}
/**
* 执行输液后,修改执行结束时间
*
@@ -265,15 +387,14 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
@Override
public boolean editPatientInfusionTime(OutpatientInfusionRecordDto outpatientInfusionRecordDto) {
// 以id为主条件更新服务申请管理表
UpdateWrapper<ServiceRequest> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", outpatientInfusionRecordDto.getServiceId()).set("occurrence_end_time",
LambdaUpdateWrapper<ServiceRequest> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ServiceRequest::getId, outpatientInfusionRecordDto.getServiceId()).set(
ServiceRequest::getOccurrenceEndTime,
DateUtils.parseDate(outpatientInfusionRecordDto.getOccurrenceEndTime()));
int countUpdate = serviceRequestMapper.update(null, updateWrapper);
if (countUpdate < 0) {
return false;
} else {
return true;
}
return countUpdate < 0 ? false : true;
}
/**
@@ -281,7 +402,7 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
*
* @param beginTime 开始时间
* @param endTime 结束时间
* @return 门诊输液记录列表
* @return 门诊输液执行记录查询
*/
@Override
public List<OutpatientInfusionRecordDto> getPatientInfusionPerformRecord(String beginTime, String endTime) {
@@ -298,14 +419,15 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR
}
// 创建查询包装器
QueryWrapper<OutpatientInfusionRecordDto> queryWrapper = new QueryWrapper<>();
LambdaQueryWrapper<OutpatientInfusionRecordDto> queryWrapper = new LambdaQueryWrapper<>();
// based_on_id 不为空
queryWrapper.isNotNull("based_on_id");
queryWrapper.isNotNull(OutpatientInfusionRecordDto::getBasedOnId);
// 状态是已完成
queryWrapper.eq("status_enum", EventStatus.COMPLETED.getValue());
queryWrapper.eq(OutpatientInfusionRecordDto::getServiceStatus, EventStatus.COMPLETED.getValue());
// 时间筛选
queryWrapper.ge("begin_time", beginDateTime);
queryWrapper.le("end_time", endDateTime);
queryWrapper.ge(OutpatientInfusionRecordDto::getCreateTime, beginDateTime);
queryWrapper.le(OutpatientInfusionRecordDto::getCreateTime, endDateTime);
// 从数据库获取输液记录列表
List<OutpatientInfusionRecordDto> infusionPerformList =
outpatientManageMapper.getOutpatientInfusionRecord(queryWrapper);

View File

@@ -25,7 +25,7 @@ import lombok.extern.slf4j.Slf4j;
* @date 2025/3/12
*/
@RestController
@RequestMapping("/outpatientmanage/infusion")
@RequestMapping("/outpatient-manage/infusion")
@Slf4j
@AllArgsConstructor
public class OutpatientInfusionRecordController {

View File

@@ -21,7 +21,7 @@ import lombok.extern.slf4j.Slf4j;
* @date 2025/3/5
*/
@RestController
@RequestMapping("/outpatientmanage/skintest")
@RequestMapping("/outpatient-manage/skin-test")
@Slf4j
@AllArgsConstructor
public class OutpatientSkinTestRecordController {
@@ -46,7 +46,7 @@ public class OutpatientSkinTestRecordController {
*
* @param outpatientSkinTestRecordDto 皮试记录信息
*/
@PutMapping("/outpatient-record-skintest")
@PutMapping("/outpatient-record-skin-test")
public R<?> editSkinTestRecord(@Validated @RequestBody OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
if (!OutpatientSkinTestRecordService.editSkinTestRecord(outpatientSkinTestRecordDto)) {
@@ -60,7 +60,7 @@ public class OutpatientSkinTestRecordController {
*
* @param outpatientSkinTestRecordDto 皮试记录信息
*/
@PutMapping("/outpatient-record-signcheck")
@PutMapping("/outpatient-record-sign-check")
public R<?> nurseSignChkPs(@Validated @RequestBody OutpatientSkinTestRecordDto outpatientSkinTestRecordDto) {
if (!OutpatientSkinTestRecordService.nurseSignChkPs(outpatientSkinTestRecordDto)) {

View File

@@ -3,10 +3,12 @@ package com.openhis.web.outpatientmanage.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.annotation.Dict;
import com.sun.jna.platform.win32.OaIdl;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 门诊输液记录Dto
@@ -22,6 +24,9 @@ public class OutpatientInfusionRecordDto {
@JsonSerialize(using = ToStringSerializer.class)
private Long serviceId;
/** 服务申请状态 */
private Integer serviceStatus;
/** 请求基于什么的ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long basedOnId;
@@ -57,8 +62,7 @@ public class OutpatientInfusionRecordDto {
private String genderEnum_enumText;
/** 已执行数量 */
@JsonSerialize(using = ToStringSerializer.class)
private Long executionCount;
private Integer executeNum;
/** 分组id */
@JsonSerialize(using = ToStringSerializer.class)
@@ -88,6 +92,9 @@ public class OutpatientInfusionRecordDto {
/** 预计结束时间 */
private String occurrenceEndTime;
/** 药品ID */
private Long medicationId;
/** 药品信息 */
private String medicationInformation;
@@ -108,10 +115,14 @@ public class OutpatientInfusionRecordDto {
private String medicationStatusEnum_enumText;
/** 皮试标志(是/否) */
private String flagText;
private Integer skinTestFlag;
private String skinTestFlag_enumText;
/** 皮试结果 */
private Integer clinicalStatusEnum;
private String clinicalStatusEnum_enumText;
/** 开单时间 */
private Date createTime;
}

View File

@@ -4,6 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
@@ -59,8 +60,7 @@ public interface OutpatientManageMapper {
* @param queryWrapper 查询条件
* @return 门诊输液记录列表
*/
List<OutpatientInfusionRecordDto>
getOutpatientInfusionRecord(@Param(Constants.WRAPPER) QueryWrapper<OutpatientInfusionRecordDto> queryWrapper);
List<OutpatientInfusionRecordDto> getOutpatientInfusionRecord(
@Param(Constants.WRAPPER) LambdaQueryWrapper<OutpatientInfusionRecordDto> queryWrapper);
}

View File

@@ -95,6 +95,18 @@ public class PatientInformationServiceImpl implements IPatientInformationService
.collect(Collectors.toList());
initDto.setFamilyRelationshipType(statusEnumOptions6);
// 获取证件类型
List<PatientInfoInitDto.statusEnumOption> statusEnumOptions7 = Stream.of(IdentityDocumentType.values())
.map(status -> new PatientInfoInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
initDto.setIdentityDocumentType(statusEnumOptions7);
// 获取是/否状态
List<PatientInfoInitDto.statusEnumOption> statusEnumOptions8 = Stream.of(Whether.values())
.map(status -> new PatientInfoInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
initDto.setWhetherStatus(statusEnumOptions8);
return initDto;
}

View File

@@ -20,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
* @date 2025/2/28
*/
@RestController
@RequestMapping("/patientmanage/records")
@RequestMapping("/patient-manage/records")
@Slf4j
@AllArgsConstructor
public class OutpatientRecordController {

View File

@@ -18,7 +18,7 @@ import lombok.extern.slf4j.Slf4j;
* @date 2025/2/22
*/
@RestController
@RequestMapping("/patientmanage/information")
@RequestMapping("/patient-manage/information")
@Slf4j
@AllArgsConstructor
public class PatientInformationController {

View File

@@ -28,6 +28,10 @@ public class PatientInfoInitDto {
private List<PatientInfoInitDto.statusEnumOption> bloodTypeRH;
//获取家庭关系列表
private List<PatientInfoInitDto.statusEnumOption> familyRelationshipType;
//身份证件类型
private List<PatientInfoInitDto.statusEnumOption> identityDocumentType;
//是/否 状态
private List<PatientInfoInitDto.statusEnumOption> whetherStatus;
/**
* 状态

View File

@@ -179,8 +179,9 @@
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
SELECT
T1.service_id,
T1.service_status,
T1.bus_no,
T1.execution_count,
T1.execute_num,
T1.based_on_id,
T1.activity_id,
T1.prescription_no,
@@ -194,7 +195,7 @@
T1.medication_status_Enum,
T1.group_id,
T1.clinical_status_enum,
T1.flag_text,
T1.skin_test_flag,
T1.speed,
T1.method_code,
T1.dose,
@@ -209,25 +210,27 @@
SELECT
sr.id AS service_id, --服务申请管理ID
sr.bus_no, -- 服务请求编码
(SELECT COUNT(*) FROM wor_service_request wsr WHERE wsr.based_on_id = sr.based_on_id) AS execution_count,
sr.based_on_id, -- 请求基于什么的ID
sr.execute_num, -- 执行次数
sr.activity_id,--请求code,输液
sr.prescription_no, --处方号
sr.encounter_id , --就诊ID
sr.tenant_id,
sr.status_enum AS service_status, --服务状态
e.bus_no AS encounter_busNo, --就诊ID前台显示用
pt.name AS patient_name, --病人姓名
pt.bus_no AS patient_busNo, --病人ID前台显示用
sr.patient_id, --病人ID
ad.name AS medication_information, --药品信息
md.id AS medication_id, --药品ID
md.name AS medication_information, --药品信息
mr.antity AS medication_antity,--药品数量
mr.status_enum AS medication_status_Enum, --药品状态
mr.group_id, --注射药品组号
CASE mr.skin_test_flag
WHEN 1 THEN 1
ELSE 0
END AS skin_test_flag --皮试标志
ai.clinical_status_enum, --皮试检查结果
CASE mr.skin_test_flag--皮试标志
WHEN 1 THEN '是'
ELSE '否'
END AS flag_text,
mr.speed, --输液速度
mr.method_code,--用法
mr.dose || ' '|| mr.dose_unit_code AS dose,--单次剂量,剂量单位

View File

@@ -1,5 +1,6 @@
package com.openhis.workflow.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,8 +31,8 @@ public class ServiceRequestServiceImpl extends ServiceImpl<ServiceRequestMapper,
*/
@Override
public Long countServiceRequestByBasedOnId(Long basedOnId) {
QueryWrapper<ServiceRequest> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("based_on_id", basedOnId);
LambdaQueryWrapper<ServiceRequest> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ServiceRequest::getBasedOnId, basedOnId);
return serviceRequestMapper.selectCount(queryWrapper);
}
}