docs(release-notes): 添加住院护士站划价功能说明和发版记录

- 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程
- 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑
- 添加完整的发版内容记录,涵盖新增菜单功能和各模块优化点
- 记录了住院相关功能的新增和门诊业务流程的修复
```
This commit is contained in:
2025-12-25 14:13:14 +08:00
parent 85fcb7c2e2
commit abc0674531
920 changed files with 107068 additions and 14495 deletions

View File

@@ -1,60 +0,0 @@
package com.openhis.web.inpatientmanage.appservice;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestParam;
import com.core.common.core.domain.R;
import com.openhis.web.inpatientmanage.dto.AdmissionSearchParam;
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
/**
* 住院登记 应用实现
*
* @author liuhr
* @since 2025/04/07
*/
public interface IAdmissionAppService {
/**
* 病获取住院信息初期数据列表
*
* @return 住院信息初期数据列表
*/
R<?> getAdmissionInfoInit();
/**
* 获取住院信息 分页显示
*
* @param admissionSearchParam 查询参数
* @param searchKey 模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return 住院信息
*/
R<?> getAdmissionInfoPage(AdmissionSearchParam admissionSearchParam, String searchKey, Integer pageNo,
Integer pageSize, HttpServletRequest request);
/**
* 住院无档登记
*
* @param admissionUpDto 住院登记信息
*/
R<?> addAdmissionInfo(AdmissionUpDto admissionUpDto);
/**
* 登记
*
* @param admissionUpDto 住院登记信息
*/
R<?> editAdmissionInfo(AdmissionUpDto admissionUpDto);
/**
* 住院登记详细查询
*
* @param id 查询条件
* @return 住院登记详细查询结果
*/
R<?> getAdmissionOne(@RequestParam Long id);
}

View File

@@ -1,268 +0,0 @@
package com.openhis.web.inpatientmanage.appservice.impl;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.SecurityUtils;
import com.openhis.administration.domain.Account;
import com.openhis.administration.domain.Encounter;
import com.openhis.administration.domain.EncounterLocation;
import com.openhis.administration.service.IAccountService;
import com.openhis.administration.service.IEncounterLocationService;
import com.openhis.administration.service.IEncounterService;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.*;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.inpatientmanage.appservice.IAdmissionAppService;
import com.openhis.web.inpatientmanage.dto.AdmissionDto;
import com.openhis.web.inpatientmanage.dto.AdmissionInitPageDto;
import com.openhis.web.inpatientmanage.dto.AdmissionSearchParam;
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
import com.openhis.web.inpatientmanage.mapper.AdmissionMapper;
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
import com.openhis.web.patientmanage.dto.PatientInformationDto;
/**
* 住院管理 实现类
*
* @author liuhr
* @since 2025/04/07
*/
@Service
public class AdmissionAppServiceImpl implements IAdmissionAppService {
@Resource
private AdmissionMapper admissionMapper;
@Resource
private IPatientInformationService patientInformationService;
@Resource
private IEncounterService encounterService;
@Resource
private IEncounterLocationService encounterLocationService;
@Resource
private IAccountService accountService;
/**
* 病获取住院信息初期数据列表
*
* @return 住院信息初期数据列表
*/
@Override
public R<?> getAdmissionInfoInit() {
AdmissionInitPageDto initDto = new AdmissionInitPageDto();
// 入院类型列表
List<AdmissionInitPageDto.statusEnumOption> statusEnumOptions1 = Stream.of(AdmissionType.values())
.map(status -> new AdmissionInitPageDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
initDto.setAdmissionTypeList(statusEnumOptions1);
// 入院方式列表
List<AdmissionInitPageDto.statusEnumOption> statusEnumOptions2 = Stream.of(AdmissionMethod.values())
.map(status -> new AdmissionInitPageDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
initDto.setAdmissionMethodList(statusEnumOptions2);
// 优先级编码列表:患者病情下拉选
List<AdmissionInitPageDto.statusEnumOption> statusEnumOptions3 = Stream.of(PriorityLevel.values())
.map(status -> new AdmissionInitPageDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
initDto.setPriorityEnumList(statusEnumOptions3);
return R.ok(initDto);
}
/**
* 获取住院信息 分页显示
*
* @param admissionSearchParam 查询参数
* @param searchKey 模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return 住院信息
*/
@Override
public R<?> getAdmissionInfoPage(AdmissionSearchParam admissionSearchParam, String searchKey, Integer pageNo,
Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<AdmissionDto> queryWrapper = HisQueryUtils.buildQueryWrapper(admissionSearchParam, searchKey,
new HashSet<>(Arrays.asList(CommonConstants.FieldName.Name, CommonConstants.FieldName.PyStr,
CommonConstants.FieldName.WbStr)),
request);
// 分页查询,查询住院
IPage<AdmissionDto> admissionInfoPage = admissionMapper.getPage(new Page<>(pageNo, pageSize),
EncounterClass.AMB.getValue(), LocationForm.WARD.getValue(), queryWrapper);
admissionInfoPage.getRecords().forEach(e -> {
// 性别枚举类回显赋值
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
// 计算年龄
// e.setAgeString(AgeCalculatorUtil.getAge(e.getBirthDate()));
});
// 返回【住院信息列表DTO】分页
return R.ok(admissionInfoPage);
}
/**
* 住院无档登记
*
* @param admissionUpDto 住院登记信息
*/
@Override
public R<?> addAdmissionInfo(AdmissionUpDto admissionUpDto) {
// 1.添加病人信息
PatientInformationDto patientInformationDto = convertToPatientInformationDto(admissionUpDto);
R<?> addPatientResult = patientInformationService.addPatient(patientInformationDto);
// 检查返回值的状态码
boolean insertPatientSuccess = (addPatientResult.getCode() == 200);
// 2.添加就诊信息,3.添加就诊账户,4.添加就诊病区
admissionUpDto.setYbClassEnum(EncounterYbClass.ORDINARY_HOSPITALIZATION.getValue());
boolean encounterLocationAndAccountSuccess = handleEncounterLocationAccount(admissionUpDto);
if (insertPatientSuccess && encounterLocationAndAccountSuccess) {
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"住院无档登记"}));
} else {
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, null));
}
}
/**
* 登记
*
* @param admissionUpDto 住院登记信息
*/
@Override
public R<?> editAdmissionInfo(AdmissionUpDto admissionUpDto) {
// 1.修改病人信息
PatientInformationDto patientInformationDto = convertToPatientInformationDto(admissionUpDto);
R<?> editPatientResult = patientInformationService.editPatient(patientInformationDto);
// 检查返回值的状态码
boolean updatePatientSuccess = (editPatientResult.getCode() == 200);
// 2.修改就诊信息,3.添加就诊账户,4.添加就诊病区
boolean encounterLocationAndAccountSuccess = handleEncounterLocationAccount(admissionUpDto);
if (updatePatientSuccess && encounterLocationAndAccountSuccess) {
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"住院登记"}));
} else {
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
}
/**
* 住院登记,添加就诊账户和就诊病区
*
* @param admissionUpDto 住院登记信息
* @return 住院登记详细查询结果
*/
public boolean handleEncounterLocationAccount(AdmissionUpDto admissionUpDto) {
// 2.修改或者插入就诊信息
Encounter encounter = new Encounter();
encounter.setId(admissionUpDto.getId()).setPatientId(admissionUpDto.getPatientId())
.setStatusEnum(EncounterStatus.IN_PROGRESS.getValue()).setOrganizationId(admissionUpDto.getOrganizationId())
.setAdmitSourceCode(admissionUpDto.getAdmitSourceCode()).setInWayCode(admissionUpDto.getInWayCode())
.setStartTime(admissionUpDto.getStartTime()).setClassEnum(EncounterClass.IMP.getValue())
.setPriorityEnum(admissionUpDto.getPriorityEnum()).setYbClassEnum(admissionUpDto.getYbClassEnum())
.setSubjectStatusEnum(EncounterSubjectStatus.PLANNED.getValue());
boolean encounterSuccess = encounterService.saveOrUpdateEncounter(encounter);
// 3.添加就诊账户account
Account account = new Account();
account.setName(admissionUpDto.getName()).setPatientId(admissionUpDto.getPatientId())
.setEncounterId(admissionUpDto.getId())
// 账户状态是有效的
.setStatusEnum(AccountStatus.ACTIVE.getValue())
// 结账状态是可用的
.setBillingStatusEnum(AccountBillingStatus.OPEN.getValue());
boolean updateAccountSuccess = accountService.saveOrUpdateAccount(account);
// 4.添加就诊病区location
EncounterLocation encounterLocation = new EncounterLocation();
encounterLocation.setLocationId(admissionUpDto.getWardLocationId()).setEncounterId(admissionUpDto.getId())
.setFormEnum(LocationForm.WARD.getValue()).setStartTime(admissionUpDto.getStartTime())
.setStatusEnum(EncounterActivityStatus.ACTIVE.getValue());
boolean encounterLocationSuccess = encounterLocationService.saveOrUpdateEncounterLocation(encounterLocation);
return encounterSuccess && updateAccountSuccess && encounterLocationSuccess;
}
/**
* 住院登记详细查询
*
* @param id 就诊ID
* @return 住院登记详细查询结果
*/
@Override
public R<?> getAdmissionOne(@RequestParam Long id) {
// 获取租户ID
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
// 根据ID查询 住院登记详细
AdmissionUpDto admissionUpDto = admissionMapper.getAdmissionOne(EncounterClass.IMP.getValue(),
EncounterStatus.DISCHARGED.getValue(), LocationForm.BED.getValue(), LocationForm.WARD.getValue(),
ParticipantType.ADMITTER.getCode(), LocationBedStatus.O.getValue(), id, tenantId);
// 查询患者病情站诊断
// List<String> descriptionList = nurseStationPendAdmAppMapper.getDescriptionList(id);
// 诊断病情拼接
// if (descriptionList != null && !descriptionList.isEmpty()) {
// admissionUpDto.setDescriptions(String.join(CommonConstants.Common.COMMA, descriptionList));
// }
return R.ok(admissionUpDto);
}
/**
* 将 AdmissionUpDto 的字段值手动设置到 PatientInformationDto 中
*
* @param admissionUpDto 源对象
* @return 目标对象
*/
public PatientInformationDto convertToPatientInformationDto(AdmissionUpDto admissionUpDto) {
return new PatientInformationDto().setId(admissionUpDto.getPatientId()).setName(admissionUpDto.getName())
.setGenderEnum(admissionUpDto.getGenderEnum()).setBirthDate(admissionUpDto.getBirthDate())
.setMaritalStatusEnum(admissionUpDto.getMaritalStatusEnum()).setPrfsEnum(admissionUpDto.getPrfsEnum())
.setPhone(admissionUpDto.getPhone()).setAddress(admissionUpDto.getAddress())
.setNationalityCode(admissionUpDto.getNationalityCode()).setIdCard(admissionUpDto.getIdCard())
.setPyStr(admissionUpDto.getPyStr()).setWbStr(admissionUpDto.getWbStr())
.setWorkCompany(admissionUpDto.getWorkCompany()).setNativePlace(admissionUpDto.getNativePlace())
.setCountryCode(admissionUpDto.getCountryCode()).setLinkName(admissionUpDto.getLinkName())
.setLinkRelationCode(admissionUpDto.getLinkRelationCode()).setLinkTelcom(admissionUpDto.getLinkTelcom())
.setOrganizationId(admissionUpDto.getOrganizationId());
}
}

View File

@@ -1,90 +0,0 @@
package com.openhis.web.inpatientmanage.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.core.domain.R;
import com.openhis.web.inpatientmanage.appservice.IAdmissionAppService;
import com.openhis.web.inpatientmanage.dto.AdmissionSearchParam;
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/inpatient-manage")
@Slf4j
@AllArgsConstructor
public class AdmissionController {
@Resource
private IAdmissionAppService admissionAppService;
/**
* 获取住院信息初期数据列表
*
* @return 住院信息初期数据列表
*/
@GetMapping("/init")
public R<?> getAdmissionInfoInit() {
return admissionAppService.getAdmissionInfoInit();
}
/**
* 获取住院信息 分页显示
*
* @param admissionSearchParam 查询参数
* @param searchKey 模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return 住院信息
*/
@GetMapping("/admission-page")
R<?> getAdmissionInfoPage(AdmissionSearchParam admissionSearchParam,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
return admissionAppService.getAdmissionInfoPage(admissionSearchParam, searchKey, pageNo, pageSize, request);
}
/**
* 住院无档登记
*
* @param admissionUpDto 住院登记详细信息
*/
@PostMapping("/admission-information")
public R<?> addAdmissionInfo(@Validated @RequestBody AdmissionUpDto admissionUpDto) {
return admissionAppService.addAdmissionInfo(admissionUpDto);
}
/**
* 登记
*
* @param admissionUpDto 住院登记详细信息
*/
@PutMapping("/admission-information")
public R<?> editAdmissionInfo(@Validated @RequestBody AdmissionUpDto admissionUpDto) {
// 调用服务层更新病人信息
return admissionAppService.editAdmissionInfo(admissionUpDto);
}
/**
* 根据id查询登记详情
*
* @param id 就诊ID
* @return 登记详情
*/
@GetMapping("/admission-one")
public R<?> getDeviceOne(@RequestParam Long id) {
return admissionAppService.getAdmissionOne(id);
}
}

View File

@@ -1,102 +0,0 @@
package com.openhis.web.inpatientmanage.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.annotation.Dict;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 住院登记信息
*
* @author liuhr
* @since 2025/04/07
*/
@Data
@Accessors(chain = true)
public class AdmissionDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 患者ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long patientId;
/** 群组ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long groupId;
/** 就诊编码 */
private String encounterBusNo;
/** 状态编码 */
private Integer statusEnum;
/** 类别编码 */
private Integer classEnum;
/** 类别医保编码 */
private Integer ybClassEnum;
/** 机构id(科室) */
@JsonSerialize(using = ToStringSerializer.class)
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
private Long organizationId;
private String organizationId_dictText;
/** 入院类型 */
@Dict(dictCode = "admit_source_code")
private String admitSourceCode;
private String admitSourceCode_dictText;
/** 入院方式 */
@Dict(dictCode = "in_way_code")
private String inWayCode;
private String inWayCode_dictText;
/** 患者姓名 */
private String name;
/** 患者院内编码/病历号 */
private String patientBusNo;
/** 性别编码 */
private Integer genderEnum;
private String genderEnum_enumText;
/** 生日 */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthDate;
/** 病人年龄 */
private String ageString;
/** 身份证号 */
private String idCard;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 入院病区 */
@JsonSerialize(using = ToStringSerializer.class)
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
private Long wardLocationId;
private String wardLocationId_dictText;
/** 登记员 */
private String createBy;
/** 创建时间 */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}

View File

@@ -1,42 +0,0 @@
package com.openhis.web.inpatientmanage.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 住院登记初始化页面信息
*
* @author liuhr
* @since 2025/04/07
*/
@Data
@Accessors(chain = true)
public class AdmissionInitPageDto {
//获取入院类型列表
private List<statusEnumOption> admissionTypeList;
//获取入院方式列表
private List<statusEnumOption> admissionMethodList;
//优先级编码列表
private List<statusEnumOption> priorityEnumList;
/**
* 状态
*/
@Data
public static class statusEnumOption {
private Integer value;
private String info;
public statusEnumOption(Integer value, String info) {
this.value = value;
this.info = info;
}
}
}

View File

@@ -1,17 +0,0 @@
package com.openhis.web.inpatientmanage.dto;
import lombok.Data;
/**
* 住院登记查询参数
*
* @author liuhr
* @since 2025/04/08
*/
@Data
public class AdmissionSearchParam {
/** 状态编码 */
private Integer statusEnum;
}

View File

@@ -1,179 +0,0 @@
package com.openhis.web.inpatientmanage.dto;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.annotation.Dict;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 住院登记信息
*
* @author liuhr
* @since 2025/04/07
*/
@Data
@Accessors(chain = true)
public class AdmissionUpDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
@NotNull(message = "就诊ID不能为空")
private Long id;
/** 患者ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long patientId;
/** 群组ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long groupId;
/** 就诊编码 */
private String encounterBusNo;
/** 状态编码 */
private Integer statusEnum;
private String statusEnum_enumText;
/** 类别编码 */
private Integer classEnum;
/** 类别医保编码 */
private Integer ybClassEnum;
private String ybClassEnum_enumText;
/** 优先级编码 */
private Integer priorityEnum;
private String priorityEnum_enumText;
/** 分类编码 */
private Integer typeEnum;
/** 服务ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long serviceTypeId;
/** 就诊对象状态 */
private Integer subjectStatusEnum;
/** 开始时间 */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/** 结束时间 */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/** 机构id(科室) */
@JsonSerialize(using = ToStringSerializer.class)
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
private Long organizationId;
private String organizationId_dictText;
/** 入院类型 */
@Dict(dictCode = "admit_source_code")
private String admitSourceCode;
private String admitSourceCode_dictText;
/** 入院方式 */
@Dict(dictCode = "in_way_code")
private String inWayCode;
private String inWayCode_dictText;
/** 住院次数 */
private Integer hospitalizationCount;
/** 患者姓名 */
private String name;
/** 患者院内编码/病历号 */
private String patientBusNo;
/** 性别编码 */
private Integer genderEnum;
private String genderEnum_enumText;
/** 生日 */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthDate;
/** 婚姻状态 */
private Integer maritalStatusEnum;
private String maritalStatusEnum_enumText;
/** 职业编码 */
private Integer prfsEnum;
private String prfsEnum_enumText;
/** 电话 */
@Size(min = 11, max = 11, message = "电话长度必须为11位")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "电话格式不正确")
private String phone;
/** 地址 */
private String address;
/** 民族 */
private String nationalityCode;
/** 身份证号 */
@NotBlank(message = "身份证号不能为空")
@Size(min = 18, max = 18, message = "身份证号必须是18位")
@Pattern(regexp = "^[0-9Xx]{18}$", message = "身份证号格式不正确")
private String idCard;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 工作单位 */
private String workCompany;
/** 籍贯 */
private String nativePlace;
/** 国家编码 */
private String countryCode;
/** 联系人 */
private String linkName;
/** 联系人关系 */
private Integer linkRelationCode;
/** 联系人电话 */
@Size(min = 11, max = 11, message = "电话长度必须为11位")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "电话格式不正确")
private String linkTelcom;
/** 病人年龄 */
private String ageString;
/** 门诊诊断 */
private String descriptions;
/** 接诊医生 */
private String doctorName;
/** 入院病区 */
@JsonSerialize(using = ToStringSerializer.class)
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
private Long wardLocationId;
private String wardLocationId_dictText;
/** 床位数 */
private String bedCount;
}

View File

@@ -297,13 +297,6 @@ public class PatientHomeDto {
private Integer surgeryStatusEnum;
private String surgeryStatusEnum_enumText;
/**
* 过敏源类别
*/
@Dict(dictCode = "aise_code")
private String categoryCode;
private String categoryCode_dictText;
/**
* 入院科室名称
*/

View File

@@ -1,50 +0,0 @@
package com.openhis.web.inpatientmanage.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.web.inpatientmanage.dto.AdmissionDto;
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
/**
* 住院登记
*
* @author liuhr
* @since 2025/04/08
*/
@Repository
public interface AdmissionMapper {
/**
* 住院登记信息分页查询
*
* @param page 分页
* @param classEnum 类别编码(1住院类型)
* @param formEnum 类别编码(1住院类型)
* @param queryWrapper 查询条件
* @return 住院登记信息
*/
IPage<AdmissionDto> getPage(@Param("page") Page<AdmissionDto> page, @Param("classEnum") Integer classEnum,
@Param("formEnum") Integer formEnum, @Param(Constants.WRAPPER) QueryWrapper<AdmissionDto> queryWrapper);
/**
* 住院登记详情
*
* @param classEnum 类别编码(1:住院类型)
* @param statusEnum 状态编码(4:出院状态)
* @param bedForm 床:8
* @param wardForm 病区:4
* @param operational 床位状态(4:占用)
* @param typeCode 就诊参与者身份类型 (1:接诊医生)
* @param id 就诊ID
* @param tenantId 租户
* @return 住院登记详情
*/
AdmissionUpDto getAdmissionOne(@Param("classEnum") Integer classEnum, @Param("statusEnum") Integer statusEnum,
@Param("bedForm") Integer bedForm, @Param("wardForm") Integer wardForm, @Param("typeCode") String typeCode,
@Param("operational") Integer operational, @Param("id") Long id, @Param("tenantId") Integer tenantId);
}