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

@@ -5,10 +5,8 @@ import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.openhis.common.enums.AccountBillingStatus;
import com.openhis.common.enums.AccountStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -66,4 +64,7 @@ public class Account extends HisBaseEntity {
/** 是否为就诊登记使用 */
private Integer encounterFlag;
/** 险种类型 */
private String insutype;
}

View File

@@ -6,9 +6,8 @@ import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -67,4 +66,9 @@ public class ChargeItemDefinition extends HisBaseEntity {
/** 基础价格 */
private BigDecimal price;
/**
* 物价编码
*/
private String priceCode;
}

View File

@@ -1,14 +1,11 @@
package com.openhis.administration.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.openhis.common.enums.DeviceCategory;
import com.openhis.common.enums.DeviceSafety;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -70,7 +67,7 @@ public class Device extends HisBaseEntity {
private String partNumber;
/** 器材种类 */
private DeviceCategory categoryEnum;
private Integer categoryEnum;
/** 器材类型 */
private String typeCode;
@@ -93,5 +90,4 @@ public class Device extends HisBaseEntity {
/** 器材安全 */
private DeviceSafety safetyEnum;
}

View File

@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.openhis.common.enums.DeviceCategory;
import com.openhis.common.enums.PublicationStatus;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -27,6 +27,7 @@ public class DeviceDefinition extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 编码 */

View File

@@ -0,0 +1,113 @@
package com.openhis.administration.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 存储各类仪器的信息包括设备基本信息、状态、维护记录等Entity实体
*
* @author system
* @date 2025-09-19
*/
@Data
@TableName("adm_instrument")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Instrument extends HisBaseEntity {
/** 仪器的唯一标识符,使用自增序列 */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 仪器编号,唯一且不能为空 */
private String instrumentCode;
/** 仪器名称,必填项 */
private String instrumentName;
/** 仪器主编号 */
private String instrumentMainCode;
/** 仪器类型,选择项 */
private Integer instrumentTypeEnum;
/** 仪器型号 */
private String instrumentModel;
/** 生产厂家 */
private String manufacturer;
/** 仪器序列号 */
private String serialNumber;
/** 购买公司 */
private String purchasingCompany;
/** 联系人员 */
private String contactPerson;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
/** 购买日期 */
private Date purchaseDate;
/** 原价格 */
private BigDecimal originalPrice;
/** 成交价格 */
private BigDecimal transactionPrice;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
/** 安装日期 */
private Date installationDate;
/** 安装人员 */
private String installationPerson;
/** 维护人员 */
private String maintenancePerson;
/** 使用科室 */
private Long orgId;
/** 鉴定人员 */
private String identificationPerson;
/** 记录温度,选择项 */
private String recordedTemperature;
/** 仪器附件 */
private String accessories;
/** 仪器状态 */
private Integer instrumentStatusEnum;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
/** 报损日期 */
private Date damageReportDate;
/** 可复查仪器 是否 */
private Integer recheckableInstrumentEnum;
/** 使用状态,是否 */
private Integer usageStatusEnum;
/** 停用原因 */
private String decommissionReason;
/** 备注 */
private String remarks;
}

View File

@@ -0,0 +1,55 @@
package com.openhis.administration.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 观测定义Entity实体
*
* @author system
* @date 2025-09-23
*/
@Data
@TableName("adm_observation_definition")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ObservationDefinition extends HisBaseEntity {
/** $column.columnComment */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 观测名称,用于标识观测的具体名称 */
private String name;
/** 观测代码,用于唯一标识一个观测项 */
private String code;
/** 观测类型,例如:实验室、临床症状等 */
private Integer observationTypeEnum;
/** 参考范围例如3.0-6.0 mg/dL用于指示正常范围 */
private String referenceRange;
/** 观测仪器id */
private Long instrumentId;
/** 状态 */
private Integer statusEnum;
/** 删除状态) */
private String deleteFlag;
}

View File

@@ -60,4 +60,9 @@ public class OrganizationLocation extends HisBaseEntity {
/** 显示顺序 */
private Integer displayOrder;
/**
* 项目编码 | 药品:1 耗材:2
*/
private String itemCode;
}

View File

@@ -6,13 +6,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.ActPriority;
import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.enums.SupplyCategory;
import com.openhis.common.enums.SupplyStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -132,9 +128,4 @@ public class Patient extends HisBaseEntity {
/** 机构Id */
private Long organizationId;
public Patient() {
// 活动标识:启用
this.activeFlag = PublicationStatus.ACTIVE.getValue();
}
}

View File

@@ -0,0 +1,75 @@
package com.openhis.administration.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 样本定义Entity实体
*
* @author system
* @date 2025-09-05
*/
@Data
@TableName("adm_specimen_definition")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class SpecimenDefinition extends HisBaseEntity {
/** $column.columnComment */
@JsonSerialize(using = ToStringSerializer.class)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 样本类型 */
private Integer specimenTypeEnum;
/** 样本名称 */
private String specimenName;
/** 自定义码 */
private String customCode;
/** 类型顺序 */
private Integer typeOrder;
/** 外部代码 */
private String externalCode;
/** 序号 */
private Integer serialNumber;
/** 全网型 */
private String globalType;
/** 拼音 */
private String pyStr;
/** 五笔 */
private String wbStr;
/** 样本类 */
private String specimenClass;
/** 扩展类型 */
private String extendedType;
/** WHONET代码 */
private String whonetCode;
/** 状态 */
private Integer statusEnum;
}

View File

@@ -61,4 +61,10 @@ public class ChargeItemDefInfo extends ChargeItem {
/** 基础价格 */
private BigDecimal price;
/** 基础价格 */
private BigDecimal manualAdjustedPrice;
/** 基础价格 */
private BigDecimal systemDiscountPrice;
}

View File

@@ -0,0 +1,145 @@
package com.openhis.administration.dto;
import java.math.BigDecimal;
import java.util.Date;
import com.core.common.annotation.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 费用明细Dto
*
* @author swb
* @date 2025-12-16
*/
@Data
@Accessors(chain = true)
public class CostDetailDto {
/**
* 项目名称
*/
@Excel(name = "项目名称", sort = 2)
private String chargeName;
/**
* 费用类型
*/
private Integer chargeItemEnum;
@Excel(name = "费用类型", sort = 3)
private String chargeItemEnum_enumText;
/**
* 单价
*/
@Excel(name = "单价", sort = 4, scale = 2)
private BigDecimal unitPrice;
/**
* 数量
*/
@Excel(name = "数量", sort = 5, scale = 0)
private BigDecimal quantityValue;
/**
* 金额
*/
@Excel(name = "金额", sort = 6, scale = 2)
private BigDecimal totalPrice;
/**
* 执行科室
*/
private Long orgId;
@Excel(name = "执行科室", sort = 7)
private String orgName;
/**
* 执行人
*/
@Excel(name = "执行人", sort = 8)
private String practitioner;
/**
* 执行日期
*/
@Excel(name = "执行日期", sort = 9, dateFormat = "yyyy-MM-dd")
private Date recordedTime;
/**
* 医保类型
*/
private Integer chrgitmLv;
@Excel(name = "医保类型", sort = 10)
private String chrgitmLv_enumText;
/**
* 备注
*/
@Excel(name = "备注", sort = 11)
private String remark;
/**
* 住院患者id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long encounterId;
/**
* 患者id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long patientId;
/**
* 患者姓名
*/
private String patientName;
/**
* 生日
*/
private Date birthDate;
/**
* 年龄
*/
private String age;
/**
* 性别
*/
private Integer genderEnum;
private String genderEnum_enumText;
/**
* 诊断
*/
private String conditionNames;
/**
* 住院医生
*/
private String admittingDoctorName;
/**
* 余额
*/
private BigDecimal balanceAmount;
/**
* 住院号
*/
private String BusNo;
/**
* 床位名称
*/
private String bedName;
/**
* 费别
*/
private String contractName;
}

View File

@@ -0,0 +1,36 @@
package com.openhis.administration.dto;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 费用明细查询条件
*
* @author swb
* @date 2025-12-15
*/
@Data
@Accessors(chain = true)
public class CostDetailSearchParam {
/**
* 就诊ID列表
*/
@JsonSerialize(using = ToStringSerializer.class)
private List<Long> encounterIds;
/**
* 科室ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long orgId;
/**
* 费用类型ID
*/
private String chargeItemEnum;
}

View File

@@ -0,0 +1,47 @@
package com.openhis.administration.dto;
import java.util.Date;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 药品追溯患者信息Dto
*
* @author swb
* @date 2025-12-15
*/
@Data
@Accessors(chain = true)
public class TracePatientInfoDto {
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private Integer genderEnum;
private String genderEnum_enumText;
/**
* 生日
*/
private Date birthDate;
/**
* 年龄
*/
private String age;
/**
* 手机号
*/
private String phone;
/**
* 挂号时间
*/
private Date registerTime;
}

View File

@@ -5,10 +5,14 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.openhis.administration.domain.ChargeItem;
import com.openhis.administration.dto.ChargeItemBaseInfoDto;
import com.openhis.administration.dto.ChargeItemDefInfo;
import com.openhis.administration.dto.CostDetailDto;
import com.openhis.administration.dto.CostDetailSearchParam;
/**
* 费用项管理Mapper接口
@@ -34,4 +38,22 @@ public interface ChargeItemMapper extends BaseMapper<ChargeItem> {
* @return 集合
*/
List<ChargeItemDefInfo> getChargeItemDefInfoByIds(@Param("chargeItemIds") List<Long> chargeItemIds);
/**
* 查询费用明细
*
* @param queryWrapper 查询条件
* @param billable 待结算
* @param billed 已收费
* @param refunded 已退费
* @param active 使用中
* @param bed 床位
* @param admittingDoctor 住院医生
* @param personalCashAccount 个人现金账户
* @return 费用明细分页列表
*/
List<CostDetailDto> getCostDetails(@Param(Constants.WRAPPER) QueryWrapper<CostDetailSearchParam> queryWrapper,
@Param("billable") Integer billable, @Param("billed") Integer billed, @Param("refunded") Integer refunded,
@Param("active") Integer active, @Param("bed") Integer bed, @Param("admittingDoctor") String admittingDoctor,
@Param("personalCashAccount") String personalCashAccount);
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.Instrument;
/**
* 存储各类仪器的信息包括设备基本信息、状态、维护记录等Mapper接口
*
* @author system
* @date 2025-09-19
*/
@Repository
public interface InstrumentMapper extends BaseMapper<Instrument> {
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.ObservationDefinition;
/**
* 观测定义Mapper接口
*
* @author system
* @date 2025-09-23
*/
@Repository
public interface ObservationDefinitionMapper extends BaseMapper<ObservationDefinition> {
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.SpecimenDefinition;
/**
* 样本定义Mapper接口
*
* @author system
* @date 2025-09-05
*/
@Repository
public interface SpecimenDefinitionMapper extends BaseMapper<SpecimenDefinition> {
}

View File

@@ -7,6 +7,7 @@ import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.TraceNoManage;
import com.openhis.administration.dto.TracePatientInfoDto;
/**
* 【追溯码管理】Mapper接口
@@ -28,4 +29,14 @@ public interface TraceNoManageMapper extends BaseMapper<TraceNoManage> {
*/
List<TraceNoManage> getItemTraceNoInfo(@Param("itemTable") String itemTable, @Param("itemId") Long itemId,
@Param("locationId") Long locationId, @Param("lotNumber") String lotNumber);
/**
* 追溯患者信息
*
* @param medId 药品定义ID
* @param dispenseStatus 药品发放状态
* @return 患者信息列表
*/
List<TracePatientInfoDto> tracePatient(@Param("medId") Long medId, @Param("dispenseStatus") Integer dispenseStatus,
@Param("traceNo") String traceNo);
}

View File

@@ -2,10 +2,13 @@ package com.openhis.administration.service;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.ChargeItem;
import com.openhis.administration.dto.ChargeItemBaseInfoDto;
import com.openhis.administration.dto.ChargeItemDefInfo;
import com.openhis.administration.dto.CostDetailDto;
import com.openhis.administration.dto.CostDetailSearchParam;
/**
* 费用项管理Service接口
@@ -124,4 +127,36 @@ public interface IChargeItemService extends IService<ChargeItem> {
*/
void updatePlannedChargeStatus(List<Long> procedureIdList);
/**
* 根据encounterId查询收费项
*
* @param id
* @return
*/
List<ChargeItem> getChargeItemByEncounterId(Long id);
/**
* 根据encounterId查询收费项
*
* @param id
* @return
*/
List<ChargeItem> getChargeItemByEncounterId(Long id, String tableName, List<Long> serviceId);
/**
* 查询费用明细
*
* @param queryWrapper 查询条件
* @param billable 待结算
* @param billed 已收费
* @param refunded 已退费
* @param active 使用中
* @param bed 床位
* @param admittingDoctor 住院医生
* @param personalCashAccount 个人现金账户
* @return 费用明细分页列表
*/
List<CostDetailDto> getCostDetails(QueryWrapper<CostDetailSearchParam> queryWrapper, Integer billable,
Integer billed, Integer refunded, Integer active, Integer bed, String admittingDoctor,
String personalCashAccount);
}

View File

@@ -0,0 +1,14 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Instrument;
/**
* 存储各类仪器的信息包括设备基本信息、状态、维护记录等Service接口
*
* @author system
* @date 2025-09-19
*/
public interface IInstrumentService extends IService<Instrument> {
}

View File

@@ -0,0 +1,14 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.ObservationDefinition;
/**
* 观测定义Service接口
*
* @author system
* @date 2025-09-23
*/
public interface IObservationDefinitionService extends IService<ObservationDefinition> {
}

View File

@@ -3,6 +3,8 @@ package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.PatientIdentifier;
import java.util.List;
/**
* 患者标识管理Service接口
*
@@ -16,7 +18,7 @@ public interface IPatientIdentifierService extends IService<PatientIdentifier> {
*
* @param patientId 患者Id
*/
PatientIdentifier selectByPatientId(Long patientId);
List<PatientIdentifier> selectByPatientId(Long patientId);
/**
* 查询病人标识

View File

@@ -1,9 +1,7 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Encounter;
import com.openhis.administration.domain.Patient;
import com.openhis.administration.domain.PatientIdentifier;
/**
* 患者管理Service接口
@@ -27,19 +25,4 @@ public interface IPatientService extends IService<Patient> {
*/
boolean savePatient(Patient patient);
/**
* 添加病人
*
* @param patient 患者实体
*/
boolean addPatient(Patient patient);
/**
* 更新病人
*
* @param patient 患者实体
*/
boolean updatePatient(Patient patient);
}

View File

@@ -0,0 +1,16 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.SpecimenDefinition;
import javax.servlet.http.HttpServletRequest;
/**
* 样本定义Service接口
*
* @author system
* @date 2025-09-05
*/
public interface ISpecimenDefinitionService extends IService<SpecimenDefinition> {
}

View File

@@ -9,10 +9,10 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.enums.DelFlag;
import com.openhis.administration.domain.EncounterLocation;
import com.openhis.administration.mapper.EncounterLocationMapper;
import com.openhis.administration.service.IEncounterLocationService;
import com.openhis.common.enums.DelFlag;
import com.openhis.common.enums.EncounterActivityStatus;
import com.openhis.common.enums.LocationForm;
@@ -73,7 +73,7 @@ public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationM
public void creatEncounterLocation(Long encounterId, Date startTime, Long locationId, Integer locationForm) {
EncounterLocation encounterLocation = new EncounterLocation();
encounterLocation.setEncounterId(encounterId).setStartTime(startTime).setLocationId(locationId)
.setFormEnum(locationForm);
.setFormEnum(locationForm).setStatusEnum(EncounterActivityStatus.ACTIVE.getValue());
baseMapper.insert(encounterLocation);
}
@@ -150,11 +150,11 @@ public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationM
.eq(EncounterLocation::getDeleteFlag, DelFlag.NO.getCode());
if (locationForm != null) {
queryWrapper.eq(EncounterLocation::getFormEnum, locationForm.getCode());
queryWrapper.eq(EncounterLocation::getFormEnum, locationForm.getValue());
}
if (encounterActivityStatus != null) {
queryWrapper.eq(EncounterLocation::getStatusEnum, encounterActivityStatus.getCode());
queryWrapper.eq(EncounterLocation::getStatusEnum, encounterActivityStatus.getValue());
}
return baseMapper.selectList(queryWrapper);
}

View File

@@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.EncounterParticipant;
import com.openhis.administration.mapper.EncounterParticipantMapper;
import com.openhis.administration.service.IEncounterParticipantService;
import com.openhis.common.enums.DelFlag;
import com.core.common.enums.DelFlag;
import com.openhis.common.enums.EncounterActivityStatus;
import com.openhis.common.enums.ParticipantType;

View File

@@ -0,0 +1,19 @@
package com.openhis.administration.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.Instrument;
import com.openhis.administration.mapper.InstrumentMapper;
import com.openhis.administration.service.IInstrumentService;
/**
* 存储各类仪器的信息包括设备基本信息、状态、维护记录等Service业务层处理
*
* @author system
* @date 2025-09-19
*/
@Service
public class InstrumentServiceImpl extends ServiceImpl<InstrumentMapper, Instrument> implements IInstrumentService {
}

View File

@@ -0,0 +1,19 @@
package com.openhis.administration.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.ObservationDefinition;
import com.openhis.administration.mapper.ObservationDefinitionMapper;
import com.openhis.administration.service.IObservationDefinitionService;
/**
* 观测定义Service业务层处理
*
* @author system
* @date 2025-09-23
*/
@Service
public class ObservationDefinitionServiceImpl extends ServiceImpl<ObservationDefinitionMapper, ObservationDefinition> implements IObservationDefinitionService {
}

View File

@@ -10,6 +10,8 @@ import com.openhis.administration.domain.PatientIdentifier;
import com.openhis.administration.mapper.PatientIdentifierMapper;
import com.openhis.administration.service.IPatientIdentifierService;
import java.util.List;
/**
* 患者标识管理Service业务层处理
*
@@ -29,12 +31,11 @@ public class PatientIdentifierServiceImpl extends ServiceImpl<PatientIdentifierM
* @param patientId 患者Id
*/
@Override
public PatientIdentifier selectByPatientId(Long patientId) {
public List<PatientIdentifier> selectByPatientId(Long patientId) {
// 构造查询条件
LambdaQueryWrapper<PatientIdentifier> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PatientIdentifier::getPatientId, patientId);
return baseMapper.selectOne(queryWrapper);
return baseMapper.selectList(queryWrapper);
}

View File

@@ -123,51 +123,4 @@ public class PatientServiceImpl extends ServiceImpl<PatientMapper, Patient> impl
return patientExists;
}
/**
* 添加病人
*
* @param patient 患者实体
*/
@Override
public boolean addPatient(Patient patient) {
Long organizationId = SecurityUtils.getLoginUser().getHospitalId();
// 设置机构ID
patient.setOrganizationId(organizationId);
// 设置拼音首拼
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
// 设置五笔首拼
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
// 不存在重复的证件号,新增患者
if (patient.getIdCard() == null || patient.getIdCard().isEmpty() ||idCardExists(patient) == null) {
// 添加患者
return baseMapper.insert(patient) > 0;
}
return false;
}
/**
* 更新病人
*
* @param patient 患者实体
*/
@Override
public boolean updatePatient(Patient patient) {
Patient patientExists = idCardExists(patient);
Long organizationId = SecurityUtils.getLoginUser().getHospitalId();
// 设置机构ID
patient.setOrganizationId(organizationId);
// 设置拼音首拼
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
// 设置五笔首拼
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
// 根据证件号查询,不存在重复的证件号
if (patientExists == null) {
// 患者修改了证件号码且不重复,更新患者
return baseMapper.updateById(patient) > 0;
} else if (patientExists.getId().compareTo(patient.getId()) == 0) {
// 患者未修改证件号码,更新患者
return baseMapper.updateById(patient) > 0;
}
return false;
}
}

View File

@@ -2,7 +2,7 @@ package com.openhis.administration.service.impl;
import java.util.List;
import com.openhis.common.enums.DelFlag;
import com.core.common.enums.DelFlag;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

View File

@@ -0,0 +1,23 @@
package com.openhis.administration.service.impl;
import com.core.common.core.domain.R;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.SpecimenDefinition;
import com.openhis.administration.mapper.SpecimenDefinitionMapper;
import com.openhis.administration.service.ISpecimenDefinitionService;
import javax.servlet.http.HttpServletRequest;
/**
* 样本定义Service业务层处理
*
* @author system
* @date 2025-09-05
*/
@Service
public class SpecimenDefinitionServiceImpl extends ServiceImpl<SpecimenDefinitionMapper, SpecimenDefinition> implements ISpecimenDefinitionService {
}