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

@@ -25,7 +25,7 @@ public interface IAdvancePaymentManageAppService {
* @param request 请求
* @return 患者预交金基本信息
*/
IPage<AdvancePaymentInfoDto> getAdvancePaymentInfo(AdvancePaymentInfoDto advancePaymentInfoDto, String searchKey,
IPage<AdvancePaymentInfoDto> getAdvancePaymentInfo(AdvancePaymentInfoDto advancePaymentInfoDto, String searchKey,Long wardLocationId,
Integer pageNo, Integer pageSize, HttpServletRequest request);
/**

View File

@@ -1,11 +1,13 @@
package com.openhis.web.inhospitalcharge.appservice;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.core.common.core.domain.R;
import com.openhis.web.common.dto.LocationDto;
import com.openhis.web.inhospitalcharge.dto.*;
/**
@@ -83,4 +85,19 @@ public interface IInHospitalRegisterAppService {
*/
R<?> noFilesRegister(NoFilesRegisterDto noFilesRegisterDto);
/**
* 是否登记
*
* @param encounterId 病历ID
* @return true/false
*/
R<Boolean> isRegister(Long encounterId);
/**
* 获取病区列表
*
* @param orgId 科室id
* @return 病区列表
*/
List<LocationDto> getWardList(Long orgId);
}

View File

@@ -70,7 +70,7 @@ public class AdvancePaymentManageAppServiceImpl implements IAdvancePaymentManage
*/
@Override
public IPage<AdvancePaymentInfoDto> getAdvancePaymentInfo(AdvancePaymentInfoDto advancePaymentInfoDto,
String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) {
String searchKey, Long wardLocationId, Integer pageNo, Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<AdvancePaymentInfoDto> queryWrapper = HisQueryUtils.buildQueryWrapper(advancePaymentInfoDto,
searchKey, new HashSet<>(Arrays.asList("bus_no", "patient_name", "inHospital_org_name")), request);
@@ -80,7 +80,8 @@ public class AdvancePaymentManageAppServiceImpl implements IAdvancePaymentManage
LocationForm.HOUSE.getValue(), LocationForm.BED.getValue(), EncounterActivityStatus.ACTIVE.getValue(),
ChargeItemStatus.BILLABLE.getValue(), ChargeItemStatus.BILLED.getValue(),
ChargeItemStatus.REFUNDED.getValue(), EncounterClass.IMP.getValue(),
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), queryWrapper);
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), wardLocationId, EncounterZyStatus.TO_BE_REGISTERED.getValue(),
queryWrapper);
advancePaymentInfo.getRecords().forEach(e -> {
// 性别
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
@@ -178,8 +179,14 @@ public class AdvancePaymentManageAppServiceImpl implements IAdvancePaymentManage
// 支付管理子表
PaymentRecDetail paymentDetail = new PaymentRecDetail();
paymentDetail.setAccountId(advancePaymentInAndOutDto.getAccountId()); // 账户
paymentDetail.setPayEnum(YbPayment.SELF_CASH_PAY.getValue()); // 支付类型
paymentDetail.setPayLevelEnum(YbPayment.SELF_CASH_PAY.getLevel()); // 支付类型等级
Integer payEnum = advancePaymentInAndOutDto.getPayEnum();
if (payEnum != null && payEnum != 0) {
paymentDetail.setPayEnum(payEnum); // 支付类型
paymentDetail.setPayLevelEnum(YbPayment.getByValue(payEnum).getLevel());// 支付类型等级
} else {
paymentDetail.setPayEnum(YbPayment.SELF_CASH_PAY.getValue()); // 支付类型
paymentDetail.setPayLevelEnum(YbPayment.SELF_CASH_PAY.getLevel()); // 支付类型等级
}
paymentDetail.setAmount(ammount); // 金额
paymentDetail.setPayTransNo(CommonConstants.BusinessName.DEFAULT_CONTRACT_NO);
paymentDetail.setReconciliationId(payment.getId()); // 付款id

View File

@@ -39,9 +39,10 @@ public class AdvancePaymentManageController {
@GetMapping(value = "/advance-payment-info")
public R<?> getAdvancePaymentInfo(AdvancePaymentInfoDto advancePaymentInfoDto,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "wardLocationId", defaultValue = "") Long wardLocationId,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
return R.ok(iAdvancePaymentManageAppService.getAdvancePaymentInfo(advancePaymentInfoDto, searchKey, pageNo,
return R.ok(iAdvancePaymentManageAppService.getAdvancePaymentInfo(advancePaymentInfoDto, searchKey,wardLocationId, pageNo,
pageSize, request));
}

View File

@@ -5,11 +5,11 @@ package com.openhis.web.inhospitalcharge.controller;
import javax.servlet.http.HttpServletRequest;
import com.openhis.web.inhospitalcharge.dto.*;
import org.springframework.web.bind.annotation.*;
import com.core.common.core.domain.R;
import com.openhis.web.inhospitalcharge.appservice.IInHospitalRegisterAppService;
import com.openhis.web.inhospitalcharge.dto.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -36,6 +36,17 @@ public class InHospitalRegisterController {
return iInHospitalRegisterAppService.registerByDoctor(inHospitalRegisterDto);
}
/**
* 是否登记
*
* @param encounterId 病历ID
* @return true/false
*/
@GetMapping(value = "/isRegister")
public R<?> isRegister(@RequestParam(value = "encounterId") Long encounterId) {
return iInHospitalRegisterAppService.isRegister(encounterId);
}
/**
* 查询住院登记信息
*
@@ -123,4 +134,14 @@ public class InHospitalRegisterController {
return iInHospitalRegisterAppService.noFilesRegister(noFilesRegisterDto);
}
/**
* 病区列表
*
* @return 病区列表
*/
@GetMapping(value = "/ward-list")
public R<?> getWardList(@RequestParam(value = "orgId", required = false) Long orgId) {
return R.ok(iInHospitalRegisterAppService.getWardList(orgId));
}
}

View File

@@ -38,4 +38,7 @@ public class AdvancePaymentInAndOutDto {
*/
private BigDecimal amount;
/** 支付类型 */
private Integer payEnum;
}

View File

@@ -140,6 +140,9 @@ public class InHospitalInfoDto {
/** 账户余额 */
private BigDecimal balanceAmount;
/** 支付类型 */
private Integer payEnum;
/**
* 诊断定义id
*/
@@ -159,4 +162,9 @@ public class InHospitalInfoDto {
*/
private String diagnosisDesc;
/**
* 备注信息(预交金发票使用)
*/
private String remark;
}

View File

@@ -2,6 +2,7 @@ package com.openhis.web.inhospitalcharge.dto;
import java.util.Date;
import com.openhis.common.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -79,4 +80,21 @@ public class InHospitalRegisterQueryDto {
*/
private String wardName;
/**
* 住院号
*/
private String busNo;
/**
* 费用性质(合同编码)
*/
private String contractNo;
/**
* 入院类型
*/
@Dict(dictCode = "admit_source_code")
private String admitSourceCode;
private String admitSourceCode_dictText;
}

View File

@@ -1,6 +1,6 @@
package com.openhis.web.inhospitalcharge.dto;
import com.openhis.web.patientmanage.dto.PatientInformationDto;
import com.openhis.web.patientmanage.dto.PatientBaseInfoDto;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -15,7 +15,7 @@ public class NoFilesRegisterDto {
/**
* 患者信息
*/
private PatientInformationDto patientInformation;
private PatientBaseInfoDto patientInformation;
/**
* 住院信息

View File

@@ -31,6 +31,7 @@ public interface AdvancePaymentManageAppMapper {
* @param status3 已退费
* @param classEnum 住院
* @param accountTypeCode 个人现金账号
* @param registeredFlag 登记标识
* @return 预交金基本信息
*/
IPage<AdvancePaymentInfoDto> getAdvancePaymentInfo(@Param("page") Page<AdvancePaymentInfoDto> page,
@@ -38,6 +39,7 @@ public interface AdvancePaymentManageAppMapper {
@Param("bedEnum") Integer bedEnum, @Param("encounterActivityStatus") Integer encounterActivityStatus,
@Param("status1") Integer status1, @Param("status2") Integer status2, @Param("status3") Integer status3,
@Param("classEnum") Integer classEnum, @Param("accountTypeCode") String accountTypeCode,
@Param("wardLocationId") Long wardLocationId, @Param("registeredFlag") Integer registeredFlag,
@Param(Constants.WRAPPER) QueryWrapper<AdvancePaymentInfoDto> queryWrapper);
/**

View File

@@ -1,5 +1,7 @@
package com.openhis.web.inhospitalcharge.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -7,6 +9,7 @@ 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.administration.domain.Location;
import com.openhis.web.inhospitalcharge.dto.InHospitalInfoDto;
import com.openhis.web.inhospitalcharge.dto.InHospitalPatientInfoDto;
import com.openhis.web.inhospitalcharge.dto.InHospitalRegisterQueryDto;
@@ -48,12 +51,13 @@ public interface InHospitalRegisterAppMapper {
* @param formEnum 物理位置
* @param maindiseFlag 主诊断标识
* @param participantType 参与者类型
* @param status 状态
* @param accountType 账号类型
* @return 住院就诊信息
*/
InHospitalInfoDto getInHospitalInfo(@Param("encounterId") Long encounterId, @Param("formEnum") Integer formEnum,
@Param("maindiseFlag") Integer maindiseFlag, @Param("participantType") String participantType,
@Param("accountType") String accountType);
@Param("status") Integer status, @Param("accountType") String accountType);
/**
* 根据病区号获取总床位数
@@ -77,4 +81,13 @@ public interface InHospitalRegisterAppMapper {
Integer getIdleBedsNum(@Param("formEnum") Integer formEnum, @Param("status") Integer status,
@Param("wardBusNo") String wardBusNo);
/**
* 获取病区列表
*
* @param orgId 科室id
* @return 病区列表
*/
List<Location> selectWardList(@Param("orgId") Long orgId, @Param("formEnum") Integer formEnum,
@Param("status") Integer status);
}