Merge branch 'master' of https://codeup.aliyun.com/61c0318acd8b75daa5a125f7/medical/openhis
This commit is contained in:
@@ -232,5 +232,50 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断日期是否为未来时间
|
||||||
|
*
|
||||||
|
* @param dateString 字符串日期
|
||||||
|
* @return 是/否
|
||||||
|
*/
|
||||||
|
public static boolean isFuture(String dateString) {
|
||||||
|
// 创建 DateTimeFormatter 对象,并设置所需的日期时间格式
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析字符串为 LocalDate 对象
|
||||||
|
LocalDate dateToCheck = LocalDate.parse(dateString, formatter);
|
||||||
|
// 获取当前日期
|
||||||
|
LocalDate currentDate = LocalDate.now();
|
||||||
|
// 检查日期是否是未来的时间
|
||||||
|
return dateToCheck.isAfter(currentDate);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
// 解析失败或其他异常,返回 false 或根据需要处理异常
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从身份证号码中提取生日
|
||||||
|
*
|
||||||
|
* @param idCard 身份证号
|
||||||
|
* @return 出生日
|
||||||
|
*/
|
||||||
|
public static Date extractBirthday(String idCard) {
|
||||||
|
if (idCard == null) {
|
||||||
|
// 身份证号码为空
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 提取第7到14位作为生日字符串
|
||||||
|
String birthdayStr = idCard.substring(6, 14);
|
||||||
|
// 将生日字符串转换为 LocalDate
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||||
|
LocalDate date = LocalDate.parse(birthdayStr, formatter);
|
||||||
|
|
||||||
|
// 将 LocalDate 转换为 java.util.Date
|
||||||
|
return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.chargemanage.appservice;
|
||||||
|
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊退费 service
|
||||||
|
*
|
||||||
|
* @author zwh
|
||||||
|
* @date 2025-03-15
|
||||||
|
*/
|
||||||
|
public interface IOutpatientRefundAppService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据就诊id查询患者的账单
|
||||||
|
*
|
||||||
|
* @param encounterId 就诊id
|
||||||
|
* @return 患者账单列表
|
||||||
|
*/
|
||||||
|
R<?> getEncounterPatientPayment(Long encounterId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据账单退费
|
||||||
|
*
|
||||||
|
* @param paymentIdList 付费id列表
|
||||||
|
* @return 操作结果
|
||||||
|
*/
|
||||||
|
R<?> refundPayment(List<Long> paymentIdList);
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.chargemanage.appservice.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.openhis.common.enums.PaymentStatus;
|
||||||
|
import com.openhis.web.chargemanage.appservice.IOutpatientRefundAppService;
|
||||||
|
import com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto;
|
||||||
|
import com.openhis.web.chargemanage.mapper.OutpatientRefundAppMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊退费 impl
|
||||||
|
*
|
||||||
|
* @author zwh
|
||||||
|
* @date 2025-03-15
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OutpatientRefundAppServiceImpl implements IOutpatientRefundAppService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OutpatientRefundAppMapper outpatientRefundAppMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据就诊id查询患者的账单
|
||||||
|
*
|
||||||
|
* @param encounterId 就诊id
|
||||||
|
* @return 患者账单列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> getEncounterPatientPayment(Long encounterId) {
|
||||||
|
List<EncounterPatientPaymentDto> patientPaymentList =
|
||||||
|
outpatientRefundAppMapper.selectEncounterPatientPayment(encounterId, PaymentStatus.SUCCESS.getValue(),
|
||||||
|
PaymentStatus.REFUND_ALL.getValue(), PaymentStatus.REFUND_PART.getValue());
|
||||||
|
return R.ok(patientPaymentList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据账单退费
|
||||||
|
*
|
||||||
|
* @param paymentIdList 付费id列表
|
||||||
|
* @return 操作结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> refundPayment(List<Long> paymentIdList) {
|
||||||
|
|
||||||
|
// 医生同意退费
|
||||||
|
// 查询所有的chargeid,对应生成一个负的chargeitem
|
||||||
|
// 根据每个 chargeitem判断对应的服务,药品,耗材是否已发放执行
|
||||||
|
// 若已发放/执行需要对应的发药人/执行人审批(药品耗材需要先退药)
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.chargemanage.controller;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.openhis.web.chargemanage.appservice.IOutpatientRefundAppService;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊退费 controller
|
||||||
|
*
|
||||||
|
* @author zwh
|
||||||
|
* @date 2025-03-15
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/charge-manage/refund")
|
||||||
|
@Slf4j
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OutpatientRefundController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOutpatientRefundAppService outpatientRefundAppService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据就诊id查询患者的账单
|
||||||
|
*
|
||||||
|
* @param encounterId 就诊id
|
||||||
|
* @return 患者账单列表
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/patient-payment")
|
||||||
|
public R<?> getEncounterPatientPayment(@RequestParam Long encounterId) {
|
||||||
|
return R.ok(outpatientRefundAppService.getEncounterPatientPayment(encounterId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据账单退费
|
||||||
|
*
|
||||||
|
* @param paymentIdList 付费id列表
|
||||||
|
* @return 操作结果
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/refund-payment")
|
||||||
|
public R<?> refundPayment(@RequestParam List<Long> paymentIdList) {
|
||||||
|
return R.ok(outpatientRefundAppService.refundPayment(paymentIdList));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.chargemanage.dto;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 就诊患者账单 dto
|
||||||
|
*
|
||||||
|
* @author zwh
|
||||||
|
* @date 2025-03-17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class EncounterPatientPaymentDto implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** ID */
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 就诊ID */
|
||||||
|
private Long encounterId;
|
||||||
|
|
||||||
|
/** 处方号 */
|
||||||
|
private String prescriptionNo;
|
||||||
|
|
||||||
|
/** 关联账户ID */
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
/** 状态 */
|
||||||
|
private Integer statusEnum;
|
||||||
|
|
||||||
|
/** 关联ID */
|
||||||
|
private Long relationId;
|
||||||
|
|
||||||
|
/** 支付的业务标识符 */
|
||||||
|
private String paymentNo;
|
||||||
|
|
||||||
|
/** 付款类别 */
|
||||||
|
private Integer paymentEnum;
|
||||||
|
|
||||||
|
/** 支付位置 */
|
||||||
|
@Dict(dictTable = "adm_location", dictText = "name", dictCode = "id")
|
||||||
|
private Long locationId;
|
||||||
|
|
||||||
|
/** 到期时间 */
|
||||||
|
private Date expirationDate;
|
||||||
|
|
||||||
|
/** 应收金额 */
|
||||||
|
private BigDecimal tenderedAmount;
|
||||||
|
|
||||||
|
/** 找零金额 */
|
||||||
|
private BigDecimal returnedAmount;
|
||||||
|
|
||||||
|
/** 付款总额 */
|
||||||
|
private BigDecimal displayAmount;
|
||||||
|
|
||||||
|
/** 合同编码 */
|
||||||
|
private String contractNo;
|
||||||
|
|
||||||
|
/** 处方号集合 */
|
||||||
|
private String chargeItemIds;
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.chargemanage.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊退费 appMapper
|
||||||
|
*
|
||||||
|
* @author zwh
|
||||||
|
* @date 2025-03-15
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface OutpatientRefundAppMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取就诊患者账单列表
|
||||||
|
*
|
||||||
|
* @param encounterId 就诊id
|
||||||
|
* @param success 支付状态:成功
|
||||||
|
* @param refundAll 支付状态:全部退款
|
||||||
|
* @param refundPart 支付状态:部分退款
|
||||||
|
* @return 就诊患者账单列表
|
||||||
|
*/
|
||||||
|
List<EncounterPatientPaymentDto> selectEncounterPatientPayment(@Param("encounterId") Long encounterId,
|
||||||
|
@Param("success") Integer success, @Param("refundAll") Integer refundAll,
|
||||||
|
@Param("refundPart") Integer refundPart);
|
||||||
|
}
|
||||||
@@ -31,26 +31,16 @@ public interface IOutpatientSkinTestRecordService {
|
|||||||
* @param outpatientSkinTestRecordSearchParam 查询条件
|
* @param outpatientSkinTestRecordSearchParam 查询条件
|
||||||
* @param pageNo 页码(默认为1)
|
* @param pageNo 页码(默认为1)
|
||||||
* @param pageSize 每页大小(默认为10)
|
* @param pageSize 每页大小(默认为10)
|
||||||
|
* @return 获取门诊皮试记录列表
|
||||||
*/
|
*/
|
||||||
Page<OutpatientSkinTestRecordDto> getSkinTestRecords(
|
Page<OutpatientSkinTestRecordDto> getSkinTestRecords(
|
||||||
OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam, Integer pageNo, Integer pageSize);
|
OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam, Integer pageNo, Integer pageSize);
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取门诊皮试记录列表
|
|
||||||
*
|
|
||||||
* @param outpatientSkinTestRecordSearchParam 门诊皮试记录查询参数
|
|
||||||
* @param pageSize 页面大小
|
|
||||||
* @param offset 跳过条数
|
|
||||||
* @return 分页查询
|
|
||||||
*/
|
|
||||||
List<OutpatientSkinTestRecordDto> getOutpatientSkinTestRecord(
|
|
||||||
@Param("OutpatientSkinTestRecordSearchParam") OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam,
|
|
||||||
@Param("pageSize") Integer pageSize, @Param("offset") Integer offset);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 护士确认执行皮试后,更新皮试记录信息(服务申请管理与过敏与不耐受的相关字段更新)
|
* 护士确认执行皮试后,更新皮试记录信息(服务申请管理与过敏与不耐受的相关字段更新)
|
||||||
*
|
*
|
||||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||||
|
* @return 更新结果
|
||||||
*/
|
*/
|
||||||
boolean editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
boolean editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
||||||
|
|
||||||
@@ -58,8 +48,8 @@ public interface IOutpatientSkinTestRecordService {
|
|||||||
* 护士核对皮试结果后,确认签名(服务申请管理与过敏与不耐受的相关字段更新)
|
* 护士核对皮试结果后,确认签名(服务申请管理与过敏与不耐受的相关字段更新)
|
||||||
*
|
*
|
||||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||||
|
* @return 更新结果
|
||||||
*/
|
*/
|
||||||
boolean nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
boolean nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,21 +132,6 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
|||||||
return outpatientSkinTestRecordPage;
|
return outpatientSkinTestRecordPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取门诊皮试记录列表
|
|
||||||
*
|
|
||||||
* @param outpatientSkinTestRecordSearchParam 门诊皮试记录查询参数
|
|
||||||
* @param pageSize 页面大小
|
|
||||||
* @param offset 跳过条数
|
|
||||||
* @return 分页查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<OutpatientSkinTestRecordDto> getOutpatientSkinTestRecord(
|
|
||||||
OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam, Integer pageSize, Integer offset) {
|
|
||||||
return outpatientManageMapper.getOutpatientSkinTestRecord(outpatientSkinTestRecordSearchParam, pageSize,
|
|
||||||
offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 护士确认执行皮试后,更新皮试记录信息(服务申请管理与过敏与不耐受的相关字段更新)
|
* 护士确认执行皮试后,更新皮试记录信息(服务申请管理与过敏与不耐受的相关字段更新)
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
package com.openhis.web.patientmanage.appservice;
|
package com.openhis.web.patientmanage.appservice;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto;
|
||||||
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
||||||
|
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 病人管理——病人信息
|
* 病人管理——病人信息
|
||||||
*
|
*
|
||||||
* @author Wuser
|
* @author liuhr
|
||||||
* @date 2025/3/15
|
* @date 2025/3/15
|
||||||
*/
|
*/
|
||||||
public interface IPatientInformationService {
|
public interface IPatientInformationService {
|
||||||
@@ -16,4 +22,39 @@ public interface IPatientInformationService {
|
|||||||
* @return 病人信息记录初期数据列表
|
* @return 病人信息记录初期数据列表
|
||||||
*/
|
*/
|
||||||
PatientInfoInitDto getPatientInfoInit();
|
PatientInfoInitDto getPatientInfoInit();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询病人信息
|
||||||
|
*
|
||||||
|
* @param busNo 病人ID(可选)
|
||||||
|
* @param name 病人姓名(可选)
|
||||||
|
* @param pageNo 页码(默认为1)
|
||||||
|
* @param pageSize 每页大小(默认为10))
|
||||||
|
* @return 分页查询
|
||||||
|
*/
|
||||||
|
Page<PatientInformationDto> getPatient(String busNo, String name, Integer pageNo, Integer pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改病人信息
|
||||||
|
*
|
||||||
|
* @param patientInformationDto 病人信息
|
||||||
|
* @return 更新结果
|
||||||
|
*/
|
||||||
|
R<?> editPatient(PatientInformationDto patientInformationDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加病人信息
|
||||||
|
*
|
||||||
|
* @param patientInformationDto 病人信息
|
||||||
|
*/
|
||||||
|
R<?> addPatient(PatientInformationDto patientInformationDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断身份证号是否存在
|
||||||
|
*
|
||||||
|
* @param idCard 身份证号
|
||||||
|
* @return 是/否
|
||||||
|
*/
|
||||||
|
boolean existsByIdCard(String idCard);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,28 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import com.core.common.utils.MessageUtils;
|
||||||
|
import com.openhis.common.constant.PromptMsgConstant;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.core.common.enums.AssignSeqEnum;
|
||||||
|
import com.core.common.utils.AssignSeqUtil;
|
||||||
|
import com.core.common.utils.ChineseConvertUtils;
|
||||||
|
import com.core.common.utils.DateUtils;
|
||||||
|
import com.core.common.utils.bean.BeanUtils;
|
||||||
|
import com.openhis.administration.domain.Patient;
|
||||||
|
import com.openhis.administration.mapper.PatientMapper;
|
||||||
|
import com.openhis.administration.service.IPatientService;
|
||||||
import com.openhis.common.enums.*;
|
import com.openhis.common.enums.*;
|
||||||
|
import com.openhis.common.utils.EnumUtils;
|
||||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||||
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
||||||
import org.springframework.stereotype.Service;
|
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||||
|
import com.openhis.web.patientmanage.mapper.PatientManageMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 门诊患者
|
* 门诊患者
|
||||||
@@ -18,6 +36,21 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class PatientInformationServiceImpl implements IPatientInformationService {
|
public class PatientInformationServiceImpl implements IPatientInformationService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
PatientManageMapper patientManageMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
PatientMapper patientMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
IPatientService patientService;
|
||||||
|
|
||||||
|
@Autowired(required = false)
|
||||||
|
AssignSeqUtil assignSeqUtil;
|
||||||
|
|
||||||
|
// todo 暂且机构ID写死,后续从登录里取得
|
||||||
|
private final Long organizationId = 91L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取病人信息记录初期数据列表
|
* 获取病人信息记录初期数据列表
|
||||||
*
|
*
|
||||||
@@ -65,4 +98,135 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
|||||||
return initDto;
|
return initDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询病人信息
|
||||||
|
*
|
||||||
|
* @param busNo 病人ID(可选)
|
||||||
|
* @param name 病人姓名(可选)
|
||||||
|
* @param pageNo 页码(默认为1)
|
||||||
|
* @param pageSize 每页大小(默认为10))
|
||||||
|
* @return 分页查询
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Page<PatientInformationDto> getPatient(String busNo, String name, Integer pageNo, Integer pageSize) {
|
||||||
|
// 跳过的记录数
|
||||||
|
Integer offset = (pageNo - 1) * pageSize;
|
||||||
|
// 连表查询患者信息
|
||||||
|
List<PatientInformationDto> listPatients = patientManageMapper.getPatientPage(busNo, name, pageSize, offset);
|
||||||
|
// 查询总记录数
|
||||||
|
long total = patientManageMapper.countPatients(busNo, name);
|
||||||
|
// 创建Page对象并设置属性
|
||||||
|
Page<PatientInformationDto> patientInformationPage = new Page<>(pageNo, pageSize, total);
|
||||||
|
patientInformationPage.setRecords(listPatients);
|
||||||
|
patientInformationPage.getRecords().forEach(e -> {
|
||||||
|
// 性别枚举类回显赋值
|
||||||
|
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
||||||
|
// 婚姻状态枚举类回显赋值
|
||||||
|
e.setMaritalStatusEnum_enumText(EnumUtils.getInfoByValue(MaritalStatus.class, e.getMaritalStatusEnum()));
|
||||||
|
// 职业编码枚举类回显赋值
|
||||||
|
e.setPrfsEnum_enumText(EnumUtils.getInfoByValue(OccupationType.class, e.getPrfsEnum()));
|
||||||
|
// 血型ABO枚举类回显赋值
|
||||||
|
e.setBloodAbo_enumText(EnumUtils.getInfoByValue(BloodTypeABO.class, e.getBloodAbo()));
|
||||||
|
// 血型RH枚举类回显赋值
|
||||||
|
e.setBloodRh_enumText(EnumUtils.getInfoByValue(BloodTypeRH.class, e.getBloodRh()));
|
||||||
|
// 家庭关系枚举类回显赋值
|
||||||
|
e.setLinkRelationCode_enumText(
|
||||||
|
EnumUtils.getInfoByValue(FamilyRelationshipType.class, e.getLinkRelationCode()));
|
||||||
|
});
|
||||||
|
return patientInformationPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改病人信息
|
||||||
|
*
|
||||||
|
* @param patientInformationDto 病人信息
|
||||||
|
* @return 更新结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> editPatient(PatientInformationDto patientInformationDto) {
|
||||||
|
|
||||||
|
Patient patient = new Patient();
|
||||||
|
BeanUtils.copyProperties(patientInformationDto, patient);
|
||||||
|
|
||||||
|
// 设置生日
|
||||||
|
patient.setBirthDate(DateUtils.extractBirthday(patient.getIdCard()));
|
||||||
|
// 设置拼音首拼
|
||||||
|
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
||||||
|
// 设置五笔首拼
|
||||||
|
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
||||||
|
// 设置死亡时间,死亡时间未来时报错
|
||||||
|
if (DateUtils.isFuture(patientInformationDto.getDeceasedDate())) {
|
||||||
|
return R.fail("死亡时间未来时间是未来时间!");
|
||||||
|
}
|
||||||
|
patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
||||||
|
|
||||||
|
// 调用服务层更新病人信息
|
||||||
|
boolean result = patientService.updateById(patient);
|
||||||
|
if (result) {
|
||||||
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"病人信息"}));
|
||||||
|
} else {
|
||||||
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加病人信息
|
||||||
|
*
|
||||||
|
* @param patientInformationDto 病人信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> addPatient(PatientInformationDto patientInformationDto) {
|
||||||
|
|
||||||
|
Patient patient = new Patient();
|
||||||
|
BeanUtils.copyProperties(patientInformationDto, patient);
|
||||||
|
|
||||||
|
// 使用基础采番,设置病人ID
|
||||||
|
String code = assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix());
|
||||||
|
patient.setBusNo(code);
|
||||||
|
|
||||||
|
// 设置机构ID
|
||||||
|
patient.setOrganizationId(organizationId);
|
||||||
|
// 设置生日
|
||||||
|
patient.setBirthDate(DateUtils.extractBirthday(patient.getIdCard()));
|
||||||
|
// 设置拼音首拼
|
||||||
|
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
||||||
|
// 设置五笔首拼
|
||||||
|
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
||||||
|
// 设置死亡时间,死亡时间未来时报错
|
||||||
|
if (DateUtils.isFuture(patientInformationDto.getDeceasedDate())) {
|
||||||
|
return R.fail("死亡时间未来时间是未来时间!");
|
||||||
|
}
|
||||||
|
// 身份证号存在check
|
||||||
|
if (existsByIdCard(patientInformationDto.getIdCard())) {
|
||||||
|
// 身份证号存在
|
||||||
|
return R.fail("身份证号已存在!");
|
||||||
|
}
|
||||||
|
patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
||||||
|
|
||||||
|
// 调用服务层保存病人信息
|
||||||
|
boolean result = patientService.save(patient);
|
||||||
|
if (result) {
|
||||||
|
return R.ok("病人信息添加成功!");
|
||||||
|
} else {
|
||||||
|
return R.fail("病人信息添加失败!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断身份证号是否存在
|
||||||
|
*
|
||||||
|
* @param idCard 身份证号
|
||||||
|
* @return 是/否
|
||||||
|
*/
|
||||||
|
public boolean existsByIdCard(String idCard) {
|
||||||
|
// 构造查询条件
|
||||||
|
LambdaQueryWrapper<Patient> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(Patient::getIdCard, idCard);
|
||||||
|
if (patientMapper.selectOne(queryWrapper) == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,14 @@
|
|||||||
package com.openhis.web.patientmanage.controller;
|
package com.openhis.web.patientmanage.controller;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.core.common.enums.AssignSeqEnum;
|
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||||
import com.core.common.utils.*;
|
|
||||||
import com.core.common.utils.bean.BeanUtils;
|
|
||||||
import com.openhis.administration.domain.Patient;
|
|
||||||
import com.openhis.administration.service.IPatientService;
|
|
||||||
import com.openhis.common.constant.PromptMsgConstant;
|
|
||||||
import com.openhis.common.enums.*;
|
|
||||||
import com.openhis.common.utils.EnumUtils;
|
|
||||||
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||||
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
|
||||||
import com.openhis.web.patientmanage.mapper.PatientManageMapper;
|
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,24 +23,9 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class PatientInformationController {
|
public class PatientInformationController {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IPatientService patientService;
|
|
||||||
|
|
||||||
@Autowired(required = false)
|
|
||||||
private AssignSeqUtil assignSeqUtil;
|
|
||||||
|
|
||||||
@Autowired(required = false)
|
|
||||||
PatientManageMapper patientManageMapper;
|
|
||||||
//
|
|
||||||
// @Autowired(required = false)
|
|
||||||
// StringUtils stringUtils;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
IPatientInformationService patientInformationService;
|
IPatientInformationService patientInformationService;
|
||||||
|
|
||||||
// todo 暂且机构ID写死,后续从登录里取得
|
|
||||||
private final Long organizationId = 91L;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 病人信息记录初期数据列表
|
* 病人信息记录初期数据列表
|
||||||
*
|
*
|
||||||
@@ -72,38 +42,10 @@ public class PatientInformationController {
|
|||||||
*
|
*
|
||||||
* @param patientInformationDto 病人信息
|
* @param patientInformationDto 病人信息
|
||||||
*/
|
*/
|
||||||
// @PostMapping("/patient-information")
|
@PostMapping("/patient-information")
|
||||||
// public R<?> addPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
public R<?> addPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
||||||
//
|
return patientInformationService.addPatient(patientInformationDto);
|
||||||
// Patient patient = new Patient();
|
}
|
||||||
// BeanUtils.copyProperties(patientInformationDto, patient);
|
|
||||||
//
|
|
||||||
// // 使用基础采番,设置病人ID
|
|
||||||
// String code = assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix());
|
|
||||||
// patient.setBusNo(code);
|
|
||||||
//
|
|
||||||
// // 设置机构ID
|
|
||||||
// patient.setOrganizationId(organizationId);
|
|
||||||
// // 设置生日
|
|
||||||
// patient.setBirthDate(patientService.extractBirthday(patient.getIdCard()));
|
|
||||||
// // 设置拼音首拼
|
|
||||||
// patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
|
||||||
// // 设置五笔首拼
|
|
||||||
// patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
|
||||||
// // 设置死亡时间
|
|
||||||
// if (patientService.isFuture(patientInformationDto.getDeceasedDate())) {
|
|
||||||
// return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"死亡时间未来时"}));
|
|
||||||
// }
|
|
||||||
// patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
|
||||||
// // 调用服务层保存病人信息
|
|
||||||
// boolean savePatientSuccess = patientService.save(patient);
|
|
||||||
//
|
|
||||||
// if (!savePatientSuccess) {
|
|
||||||
// return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, null));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"病人信息"}));
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改病人信息
|
* 修改病人信息
|
||||||
@@ -112,26 +54,8 @@ public class PatientInformationController {
|
|||||||
*/
|
*/
|
||||||
@PutMapping("/patient-information")
|
@PutMapping("/patient-information")
|
||||||
public R<?> editPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
public R<?> editPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
||||||
|
|
||||||
Patient patient = new Patient();
|
|
||||||
BeanUtils.copyProperties(patientInformationDto, patient);
|
|
||||||
|
|
||||||
// 设置生日
|
|
||||||
patient.setBirthDate(patientService.extractBirthday(patient.getIdCard()));
|
|
||||||
// 设置拼音首拼
|
|
||||||
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
|
||||||
// 设置五笔首拼
|
|
||||||
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
|
||||||
// 设置死亡时间
|
|
||||||
if (patientService.isFuture(patientInformationDto.getDeceasedDate())) {
|
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"死亡时间未来时"}));
|
|
||||||
}
|
|
||||||
patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
|
||||||
|
|
||||||
// 调用服务层更新病人信息
|
// 调用服务层更新病人信息
|
||||||
return patientService.updateById(patient)
|
return patientInformationService.editPatient(patientInformationDto);
|
||||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"病人信息"}))
|
|
||||||
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,31 +72,7 @@ public class PatientInformationController {
|
|||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
|
|
||||||
// 跳过的记录数
|
return R.ok(patientInformationService.getPatient(busNo, name, pageNo, pageSize));
|
||||||
Integer offset = (pageNo - 1) * pageSize;
|
|
||||||
// 连表查询患者信息
|
|
||||||
List<PatientInformationDto> listPatients = patientManageMapper.getPatientPage(busNo, name, pageSize, offset);
|
|
||||||
// 查询总记录数
|
|
||||||
long total = patientManageMapper.countPatients(busNo, name);
|
|
||||||
// 创建Page对象并设置属性
|
|
||||||
Page<PatientInformationDto> patientInformationPage = new Page<>(pageNo, pageSize, total);
|
|
||||||
patientInformationPage.setRecords(listPatients);
|
|
||||||
patientInformationPage.getRecords().forEach(e -> {
|
|
||||||
// 性别枚举类回显赋值
|
|
||||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
|
||||||
// 婚姻状态枚举类回显赋值
|
|
||||||
e.setMaritalStatusEnum_enumText(EnumUtils.getInfoByValue(MaritalStatus.class, e.getMaritalStatusEnum()));
|
|
||||||
// 职业编码枚举类回显赋值
|
|
||||||
e.setPrfsEnum_enumText(EnumUtils.getInfoByValue(OccupationType.class, e.getPrfsEnum()));
|
|
||||||
// 血型ABO枚举类回显赋值
|
|
||||||
e.setBloodAbo_enumText(EnumUtils.getInfoByValue(BloodTypeABO.class, e.getBloodAbo()));
|
|
||||||
// 血型RH枚举类回显赋值
|
|
||||||
e.setBloodRh_enumText(EnumUtils.getInfoByValue(BloodTypeRH.class, e.getBloodRh()));
|
|
||||||
// 家庭关系枚举类回显赋值
|
|
||||||
e.setLinkRelationCode_enumText(
|
|
||||||
EnumUtils.getInfoByValue(FamilyRelationshipType.class, e.getLinkRelationCode()));
|
|
||||||
});
|
|
||||||
return R.ok(patientInformationPage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@
|
|||||||
ON T1.context_enum = #{device}
|
ON T1.context_enum = #{device}
|
||||||
AND T1.product_id = T4.id
|
AND T1.product_id = T4.id
|
||||||
WHERE T1.encounter_id = #{encounterId}
|
WHERE T1.encounter_id = #{encounterId}
|
||||||
|
AND T1.status_enum IN (1 , 2 , 5)
|
||||||
AND T1.delete_flag = '0'
|
AND T1.delete_flag = '0'
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.openhis.web.chargemanage.mapper.OutpatientRefundAppMapper">
|
||||||
|
|
||||||
|
<select id="selectEncounterPatientPayment"
|
||||||
|
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto">
|
||||||
|
SELECT T1.id,
|
||||||
|
T1.status_enum,
|
||||||
|
T1.relation_id,
|
||||||
|
T1.payment_no,
|
||||||
|
T1.payment_enum,
|
||||||
|
T1.location_id,
|
||||||
|
T1.expiration_date,
|
||||||
|
T1.tendered_amount,
|
||||||
|
T1.returned_amount,
|
||||||
|
T1.contract_no,
|
||||||
|
T1.charge_item_ids,
|
||||||
|
T2.prescription_no,
|
||||||
|
T2.account_id
|
||||||
|
FROM fin_payment_reconciliation AS T1
|
||||||
|
LEFT JOIN adm_charge_item AS T2
|
||||||
|
ON T2.id IN (T1.charge_item_ids)
|
||||||
|
WHERE T1.encouter_id =#{encounterId}
|
||||||
|
AND T1.status_enum IN (#{success},#{refundAll},#{refundPart})
|
||||||
|
AND T1.delete_flag = '0'
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<mapper namespace="com.openhis.web.outpatientmanage.mapper.OutpatientManageMapper">
|
<mapper namespace="com.openhis.web.outpatientmanage.mapper.OutpatientManageMapper">
|
||||||
|
|
||||||
<!-- 门诊皮试记录相关查询-->
|
<!-- 门诊皮试记录相关查询-->
|
||||||
<select id="getOutpatientSkinTestRecord"
|
<select id="getSkinTestRecords"
|
||||||
parameterType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam"
|
parameterType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam"
|
||||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto">
|
resultType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto">
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.common.enums;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付状态
|
||||||
|
*
|
||||||
|
* @author zwh
|
||||||
|
* @date 2025-03-17
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum PaymentStatus {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 草稿
|
||||||
|
*/
|
||||||
|
DRAFT(0, "0", "草稿"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付成功
|
||||||
|
*/
|
||||||
|
SUCCESS(1, "1", "支付成功"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付取消
|
||||||
|
*/
|
||||||
|
CANCEL(2, "2", "支付取消"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全部退款
|
||||||
|
*/
|
||||||
|
REFUND_ALL(3, "3", "全部退款"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部分退款
|
||||||
|
*/
|
||||||
|
REFUND_PART(4, "4", "部分退款"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误
|
||||||
|
*/
|
||||||
|
ERROR(9, "9", "错误");
|
||||||
|
|
||||||
|
private Integer value;
|
||||||
|
private String code;
|
||||||
|
private String info;
|
||||||
|
|
||||||
|
public static PaymentStatus getByValue(Integer value) {
|
||||||
|
if (value == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (PaymentStatus val : values()) {
|
||||||
|
if (val.getValue().equals(value)) {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,21 +14,4 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
public interface IPatientService extends IService<Patient> {
|
public interface IPatientService extends IService<Patient> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 从身份证号码中提取生日
|
|
||||||
*
|
|
||||||
* @param idCard 身份证号
|
|
||||||
* @return 出生日
|
|
||||||
*/
|
|
||||||
Date extractBirthday(String idCard);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 判断日期是否为未来时间
|
|
||||||
*
|
|
||||||
* @param date 字符串日期
|
|
||||||
* @return 是/否
|
|
||||||
*/
|
|
||||||
boolean isFuture(String date);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -26,46 +26,4 @@ import java.util.HashSet;
|
|||||||
@Service
|
@Service
|
||||||
public class PatientServiceImpl extends ServiceImpl<PatientMapper, Patient> implements IPatientService {
|
public class PatientServiceImpl extends ServiceImpl<PatientMapper, Patient> implements IPatientService {
|
||||||
|
|
||||||
/**
|
|
||||||
* 从身份证号码中提取生日
|
|
||||||
*
|
|
||||||
* @param idCard 身份证号
|
|
||||||
* @return 出生日
|
|
||||||
*/
|
|
||||||
public Date extractBirthday(String idCard) {
|
|
||||||
if (idCard == null) {
|
|
||||||
// 身份证号码为空
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 提取第7到14位作为生日字符串
|
|
||||||
String birthdayStr = idCard.substring(6, 14);
|
|
||||||
// 将生日字符串转换为 LocalDate
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
|
||||||
LocalDate date = LocalDate.parse(birthdayStr, formatter);
|
|
||||||
|
|
||||||
// 将 LocalDate 转换为 java.util.Date
|
|
||||||
return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFuture(String dateString) {
|
|
||||||
// 创建 DateTimeFormatter 对象,并设置所需的日期时间格式
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 解析字符串为 LocalDate 对象
|
|
||||||
LocalDate dateToCheck = LocalDate.parse(dateString, formatter);
|
|
||||||
// 获取当前日期
|
|
||||||
LocalDate currentDate = LocalDate.now();
|
|
||||||
// 检查日期是否是未来的时间
|
|
||||||
return dateToCheck.isAfter(currentDate);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
// 解析失败或其他异常,返回 false 或根据需要处理异常
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -41,7 +41,7 @@ public class PaymentReconciliation extends HisBaseEntity {
|
|||||||
private Integer paymentEnum;
|
private Integer paymentEnum;
|
||||||
|
|
||||||
/** 付款实体ID */
|
/** 付款实体ID */
|
||||||
private Long paypmentReconciliationId;
|
private Long paymentReconciliationId;
|
||||||
|
|
||||||
/** 发起支付的工作流程类别 */
|
/** 发起支付的工作流程类别 */
|
||||||
private Integer kindEnum;
|
private Integer kindEnum;
|
||||||
@@ -83,7 +83,7 @@ public class PaymentReconciliation extends HisBaseEntity {
|
|||||||
private String contractNo;
|
private String contractNo;
|
||||||
|
|
||||||
/** 处方号集合 */
|
/** 处方号集合 */
|
||||||
private String chargeItemJson;
|
private String chargeItemIds;
|
||||||
|
|
||||||
/** 就诊ID */
|
/** 就诊ID */
|
||||||
private Long encounterId;
|
private Long encounterId;
|
||||||
|
|||||||
@@ -106,5 +106,12 @@ public class MedicationDispense extends HisBaseEntity {
|
|||||||
/** 单次最大剂量 */
|
/** 单次最大剂量 */
|
||||||
private BigDecimal maxUnit;
|
private BigDecimal maxUnit;
|
||||||
|
|
||||||
|
/** 发放数量 */
|
||||||
|
private Integer quantity;
|
||||||
|
|
||||||
|
/** 发放单位 */
|
||||||
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 产品批号 */
|
||||||
|
private String lotNumber;
|
||||||
}
|
}
|
||||||
@@ -46,6 +46,9 @@ public class MedicationRequest extends HisBaseEntity {
|
|||||||
/** 请求单位编码 */
|
/** 请求单位编码 */
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 产品批号 */
|
||||||
|
private String lotNumber;
|
||||||
|
|
||||||
/** 请求合计(元) */
|
/** 请求合计(元) */
|
||||||
private BigDecimal displayAmount;
|
private BigDecimal displayAmount;
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,15 @@ public class DeviceDispense extends HisBaseEntity {
|
|||||||
/** 发药类型 */
|
/** 发药类型 */
|
||||||
private Integer dispenseCategoryEnum;
|
private Integer dispenseCategoryEnum;
|
||||||
|
|
||||||
|
/** 发放数量 */
|
||||||
|
private Integer quantity;
|
||||||
|
|
||||||
|
/** 发放单位 */
|
||||||
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 产品批号 */
|
||||||
|
private String lotNumber;
|
||||||
|
|
||||||
/** 器材编码 */
|
/** 器材编码 */
|
||||||
private Long deviceDefId;
|
private Long deviceDefId;
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import java.util.Date;
|
|||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
|
||||||
import com.core.common.core.domain.HisBaseEntity;
|
import com.core.common.core.domain.HisBaseEntity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
@@ -61,6 +61,9 @@ public class DeviceRequest extends HisBaseEntity {
|
|||||||
/** 请求单位编码 */
|
/** 请求单位编码 */
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 产品批号 */
|
||||||
|
private String lotNumber;
|
||||||
|
|
||||||
/** 器材编码 */
|
/** 器材编码 */
|
||||||
private Long deviceDefId;
|
private Long deviceDefId;
|
||||||
|
|
||||||
@@ -130,5 +133,4 @@ public class DeviceRequest extends HisBaseEntity {
|
|||||||
/** 发放编号 */
|
/** 发放编号 */
|
||||||
private Long dispenseId;
|
private Long dispenseId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user