版本更新

This commit is contained in:
Zhang.WH
2025-09-03 15:54:41 +08:00
parent 0b93d16b64
commit 8f82322d10
3290 changed files with 154339 additions and 23829 deletions

View File

@@ -0,0 +1,69 @@
package com.openhis.administration.domain;
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;
/**
* 就诊账户管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_account")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Account extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 状态枚举 */
private Integer statusEnum;
/** 结账状态枚举 */
private Integer billingStatusEnum;
// 2025.04.10 经确认此处原有的【1 CASH 个人现金账户 | 2 医保账户】改为【01医保电子凭证 | 02 居民身份证 | 03 社会保障卡 | 04 个人现金账户】
/** 账户类型编码 */
private String typeCode;
/** 编码 */
private String no;
/** 名称 */
private String name;
/** 患者id */
private Long patientId;
/** 就诊id */
private Long encounterId;
/** 账户余额 */
private BigDecimal balanceAmount;
/** 医保区域编码 */
private String ybAreaNo;
/** 合同编码 */
private String contractNo;
/** 欠费限制额度 */
private BigDecimal limitAccount;
/** 是否为就诊登记使用 */
private Integer encounterFlag;
}

View File

@@ -0,0 +1,70 @@
package com.openhis.administration.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 用户管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("sys_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class BizUser extends HisBaseEntity {
/** 用户ID */
// @TableId(type = IdType.ASSIGN_ID)
private Long userId;
/** 部门ID */
private Long deptId;
/** 用户账号 */
private String userName;
/** 用户昵称 */
private String nickName;
/** 用户类型 */
private String userType;
/** 用户邮箱 */
private String email;
/** 手机号码 */
private String phonenumber;
/** 用户性别 */
private String sex;
/** 用户头像 */
private String avatar;
/** 密码 */
private String password;
/** 帐号状态0正常 1停用 */
private String status;
/** 删除标志0代表存在 2代表删除 */
private String delFlag;
/** 最后登录IP */
private String loginIp;
/** 最后登录时间 */
private Date loginDate;
/** 备注 */
private String remark;
}

View File

@@ -0,0 +1,27 @@
package com.openhis.administration.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 用户角色Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("sys_user_role")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class BizUserRole {
/** 用户ID */
private Long userId;
/** 角色ID */
private Long roleId;
}

View File

@@ -0,0 +1,46 @@
package com.openhis.administration.domain;
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 liuhr
* @date 2025-07-22
*/
@Data
@TableName("adm_body_structure")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class BodyStructure extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 编码 */
private String busNo;
/** 部位名称 */
private String name;
/** 状态枚举 */
private Integer statusEnum;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
}

View File

@@ -0,0 +1,155 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 费用项管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_charge_item")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ChargeItem extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 状态 */
private Integer statusEnum;
/**
* 账单生成来源
*/
private Integer generateSourceEnum;
/** 层级 */
private String busNo;
/** 处方号 */
private String prescriptionNo;
/** 患者ID */
private Long patientId;
/** 类别 */
private Integer contextEnum;
/** 就诊ID */
private Long encounterId;
/** 发生时间 */
private Date occurrenceTime;
/** 执行人Id */
private Long performerId;
/** 执行科室 */
private Long performingOrgId;
/** 开立科室 */
private Long requestingOrgId;
/** 成本科室 */
private Long costOrgId;
/** 数量 */
private Integer quantityValue;
/** 单位 */
private String quantityUnit;
/** 单价 */
private BigDecimal unitPrice;
/** 总价 */
private BigDecimal totalPrice;
/** 费用定价ID */
private Long definitionId;
/** 定价子表主键 */
private Long defDetailId;
/** 原价 */
private BigDecimal baseAmount;
/** 折后价格 */
private BigDecimal discountAmount;
/** 附加价格 */
private BigDecimal surchargeAmount;
/** 改价原因 */
private String overrideReasonCode;
/** 改价原因文本 */
private String overrideReasonText;
/** 开立人ID */
private Long entererId;
/** 开立时间 */
private Date enteredDate;
/** 医疗服务所在表 */
private String serviceTable;
/** 医疗服务ID */
private Long serviceId;
/** 产品所在表 */
private String productTable;
/** 产品ID */
private Long productId;
/** 索赔结果 */
private Integer claimStateEnum;
/** 打印次数 */
private Integer printCount;
/** 关联账户ID */
private Long accountId;
/** 机构 */
private Long orgId;
/** 退费ID */
private Long refundId;
/**
* 子项json
*/
private String childrenJson;
/**
* 诊断id
*/
private Long conditionId;
/**
* 就诊诊断id
*/
private Long encounterDiagnosisId;
/**
* 中医标识
*/
private Integer tcmFlag;
}

View File

@@ -0,0 +1,53 @@
package com.openhis.administration.domain;
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.ActPriority;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 费用定价管理子Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_charge_item_def_detail")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ChargeItemDefDetail extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 费用定价主键ID */
private Long definitionId;
/** 条件规则 */
private Long conditionRuleId;
/** 条件 */
private String conditionCode;
/** 命中值 */
private String conditionValue;
/** 优先级 */
private Integer priority;
/** 价格 */
private BigDecimal amount;
public ChargeItemDefDetail() {
// 默认优先级:常规
this.priority = ActPriority.ROUTINE.getValue();
}
}

View File

@@ -0,0 +1,70 @@
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.PublicationStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 费用定价管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_charge_item_definition")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ChargeItemDefinition extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 名称 */
private String chargeName;
/** 标题 */
private String title;
/** 状态 */
private Integer statusEnum;
/** 机构ID */
private Long orgId;
/** 描述 */
private String description;
/** 代码 */
private String instanceTable;
/** 关联项目 */
private Long instanceId;
/** 有效时间开始 */
private Date effectiveStart;
/** 有效时间结束 */
private Date effectiveEnd;
/** 财务类别 */
private String typeCode;
/** 医保类别 */
private String ybType;
/** 是否使用详细价格规则 */
private Integer conditionFlag;
/** 基础价格 */
private BigDecimal price;
}

View File

@@ -0,0 +1,97 @@
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;
import lombok.experimental.Accessors;
/**
* 器材基本信息管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_device")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Device extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 器材编码 */
private String busNo;
/** 器材定义编号 */
private Long deviceDefId;
/** 器材状态 */
private Integer statusEnum;
/** 器材可用状态 */
private Integer availabilityEnum;
/** 厂家 */
private String manufacturer;
/** 生产日期 */
private Date manufactureDate;
/** 到期日期 */
private Date expirationDate;
/** 批号 */
private String lotNumber;
/** 厂家序列号 */
private String serialNumber;
/** 器材名称 */
private String name;
/** 器材别名 */
private String alias;
/** 制造商编号 */
private String modelNumber;
/** 零件编号 */
private String partNumber;
/** 器材种类 */
private DeviceCategory categoryEnum;
/** 器材类型 */
private String typeCode;
/** 器材版本 */
private String version;
/** 器材规格 */
private String deviceSpecifications;
/** 归属科室 */
private Long orgId;
/** 所在位置 */
private Long locationId;
/** 负责人/科室 */
private String support;
/** 器材安全 */
private DeviceSafety safetyEnum;
}

View File

@@ -0,0 +1,131 @@
package com.openhis.administration.domain;
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.DeviceCategory;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 器材定义管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_device_definition")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class DeviceDefinition extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 编码 */
private String busNo;
/** 器材名称 */
private String name;
/** 器材名称拼音 */
private String pyStr;
/** 器材五笔拼音 */
private String wbStr;
/** 器材分类 */
private String categoryCode;
/** 器材种类 */
private String typeCode;
/** 包装单位 */
private String unitCode;
/** 包装规格 */
private String size;
/** 最小库存警戒数量(常规单位) */
private BigDecimal itemMinQuantity;
/** 最大库存警戒数量(常规单位) */
private BigDecimal itemMaxQuantity;
/** 拆零比 */
private BigDecimal partPercent;
/** 最小使用单位 */
private String minUnitCode;
/** 所属科室 */
private Long orgId;
/** 所在位置 */
private Long locationId;
/** 产品型号 */
private String modelNumber;
/** 高值器材标志 */
private Integer hvcmFlag;
/** 销售单位 */
private String salesUnitCode;
/** 批准文号 */
private String approvalNumber;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybNo;
/** 医药机构目录编码 */
private String ybOrgNo;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 医保等级 */
private Integer chrgitmLv;
/** 状态 */
private Integer statusEnum;
/** 生产厂家 */
private Long manufacturerId;
/** 生产厂家 */
private String manufacturerText;
/** 供应商 */
private Long supplyId;
/** 说明 */
private String description;
/** 适用范围 */
private String jurisdiction;
/** 器材版本 */
private String version;
/** 主要成分 */
private String substanceText;
/** 过敏标记 */
private Integer allergenFlag;
/** 处方标志 */
private Integer rxFlag;
}

View File

@@ -0,0 +1,148 @@
package com.openhis.administration.domain;
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;
import java.util.Date;
/**
* 就诊管理Entity实体
*
* @author system
*/
@Data
@TableName("adm_encounter")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Encounter extends HisBaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 患者ID
*/
private Long patientId;
/**
* 群组ID
*/
private Long groupId;
/**
* 就诊编码
*/
private String busNo;
/**
* 状态编码
*/
private Integer statusEnum;
/**
* 类别编码
*/
private Integer classEnum;
/**
* 类别医保编码
*/
private Integer ybClassEnum;
/**
* 类别医保文本
*/
private String ybClassText;
/**
* 类别编码补充
*/
private String classJson;
/**
* 优先级编码
*/
private Integer priorityEnum;
/**
* 分类编码
*/
private Integer typeEnum;
/**
* 服务ID
*/
private Long serviceTypeId;
/**
* 就诊对象状态
*/
private Integer subjectStatusEnum;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 接诊时间
*/
private Date receptionTime;
/**
* 机构id
*/
private Long organizationId;
/**
* 就诊序号
*/
private Integer displayOrder;
/**
* 初复诊
*/
private Integer firstEnum;
/**
* 入院类型
*/
private String admitSourceCode;
/**
* 入院方式
*/
private String inWayCode;
/**
* 出院方式
*/
private String outWayCode;
/**
* 门诊就诊id
*/
private Long ambEncounterId;
/**
* 登记员id
*/
private Long registrarId;
}

View File

@@ -0,0 +1,70 @@
package com.openhis.administration.domain;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 就诊诊断管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_encounter_diagnosis")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EncounterDiagnosis extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 就诊id */
private Long encounterId;
/** 诊断_id */
private Long conditionId;
/** 住院患者疾病诊 */
private Integer iptDiseCrsp;
/** 住院患者疾病诊断类型代码 */
private Integer iptDiseTypeCode;
/** 入院疾病病情代码 */
private Integer admDiseCondCode;
/** 医疗类型 */
private String medTypeCode;// 2025/05/23 该字段改为med_type 与医保同步
/** 主诊断标记 */
private Integer maindiseFlag;
/** 最高诊断依据标记 */
private Integer highDiseEvidFlag;
/** 诊断排序医保文档要求数值型字符长度为2 */
private Integer diagSrtNo;
/**
* 中医证候组号
*/
private String syndromeGroupNo;
/**
* 中医标识
*/
private Integer tcmFlag;
/**
* 诊断描述
*/
private String diagnosisDesc;
}

View File

@@ -0,0 +1,48 @@
package com.openhis.administration.domain;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 就诊位置管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_encounter_location")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EncounterLocation extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 就诊id */
private Long encounterId;
/** 位置ID */
private Long locationId;
/** 状态枚举 */
private Integer statusEnum;
/** 物理形式枚举 */
private Integer formEnum;
/** 开始时间 */
private Date startTime;
/** 结束时间 */
private Date endTime;
}

View File

@@ -0,0 +1,48 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 就诊参与者管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_encounter_participant")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EncounterParticipant extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 就诊id */
private Long encounterId;
/** 参与者类型 */
private String typeCode;
/** 开始时间 */
private Date startTime;
/** 结束时间 */
private Date endTime;
/** 参与者ID */
private Long practitionerId;
/** 状态 */
private Long statusEnum;
}

View File

@@ -0,0 +1,47 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 就诊原因管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_encounter_reason")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EncounterReason extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 就诊id */
private Long encounterId;
/** 原因编码 */
private String useCode;
/** 具体原因类型 */
private String valueTable;
/** 原因ID */
private Long valueId;
/** 原因描述 */
private String note;
}

View File

@@ -0,0 +1,109 @@
package com.openhis.administration.domain
;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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;
import java.io.Serializable;
import java.util.Date;
/**
* 频次配置表,用于频次、周期和相关信息
* @TableName adm_frequency
*/
@Data
@TableName(value ="adm_frequency")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Frequency extends HisBaseEntity {
/**
* 唯一标识符
*/
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 频次代码,唯一标识与字典表对应
*/
private String rateCode;
/**
* 频次名称
*/
private String name;
/**
* 每天执行的次数
*/
private Integer dayCount;
/**
* 每次执行之间的间隔(天数)
*/
private Integer dayInterval;
/**
* 每天的具体执行时间点,逗号分隔
*/
private String dayTimes;
/**
* 是否周期性每周执行0 为否1 为是
*/
private Integer weekCycleFlag;
/**
* 每周执行的间隔,单位为周
*/
private Integer weekInterval;
/**
* 每周执行的次数
*/
private Integer weekTimes;
/**
* 是否为连续执行0 为否1 为是
*/
private Integer continueFlag;
/**
* 执行总次数,记录任务累计执行次数
*/
private Integer totalExecutionCount;
/**
* 任务执行周期长度
*/
private Integer executionPeriod;
/**
* 任务执行周期的单位,如 day、week、month
*/
private String executionPeriodUnit;
/**
* 第三方代码,外部系统使用
*/
private String thirdCode;
/**
* 备注信息
*/
private String memo;
/**
* 并发戳,用于版本控制和并发冲突检测
*/
private Integer concurrencyStamp;
}

View File

@@ -0,0 +1,66 @@
package com.openhis.administration.domain;
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-02-20
*/
@Data
@TableName("adm_healthcare_service")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class HealthcareService extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 活动标记 */
private Integer activeFlag;
/** 提供部门ID */
private Long offeredOrgId;
/** 服务分类 */
private String categoryCode;
/** 服务类型 */
private String typeCode;
/** 服务专业 */
private String specialtyCode;
/** 地点 */
private Long locationId;
/** 服务名称 */
private String name;
/** 说明 */
private String comment;
/** 额外细节 */
private String extraDetails;
/** 联系方式 */
private String contact;
/** 预约要求 */
private Integer appointmentRequiredFlag;
/** 医保编码 */
private String ybNo;
}

View File

@@ -0,0 +1,19 @@
package com.openhis.administration.domain;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum IdentifierUse {
USUAL(1, "USUAL", "Usual item"),
OFFICIAL(2, "OFFICIAL", "Official item"),
TEMP(3, "TEMP", "Temporary item"),
SECONDARY(4, "SECONDARY", "Secondary item"),
OLD(5, "OLD", "Old item");
@EnumValue
private final Integer value;
private final String code;
private final String info;
}

View File

@@ -0,0 +1,82 @@
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.InvoiceStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 发票管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_invoice")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Invoice extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 患者ID */
private Long patientId;
/** 付款ID */
private Long reconciliationId;
/** 状态 */
private InvoiceStatus statusEnum;
/** 类别 */
private String typeCode;
/** 取消原因 */
private String cancelledReason;
/** 收费项 */
private String chargeItemIds;
/** 发票净额总记 */
private BigDecimal totalNet;
/** 发票总计金额 */
private BigDecimal totalGross;
/** 付款详情 */
private String paymentTerms;
/** 发票编号 */
private String busNo;
/** 开票员 */
private Long invoicingStaffId;
/** 电子票据代码 */
private String billBatchCode;
/** 电子票据号码 */
private String billNo;
/** 电子校验码 */
private String random;
/** 电子票据生成时间 */
private String billCreateTime;
/** 电子票据二维码图片数据 */
private String billQrCode;
/** 电子票据H5页面URL */
private String pictureUrl;
/** 电子票据外网H5页面URL */
private String pictureNetUrl;
/** 微信插卡URL */
private String wxCardUrl;
/** 票据营业日期 */
private Date billBusDate;
}

View File

@@ -0,0 +1,72 @@
package com.openhis.administration.domain;
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.LocationMode;
import com.openhis.common.enums.LocationOperational;
import com.openhis.common.enums.LocationStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 位置管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_location")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Location extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 编码 */
private String busNo;
/** 名称 */
private String name;
/** 状态编码 */
private Integer statusEnum;
/** 操作状态 */
private Integer operationalEnum;
/** 模式编码 */
// private LocationMode modeEnum;
private Integer modeEnum;
/** 功能编码 */
private String typeJson;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 物理形式枚举 */
private Integer formEnum;
/** 机构编码 */
private Long organizationId;
/** 显示顺序 */
private Integer displayOrder;
public Location() {
this.statusEnum = LocationStatus.ACTIVE.getValue();
this.modeEnum = LocationMode.INSTANCE.getValue();
}
}

View File

@@ -0,0 +1,38 @@
package com.openhis.administration.domain;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【对照表】Entity实体
*
* @author system
* @date 2025-04-25
*/
@Data
@TableName("org_contrast")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class OrgContrast extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 字典编码 */
private Long dictCode;
/** 项目代码 */
private String code;
/** 类型 */
private Integer typeEnum;
}

View File

@@ -0,0 +1,80 @@
package com.openhis.administration.domain;
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.OrganizationClass;
import com.openhis.common.enums.OrganizationType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 机构管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_organization")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Organization extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 编码 */
private String busNo;
/** 名称 */
private String name;
/** 活动标识 */
private Integer activeFlag;
/** 机构类型枚举 */
private Integer typeEnum;
/** 机构分类枚举 */
private Integer classEnum;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 医保码 */
private String ybNo;
/** 医保名称 */
private String ybName;
/** 科别 */
private String caty;
/** 显示顺序 */
private Integer displayOrder;
/** 医疗服务机构标识 */
private String medinsId;
/** 医疗机构行政区划编码 */
private String medinsAdmdvs;
/** 医疗服务机构类型 */
private String medinsType;
/** 医疗机构等级 */
private String medinsLv;
/** 默认挂号医生 */
private Long defDoctorId;
}

View File

@@ -0,0 +1,63 @@
package com.openhis.administration.domain;
import java.sql.Time;
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.annotation.Dict;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 机构位置关系管理Entity实体
*
* @author system
* @date 2025-02-22
*/
@Data
@TableName("adm_organization_location")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class OrganizationLocation extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 机构编码 */
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
private Long organizationId;
/** 默认发药药房 */
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
private Long defLocationId;
/** 发放类别 */
@Dict(dictCode = "distribution_category_code")
private String distributionCategoryCode;
/**
* 诊疗定义id
*/
private Long activityDefinitionId;
/**
* 诊疗类型
*/
private String activityCategoryCode;
/** 开始时间 */
private Time startTime;
/** 结束时间 */
private Time endTime;
/** 显示顺序 */
private Integer displayOrder;
}

View File

@@ -0,0 +1,140 @@
package com.openhis.administration.domain;
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 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;
/**
* 患者管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_patient")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Patient extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 活动标记 */
private Integer activeFlag;
/** 临时标识 */
private Integer tempFlag;
/** 患者姓名 */
private String name;
/** 患者其他名称 */
private String nameJson;
/** 患者院内编码/病历号 */
private String busNo;
/** 性别编码 */
private Integer genderEnum;
/** 生日 */
private Date birthDate;
/** 死亡时间 */
private Date deceasedDate;
/**
* 死亡原因
*/
private String deceasedReason;
/** 婚姻状态 */
private Integer maritalStatusEnum;
/** 职业编码 */
private Integer prfsEnum;
/** 电话 */
private String phone;
/** 地址 */
private String address;
/** 地址省 */
private String addressProvince;
/** 地址市 */
private String addressCity;
/** 地址区 */
private String addressDistrict;
/** 地址街道 */
private String addressStreet;
/** 患者其他地址 */
private String addressJson;
/** 民族 */
private String nationalityCode;
/** 身份证号 */
private String idCard;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 血型ABO */
private Integer bloodAbo;
/** 血型RH */
private Integer bloodRh;
/** 工作单位 */
private String workCompany;
/** 籍贯 */
private String nativePlace;
/** 国家编码 */
private String countryCode;
/** 联系人 */
private String linkName;
/** 联系人关系 */
private Integer linkRelationCode;
/** 联系人电话 */
private String linkTelcom;
/** 其他联系人 */
private String linkJsons;
/** 机构Id */
private Long organizationId;
public Patient() {
// 活动标识:启用
this.activeFlag = PublicationStatus.ACTIVE.getValue();
}
}

View File

@@ -0,0 +1,48 @@
package com.openhis.administration.domain;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 患者标识管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_patient_identifier")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PatientIdentifier extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 患者ID */
private Long patientId;
/** 标识类型编码 */
private String typeCode;
/** 标识号 */
private String identifierNo;
/** 标识状态枚举 */
private Integer stateEnum;
/** 有效时间Start */
private Date startTime;
/** 有效时间end */
private Date endTime;
}

View File

@@ -0,0 +1,103 @@
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 com.openhis.common.enums.AdministrativeGender;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 医疗参与者管理Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("adm_practitioner")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Practitioner extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 活动标记 */
private Integer activeFlag;
/** 姓名 */
private String name;
/** 其他名称 */
private String nameJson;
/** 性别编码 */
private Integer genderEnum;
/** 生日 */
private Date birthDate;
/** 死亡时间 */
private Date deceasedDate;
/** 电话 */
private String phone;
/** 地址 */
private String address;
/** 地址省 */
private String addressProvince;
/** 地址市 */
private String addressCity;
/** 地址区 */
private String addressDistrict;
/** 地址街道 */
private String addressStreet;
/** 患者其他地址 */
private String addressJson;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 患者院内编码/病历号 */
private String busNo;
/** 医保码 */
private String ybNo;
/** 机构id */
private Long orgId;
/** 系统用户id */
private Long userId;
/** 医生职称 */
private String drProfttlCode ;
/** 证件类型 */
private String prscDrCertCode;
/** 职业证件编号 */
private String pharPracCertNo;
/** 开票点编码 */
private String kpdCode;
}

View File

@@ -0,0 +1,61 @@
package com.openhis.administration.domain;
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-02-20
*/
@Data
@TableName("adm_practitioner_role")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PractitionerRole extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 名称 */
private String name;
/** 角色编码 */
private String roleCode;
/** 活动标识 */
private Integer activeFlag;
/** 参与者Id */
@JsonSerialize(using = ToStringSerializer.class)
private Long practitionerId;
/** 机构 */
private Long orgId;
/** 位置ID */
private Long locationId;
/** 服务id */
private Long healthcareServiceId;
/** 专业编码枚举 */
private Integer specialtyEnum;
/** 岗位类型 */
private String typeCode;
/** 有效时间 */
private String availabilityJson;
}

View File

@@ -0,0 +1,64 @@
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-02-20
*/
@Data
@TableName("adm_supplier")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Supplier extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 编号 */
private String busNo;
/** 名称 */
private String name;
/** 类型 */
private Integer typeEnum;
/** 地址 */
private String address;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 联系人电话 */
private String phone;
/** 联系人邮箱 */
private String email;
/** 活动标识 */
private Integer activeFlag;
/** 机构编号 */
private Long orgId;
}

View File

@@ -0,0 +1,61 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【追溯码管理】Entity实体
*
* @author system
* @date 2025-07-07
*/
@Data
@TableName("adm_trace_no_manage")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class TraceNoManage extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 项目所属表 */
private String itemTable;
/** 项目id */
private Long itemId;
/** 仓库类型 */
private Integer locationTypeEnum;
/** 仓库 */
private Long locationId;
/** 仓位 */
private Long locationStoreId;
/** 产品批号 */
private String lotNumber;
/** 追溯码 */
private String traceNo;
/** 追溯码状态 */
private Integer statusEnum;
/** 追溯码单位 */
private String unitCode;
/** 操作类型 */
private Integer operationType;
}

View File

@@ -0,0 +1,72 @@
package com.openhis.administration.dto;
import com.openhis.administration.domain.ChargeItem;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class ChargeItemBaseInfoDto extends ChargeItem {
/** 药品编号 */
private String baseBusNo;
/** 药品名称 */
private String name;
/** 药品分类 */
private String categoryCode;
/** 批准文号 */
private String approvalNumber;
/** 医保编码 */
private String ybNo;
/** 儿童用药标志 */
private Integer childrenFlag;
/** 医保等级 */
private Integer chrgitmLv;
/** 处方标志 */
private Integer rxFlag;
/** 药品请求编码 */
private String requestBusNo;
/** 处方号 */
private String prescriptionNo;
/** 分组id */
private Long groupId;
/** 类别医保编码 */
private Integer ybClassEnum;
/** 追溯码 */
private String traceNo;
/** 代煎标识 | 0:否 , 1:是 */
private Integer sufferingFlag;
/** 中医标识 */
private Integer tcmFlag;
/** 开单科室名称 */
private String deptName;
/** 开单科室医保码 */
private String deptYbNo;
/** 开单医生名称 */
private String doctName;
/** 开单科室医保码 */
private String doctYbNo;
/** 自费还是医保收费 */
private String contractNo;
}

View File

@@ -0,0 +1,64 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.administration.dto;
import java.math.BigDecimal;
import java.util.Date;
import com.openhis.administration.domain.ChargeItem;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* chargeItem 关联def的信息
*
* @author SunJQ
* @date 2025-08-07
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class ChargeItemDefInfo extends ChargeItem {
/** 名称 */
private String chargeName;
/** 标题 */
private String title;
/** 状态 */
private Integer statusEnum;
/** 机构ID */
private Long orgId;
/** 描述 */
private String description;
/** 代码 */
private String instanceTable;
/** 关联项目 */
private Long instanceId;
/** 有效时间开始 */
private Date effectiveStart;
/** 有效时间结束 */
private Date effectiveEnd;
/** 财务类别 */
private String typeCode;
/** 医保类别 */
private String ybType;
/** 是否使用详细价格规则 */
private Integer conditionFlag;
/** 基础价格 */
private BigDecimal price;
}

View File

@@ -0,0 +1,164 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.administration.dto;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 挂号和账户的集合实体
*
* @author SunJQ
* @date 2025-08-04
*/
@Data
@Accessors(chain = true)
public class EncounterAccountDto {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 状态枚举 */
private Integer statusEnum;
/** 结账状态枚举 */
private Integer billingStatusEnum;
// 2025.04.10 经确认此处原有的【1 CASH 个人现金账户 | 2 医保账户】改为【01医保电子凭证 | 02 居民身份证 | 03 社会保障卡 | 04 个人现金账户】
/** 账户类型编码 */
private String typeCode;
/** 编码 */
private String no;
/** 名称 */
private String name;
/** 患者id */
private Long patientId;
/** 就诊id */
private Long encounterId;
/** 账户余额 */
private BigDecimal balanceAmount;
/** 医保区域编码 */
private String ybAreaNo;
/** 合同编码 */
private String contractNo;
/** 欠费限制额度 */
private BigDecimal limitAccount;
/** 是否为就诊登记使用 */
private Integer encounterFlag;
/**
* 群组ID
*/
private Long groupId;
/**
* 就诊编码
*/
private String busNo;
/**
* 类别编码
*/
private Integer classEnum;
/**
* 类别医保编码
*/
private Integer ybClassEnum;
/**
* 类别医保文本
*/
private String ybClassText;
/**
* 类别编码补充
*/
private String classJson;
/**
* 优先级编码
*/
private Integer priorityEnum;
/**
* 分类编码
*/
private Integer typeEnum;
/**
* 服务ID
*/
private Long serviceTypeId;
/**
* 就诊对象状态
*/
private Integer subjectStatusEnum;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 接诊时间
*/
private Date receptionTime;
/**
* 机构id
*/
private Long organizationId;
/**
* 就诊序号
*/
private Integer displayOrder;
/**
* 初复诊
*/
private Integer firstEnum;
/**
* 入院类型
*/
private String admitSourceCode;
/**
* 入院方式
*/
private String inWayCode;
/**
* 门诊就诊id
*/
private Long ambEncounterId;
/**
* 登记员id
*/
private Long registrarId;
}

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.Account;
/**
* 就诊账户管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface AccountMapper extends BaseMapper<Account> {
}

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.BizUser;
/**
* 用户管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface BizUserMapper extends BaseMapper<BizUser> {
}

View File

@@ -0,0 +1,18 @@
package com.openhis.administration.mapper;
import com.openhis.administration.domain.BizUserRole;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.BizUser;
/**
* 用户角色Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface BizUserRoleMapper extends BaseMapper<BizUserRole> {
}

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.BodyStructure;
/**
* 身体部位管理Mapper接口
*
* @author liuhr
* @date 2025-07-22
*/
@Repository
public interface BodyStructureMapper extends BaseMapper<BodyStructure> {
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import com.openhis.administration.domain.ChargeItemDefDetail;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 费用定价管理子Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface ChargeItemDefAppMapper extends BaseMapper<ChargeItemDefDetail> {
}

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.ChargeItemDefinition;
/**
* 费用定价管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface ChargeItemDefinitionMapper extends BaseMapper<ChargeItemDefinition> {
}

View File

@@ -0,0 +1,37 @@
package com.openhis.administration.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.ChargeItem;
import com.openhis.administration.dto.ChargeItemBaseInfoDto;
import com.openhis.administration.dto.ChargeItemDefInfo;
/**
* 费用项管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface ChargeItemMapper extends BaseMapper<ChargeItem> {
/**
* 根据收费项的ID查找基础信息
*
* @param chargeItemIds
* @return
*/
List<ChargeItemBaseInfoDto> getChargeItemBaseInfoByIds(@Param("chargeItemIds") List<Long> chargeItemIds);
/**
* 收费项关联Def项目集合
*
* @param chargeItemIds 集合
* @return 集合
*/
List<ChargeItemDefInfo> getChargeItemDefInfoByIds(@Param("chargeItemIds") List<Long> chargeItemIds);
}

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.DeviceDefinition;
/**
* 器材定义管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface DeviceDefinitionMapper extends BaseMapper<DeviceDefinition> {
}

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.Device;
/**
* 器材基本信息管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface DeviceMapper extends BaseMapper<Device> {
}

View File

@@ -0,0 +1,32 @@
package com.openhis.administration.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.EncounterDiagnosis;
/**
* 就诊诊断管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface EncounterDiagnosisMapper extends BaseMapper<EncounterDiagnosis> {
/**
* 删除就诊信息
*
* @param encounterId 就诊id
*/
void deleteByEncounterId(@Param("encounterId") Long encounterId);
/**
* 删除中医就诊信息
*
* @param encounterId 就诊id
*/
void deleteTcmByEncounterId(@Param("encounterId") Long encounterId);
}

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.EncounterLocation;
/**
* 就诊位置管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface EncounterLocationMapper extends BaseMapper<EncounterLocation> {
}

View File

@@ -0,0 +1,31 @@
package com.openhis.administration.mapper;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.Encounter;
import com.openhis.administration.dto.EncounterAccountDto;
/**
* 就诊管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface EncounterMapper extends BaseMapper<Encounter> {
/**
* 查询挂号信息
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return 集合
*/
List<EncounterAccountDto> getEncounterInfoByTime(@Param("startDate") Date startDate,
@Param("endDate") Date endDate);
}

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.EncounterParticipant;
/**
* 就诊参与者管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface EncounterParticipantMapper extends BaseMapper<EncounterParticipant> {
}

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.EncounterReason;
/**
* 就诊原因管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface EncounterReasonMapper extends BaseMapper<EncounterReason> {
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.Frequency;
/**
* @author 47826
* @description 针对表【adm_frequency(频次配置表,用于频次、周期和相关信息)】的数据库操作Mapper
* @createDate 2025-08-21 14:22:11
* @Entity com/openhis/administration.domain.Frequency
*/
public interface FrequencyMapper extends BaseMapper<Frequency> {
}

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.HealthcareService;
/**
* 服务项目管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface HealthcareServiceMapper extends BaseMapper<HealthcareService> {
}

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.Invoice;
/**
* 发票管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface InvoiceMapper extends BaseMapper<Invoice> {
}

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.Location;
/**
* 位置管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface LocationMapper extends BaseMapper<Location> {
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import com.openhis.administration.domain.OrgContrast;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 【对照表】Mapper接口
*
* @author system
* @date 2025-04-25
*/
@Repository
public interface OrgContrastMapper extends BaseMapper<OrgContrast> {
}

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.OrganizationLocation;
/**
* 机构位置关系管理Mapper接口
*
* @author system
* @date 2025-02-22
*/
@Repository
public interface OrganizationLocationMapper extends BaseMapper<OrganizationLocation> {
}

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.Organization;
/**
* 机构管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface OrganizationMapper extends BaseMapper<Organization> {
}

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.PatientIdentifier;
/**
* 患者标识管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface PatientIdentifierMapper extends BaseMapper<PatientIdentifier> {
}

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.Patient;
/**
* 患者管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface PatientMapper extends BaseMapper<Patient> {
}

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.Practitioner;
/**
* 医疗参与者管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface PractitionerMapper extends BaseMapper<Practitioner> {
}

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.PractitionerRole;
/**
* 岗位管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface PractitionerRoleMapper extends BaseMapper<PractitionerRole> {
}

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.Supplier;
/**
* 供应商管理Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface SupplierMapper extends BaseMapper<Supplier> {
}

View File

@@ -0,0 +1,31 @@
package com.openhis.administration.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.TraceNoManage;
/**
* 【追溯码管理】Mapper接口
*
* @author system
* @date 2025-07-07
*/
@Repository
public interface TraceNoManageMapper extends BaseMapper<TraceNoManage> {
/**
* 查询追溯码信息
*
* @param itemTable 表名
* @param itemId 项目id
* @param locationId 药房id
* @param lotNumber 批号
* @return
*/
List<TraceNoManage> getItemTraceNoInfo(@Param("itemTable") String itemTable, @Param("itemId") Long itemId,
@Param("locationId") Long locationId, @Param("lotNumber") String lotNumber);
}

View File

@@ -0,0 +1,87 @@
package com.openhis.administration.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Account;
/**
* 就诊账户管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IAccountService extends IService<Account> {
/**
* 门诊挂号时保存账号信息
*
* @param account 账号信息
*/
Long saveAccountByRegister(Account account);
/**
* 获取就诊患者的自费账户id
*
* @param encounterId 就诊id
* @return 账户id
*/
Long getSelfPayAccount(Long encounterId);
/**
* 获取就诊患者的医保账户id
*
* @param encounterId 就诊id
* @return 账户id
*/
Long getMedicalInsuranceAccount(Long encounterId);
/**
* 插入或更新 Account 实体
*
* @param account 实体对象
* @return 是否成功
*/
boolean saveOrUpdateAccount(Account account);
/**
* 插入或更新 Account 实体
*
* @param account 实体对象
* @return 是否成功
*/
boolean isSelfPay(Account account);
/**
* 查找挂号时使用的账户
*
* @param encounterId 就诊id
* @return 账户实体
*/
Account getAccountByEncounterFlag(Long encounterId);
/**
* 查找挂号时使用的账户
*
* @param encounterId 就诊id
* @return 账户实体
*/
Account getYbAccount(Long encounterId);
/**
* 查找挂号时使用的账户
*
* @param encounterId 就诊id
* @return 账户实体
*/
Account getSelfAccount(Long encounterId);
/**
* 查询就诊的所有账户
*
* @param encounterId 就诊id
* @return 账户集合
*/
List<Account> getAccountListByEncounter(Long encounterId);
}

View File

@@ -0,0 +1,14 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.BizUserRole;
/**
* 用户角色Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IBizUserRoleService extends IService<BizUserRole> {
}

View File

@@ -0,0 +1,14 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.BizUser;
/**
* 用户管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IBizUserService extends IService<BizUser> {
}

View File

@@ -0,0 +1,39 @@
package com.openhis.administration.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.BodyStructure;
import com.openhis.administration.domain.Organization;
/**
* 身体部位管理Service接口
*
* @author liuhr
* @date 2025-07-22
*/
public interface IBodyStructureService extends IService<BodyStructure> {
/**
* 身体部位启用
*
* @param id 身体部位id
* @return 操作结果
*/
boolean activeBodyStructure(Long id);
/**
* 身体部位停用
*
* @param id 身体部位id
* @return 操作结果
*/
boolean inactiveBodyStructure(Long id);
/**
* 获取身体部位下拉列表
*
* @return 机构下拉列表
*/
List<BodyStructure> getList();
}

View File

@@ -0,0 +1,37 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.ChargeItemDefDetail;
/**
* 费用定价管理子Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IChargeItemDefDetailService extends IService<ChargeItemDefDetail> {
/**
* 更新项目定价
*
* @param chargeItemDefDetail 更新内容
* @return 更新结果
*/
boolean updateChargeItemDefApp(ChargeItemDefDetail chargeItemDefDetail);
/**
* 新增费用定价
*
* @param chargeItemDefDetail 新增内容
* @return 新增结果
*/
boolean addChargeItemDefApp(ChargeItemDefDetail chargeItemDefDetail);
/**
* 删除费用定价
*
* @param id 费用定价id
* @return 新增结果
*/
boolean deleteChargeItemDefApp(Long id);
}

View File

@@ -0,0 +1,52 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.ChargeItemDefinition;
import com.openhis.administration.domain.HealthcareService;
/**
* 费用定价管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IChargeItemDefinitionService extends IService<ChargeItemDefinition> {
/**
* 获取定价分页列表
*
* @param chargeItemDefinition 定价查询条件
* @param pageNo 页码
* @param pageSize 页面大小
* @return 定价分页列表
*/
Page<ChargeItemDefinition> getPage(ChargeItemDefinition chargeItemDefinition, Integer pageNo, Integer pageSize);
/**
* 新增费用定价
*
* @param chargeItemDefinition 新增内容
* @return 新增结果
*/
boolean addChargeItemDefinition(ChargeItemDefinition chargeItemDefinition);
/**
* 删除费用定价
*
* @param id 费用定价id
* @return 新增结果
*/
boolean deleteChargeItemDefinition(Long id);
/**
* 通过服务管理新增费用定价
*
* @param healthcareService 服务管理
* @param chargeItemDefinition 费用定价
* @return 新增结果
*/
boolean addChargeItemDefinitionByHealthcareService(HealthcareService healthcareService, ChargeItemDefinition chargeItemDefinition);
}

View File

@@ -0,0 +1,104 @@
package com.openhis.administration.service;
import java.util.List;
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;
/**
* 费用项管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IChargeItemService extends IService<ChargeItem> {
/**
* 创建已计费的采购账单
*
* @param chargeItemList 采购账单
*/
void createBilledPurchaseCharge(List<ChargeItem> chargeItemList);
/**
* 门诊挂号时保存 费用项
*
* @param chargeItem 费用项
*/
void saveChargeItemByRegister(ChargeItem chargeItem);
/**
* 更改就诊患者账户类型
*
* @param encounterId 就诊患者
* @param accountId 账户id
* @return 更新结果
*/
boolean updateAccountType(Long encounterId, Long accountId);
/**
* 根据收费项目id列表获取收费信息
*
* @param chargeItemIdList 收费项目id列表
* @return 收费信息
*/
List<ChargeItem> getChargeItemInfo(List<Long> chargeItemIdList);
/**
* 更新收费状态:退费中
*
* @param chargeItemIdList 收费id列表
*/
void updateRefundChargeStatus(List<Long> chargeItemIdList);
/**
* 根据集合更改收费状态
*
* @param chargeItemIdList 实体集合
* @param value 状态值
*/
void updatePaymentStatus(List<Long> chargeItemIdList, Integer value);
/**
* 根据表名和id删除费用项
*
* @param tableName 表名
* @param serviceId id
*/
void deleteByServiceTableAndId(String tableName, Long serviceId);
/**
* 根据就诊id查询患者因退费重新生成的账单
*
* @param encounterId 就诊id
* @return 重新生成的账单列表
*/
List<String> getRegenerateCharge(Long encounterId);
/**
* 根据请求编号列表查询收费项目信息
*
* @param requestIdList 请求id列表
* @return 收费项目信息
*/
List<ChargeItem> getChargeItemInfoByReqId(List<Long> requestIdList);
/**
* 收费项基础信息集合
*
* @param collect 集合
* @return 集合
*/
List<ChargeItemBaseInfoDto> getChargeItemBaseInfoByIds(List<Long> collect);
/**
* 收费项关联Def项目集合
*
* @param chargeItemIds 集合
* @return 集合
*/
List<ChargeItemDefInfo> getChargeItemDefInfoByIds(List<Long> chargeItemIds);
}

View File

@@ -0,0 +1,29 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.DeviceDefinition;
/**
* 器材定义管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IDeviceDefinitionService extends IService<DeviceDefinition> {
/**
* 新增器材目录
*
* @param deviceDefinition 耗材器材实体
* @return
*/
boolean addDevice(DeviceDefinition deviceDefinition);
/**
* 新增医保器材目录
*
* @param deviceDefinition 器材目录实体
* @return
*/
boolean addYbDevice(DeviceDefinition deviceDefinition);
}

View File

@@ -0,0 +1,14 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Device;
/**
* 器材基本信息管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IDeviceService extends IService<Device> {
}

View File

@@ -0,0 +1,71 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.EncounterDiagnosis;
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
import java.util.List;
/**
* 就诊诊断管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IEncounterDiagnosisService extends IService<EncounterDiagnosis> {
/**
* 删除就诊信息
*
* @param encounterId 就诊id
*/
void deleteEncounterDiagnosisInfos(Long encounterId);
/**
* 删除中医诊断
*
* @param encounterId 就诊id
*/
void deleteTcmEncounterDiagnosisInfos(Long encounterId);
/**
* 查询 med_type 类型
*
* @param encounterId 就诊id
* @return 诊断集合
*/
List<String> getMetTypeList(Long encounterId);
/**
* 查询 EncounterDiagnosis
*
* @param encounterId 就诊id
* @return 诊断集合
*/
List<EncounterDiagnosis> getDiagnosisList(Long encounterId);
/**
* 查询 EncounterDiagnosis
*
* @param encounterId 就诊id
* @param ybIptDiseTypeCode 诊断类型
* @return 诊断集合
*/
List<EncounterDiagnosis> getDiagnosisList(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode);
/**
* 查询 EncounterDiagnosis
*
* @param diaIdList 诊断主键id
* @return 诊断集合
*/
List<EncounterDiagnosis> getDiagnosisList(List<Long> diaIdList);
/**
* 在诊断中筛选主诊断
*
* @param list 诊断集合
* @return 主诊断
*/
EncounterDiagnosis getMainDiagnosis(List<EncounterDiagnosis> list);
}

View File

@@ -0,0 +1,80 @@
package com.openhis.administration.service;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.EncounterLocation;
import com.openhis.common.enums.EncounterLocationStatus;
import com.openhis.common.enums.LocationForm;
/**
* 就诊位置管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IEncounterLocationService extends IService<EncounterLocation> {
/**
* 保存住院位置信息
*
* @param encounterLocation 住院位置信息
*/
void saveEncounterLocation(EncounterLocation encounterLocation);
/**
* 自定义插入或更新方法,根据就诊id病区,判断是更新还是插入
*
* @param encounterLocation 实体对象
* @return 是否成功
*/
boolean saveOrUpdateEncounterLocation(EncounterLocation encounterLocation);
/**
* 创建住院位置
*
* @param encounterId 住院id
* @param startTime 开始时间
* @param locationId 位置id
* @param locationForm 位置类型
*/
void creatEncounterLocation(Long encounterId, Date startTime, Long locationId, Integer locationForm);
/**
* 查询住院患者床位相关信息
*
* @param encounterId 住院id
* @return 床位相关信息
*/
List<EncounterLocation> getEncounterLocationInfo(Long encounterId,Long locationId);
/**
* 更新位置使用状态
*
* @param encounterId 住院id
* @param isTransfer 是否专科
* @return 更新结果
*/
Integer updateEncounterLocationStatus(Long encounterId, boolean isTransfer);
/*
* 根据就诊id查询就诊位置信息
*
* @param encounterId 就诊id
* @return 就诊位置集合
*/
List<EncounterLocation> getEncounterLocationList(Long encounterId);
/**
* 根据就诊id查询就诊位置信息(某个类型)(某个状态)
*
* @param locationForm 类型
* @param encounterLocationStatus 状态
* @param encounterId 就诊id
* @return 就诊位置集合
*/
List<EncounterLocation> getEncounterLocationList(Long encounterId, LocationForm locationForm,
EncounterLocationStatus encounterLocationStatus);
}

View File

@@ -0,0 +1,58 @@
package com.openhis.administration.service;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.EncounterParticipant;
import com.openhis.common.enums.ParticipantType;
import java.util.List;
/**
* 就诊参与者管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IEncounterParticipantService extends IService<EncounterParticipant> {
/**
* 保存就诊参与者
*
* @param encounterParticipant 就诊参与者信息
*/
void saveEncounterParticipant(EncounterParticipant encounterParticipant);
/**
* 创建住院参与者
*
* @param encounterId 住院id
* @param startTime 入科时间
* @param practitionerId 参与者id
* @param typeCode 参与者类型
*/
void creatEncounterParticipants(Long encounterId, Date startTime, Long practitionerId, String typeCode);
/**
* 更新医疗参与者状态
*
* @param encounterId 住院id
* @return 更新结果
*/
Integer updateEncounterParticipantsStatus(Long encounterId);
/**
* 根据就诊id查询本次就诊的参与者
* @param encounterId 就诊id
* @return 就诊参与者集合
*/
List<EncounterParticipant> getEncounterParticipantList(Long encounterId);
/**
*
* @param encounterId
* @return
*/
List<EncounterParticipant> getEncounterParticipantListByTypeCode(Long encounterId, ParticipantType participantType);
}

View File

@@ -0,0 +1,14 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.EncounterReason;
/**
* 就诊原因管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IEncounterReasonService extends IService<EncounterReason> {
}

View File

@@ -0,0 +1,72 @@
package com.openhis.administration.service;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Encounter;
import com.openhis.administration.dto.EncounterAccountDto;
/**
* 就诊管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IEncounterService extends IService<Encounter> {
/**
* 保存就诊信息
*
* @param encounter 就诊信息
* @return 保存后的信息
*/
Long saveEncounterByRegister(Encounter encounter);
/**
* 退号
*
* @param encounterId 就诊id
*/
void returnRegister(Long encounterId);
/**
* 更新就诊管理
*
* @param encounter 就诊管理实体
*/
boolean saveOrUpdateEncounter(Encounter encounter);
/**
* 通过 id 更新 priorityEnum 字段
*
* @param id Encounter 的 id
* @param priorityEnum 要更新的 priorityEnum 值
* @return 更新是否成功
*/
boolean updatePriorityEnumById(Long id, Integer priorityEnum);
/**
* 通過busNo查詢對應的Encoounter信息醫保用
*
* @param iptOtpNo
*/
Encounter getByBusNo(String iptOtpNo);
/**
* 更新患者状态
*
* @param encounterId 就诊id
* @param encounterStatus 状态
* @return 更新数量
*/
Integer updateEncounterStatus(Long encounterId, Integer encounterStatus);
/**
* 查询挂号信息
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return 集合
*/
List<EncounterAccountDto> getEncounterInfoByTime(Date startDate, Date endDate);
}

View File

@@ -0,0 +1,16 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Frequency;
import javax.servlet.http.HttpServletRequest;
/**
* @author 47826
* @description 针对表【adm_frequency(频次配置表,用于频次、周期和相关信息)】的数据库操作Service
* @createDate 2025-08-21 14:22:11
*/
public interface IFrequencyService extends IService<Frequency> {
Page<Frequency> getPageList(Integer pageNo, Integer pageSize, String code, HttpServletRequest request);
}

View File

@@ -0,0 +1,28 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.HealthcareService;
/**
* 服务项目管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IHealthcareServiceService extends IService<HealthcareService> {
/**
* 服务管理 新增
* @param healthcareService 表单信息
* @return 入库后信息
*/
HealthcareService addHealthcareService(HealthcareService healthcareService);
/**
* 服务管理 编辑
* @param healthcareService 表单信息
* @return 编辑结果
*/
boolean updateHealthcareService(HealthcareService healthcareService);
}

View File

@@ -0,0 +1,21 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Invoice;
import com.openhis.administration.domain.Supplier;
/**
* 发票管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IInvoiceService extends IService<Invoice> {
/**
* 新增发票
*
* @param invoice 发票实体
* @return
*/
Long addInvoice(Invoice invoice);
}

View File

@@ -0,0 +1,102 @@
package com.openhis.administration.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Location;
/**
* 位置管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface ILocationService extends IService<Location> {
/**
* 获取药房列表
*
* @return 药房列表
*/
List<Location> getPharmacyList();
/**
* 获取药库列表
*
* @return 药库列表
*/
List<Location> getCabinetList();
/**
* 获取仓库列表
*
* @return 仓库列表
*/
List<Location> getWarehouseList();
/**
* 获取药房药库列表
*
* @return 药房药库列表
*/
List<Location> getPharmacyCabinetList();
/**
* 获取科室对应的病区列表
*
* @param id 科室id
* @return 病区列表
*/
List<Location> getWardList(Long id);
/**
* 获取病区下对应的病床列表
*
* @param id 病区id
* @return 病床列表
*/
List<Location> getBedList(Long id);
/**
* 依据id查询
*
* @param id
* @return
*/
Location getLocationById(Long id);
/**
* 新增位置信息
*
* @param location 位置信息
* @return 是否成功
*/
boolean addLocation(Location location);
/**
* 编辑位置信息
*
* @param location 位置信息
* @return 是否成功
*/
boolean updateLocation(Location location);
/**
* 根据科室ID集合查询对应信息
*
* @param ids 科室ID集合
* @return 科室信息列表
*/
List<Location> getLocationList(List<Long> ids);
/**
* 根据locationId更新状态
*
* @param id 位置Id
* @param status 操作状态
* @return 是否成功
*/
boolean updateStatusById(Long id, Integer status);
}

View File

@@ -0,0 +1,23 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.OrgContrast;
import com.openhis.yb.domain.ClinicSettle;
/**
* 【对照表】Service接口
*
* @author system
* @date 2025-04-25
*/
public interface IOrgContrastService extends IService<OrgContrast> {
/**
* 通过字典编码查询
*
* @param dictCode 字典编码
* @param typeEnum 类型
* @return
*/
OrgContrast getByDictCode(Long dictCode,Integer typeEnum );
}

View File

@@ -0,0 +1,31 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.OrganizationLocation;
/**
* 机构位置关系管理Service接口
*
* @author system
* @date 2025-02-25
*/
public interface IOrganizationLocationService extends IService<OrganizationLocation> {
/**
* 查询药品和耗材发放的科室
*
* @param orgId 机构id
* @param categoryCode 发放类型
* @return 药品和耗材发放的科室
*/
OrganizationLocation getOrgLocByOrgIdAndCategoryCode(Long orgId, String categoryCode);
/**
* 查询诊疗的执行科室
*
* @param activityDefinitionId 诊疗定义id
* @return 诊疗的执行科室
*/
OrganizationLocation getOrgLocByOrgIdAndActivityDefinitionId(Long activityDefinitionId);
}

View File

@@ -0,0 +1,48 @@
package com.openhis.administration.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Organization;
/**
* 机构管理Service接口
*
* @author system
* @date 2025-02-21
*/
public interface IOrganizationService extends IService<Organization> {
/**
* 机构启用
*
* @param orgId 机构信息id
* @return 操作结果
*/
boolean activeOrg(Long orgId);
/**
* 机构停用
*
* @param orgId 机构信息id
* @return 操作结果
*/
boolean inactiveOrg(Long orgId);
/**
* 获取机构下拉列表
*
* @param organizationType 机构类型
* @param organizationClass 机构分类
* @return 机构下拉列表
*/
List<Organization> getList(Integer organizationType, Integer organizationClass);
/**
* 根据id查询科室集合
*
* @param collect id集合
* @return 科室集合
*/
List<Organization> getOrganizationListById(List<Long> collect);
}

View File

@@ -0,0 +1,29 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.PatientIdentifier;
/**
* 患者标识管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IPatientIdentifierService extends IService<PatientIdentifier> {
/**
* 查询病人标识
*
* @param patientId 患者Id
*/
PatientIdentifier selectByPatientId(Long patientId);
/**
* 查询病人标识
*
* @param patientId 患者Id
* @param typeCode 患者标识
*/
boolean updateTypeByPatientId(Long patientId, String typeCode);
}

View File

@@ -0,0 +1,45 @@
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接口
*
* @author system
* @date 2025-02-20
*/
public interface IPatientService extends IService<Patient> {
/**
* 更新或者插入患者管理
*
* @param patient 患者实体
*/
boolean saveOrUpdatePatient(Patient patient);
/**
* 更新或者插入患者管理
*
* @param patient 患者实体
*/
boolean savePatient(Patient patient);
/**
* 添加病人
*
* @param patient 患者实体
*/
boolean addPatient(Patient patient);
/**
* 更新病人
*
* @param patient 患者实体
*/
boolean updatePatient(Patient patient);
}

View File

@@ -0,0 +1,57 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Practitioner;
import com.openhis.administration.domain.PractitionerRole;
import java.util.List;
/**
* 岗位管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IPractitionerRoleService extends IService<PractitionerRole> {
/**
* 根据执行人ID查询
*
* @param practitionerId 执行人ID
* @return 岗位管理实体
*/
PractitionerRole getPractitionerRoleById(long practitionerId);
/**
* 根据参与者Id查询其权限下所有科室id
*
* @param practitionerId 参与者Id
* @return 科室id
*/
List<Long> getOrgIdsByPractitionerId(Long practitionerId);
/**
* 根据参与者Id查询其权限下所有位置id
*
* @param practitionerId 参与者Id
* @return 位置id
*/
List<Long> getLocationIdsByPractitionerId(Long practitionerId);
/**
* 根据科室Id查询医生列表
*
* @param orgId 科室Id
* @return 医生列表
*/
List<PractitionerRole> getDoctorList(Long orgId);
/**
* 根据科室Id查询护士列表
*
* @return 护士列表
*/
List<PractitionerRole> getNurseList(Long orgId);
}

View File

@@ -0,0 +1,38 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Practitioner;
import com.openhis.administration.domain.PractitionerRole;
import java.util.List;
/**
* 医疗参与者管理Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IPractitionerService extends IService<Practitioner> {
/**
* 根据系统登录的userId查询
*
* @param userId 系统登录的userId
* @return 医疗参与者管理实体
*/
Practitioner getPractitionerByUserId(long userId);
/**
* 查询医疗参与者列表
*
* @return 医疗参与者列表
*/
List<Practitioner> getList();
/**
* 根据id查询参与者集合
* @param collect id集合
* @return 参与者集合
*/
List<Practitioner> getPractitionerListById(List<Long> collect);
}

View File

@@ -0,0 +1,45 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.Supplier;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.workflow.domain.SupplyRequest;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 供应商管理Service接口
*
* @author dh
* @date 2025-02-20
*/
public interface ISupplierService extends IService<Supplier> {
/**
* 新增供应商
*
* @param supplier 病种目录实体
* @return
*/
boolean addSupplier(Supplier supplier);
/**
* 查询供应商下拉列表
*
* @return 供应商下拉列表
*/
List<Supplier> getList();
/**
* 查询供应商信息
*
* @param name 名字
* @param address 地址
* @param typeEnum 类型
* @return 供应商信息
*/
List<Supplier> getsupplierList(String name,String address,Integer typeEnum);
}

View File

@@ -0,0 +1,24 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.TraceNoManage;
import java.util.List;
/**
* 【追溯码管理】Service接口
*
* @author system
* @date 2025-07-07
*/
public interface ITraceNoManageService extends IService<TraceNoManage> {
/**
* 获取在库的追溯码列表
*
* @param itemId 项目id
* @param lotNumber 批号
* @return 追溯码列表
*/
List<String> getInventoryTraceNoList(Long itemId, String lotNumber);
}

View File

@@ -0,0 +1,166 @@
package com.openhis.administration.service.impl;
import java.util.List;
import javax.validation.constraints.NotNull;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.Account;
import com.openhis.administration.mapper.AccountMapper;
import com.openhis.administration.service.IAccountService;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.YbCommonConstants;
import com.openhis.common.enums.AccountStatus;
import com.openhis.common.enums.AccountType;
import com.openhis.common.enums.Whether;
/**
* 就诊账户管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> implements IAccountService {
/**
* 门诊挂号时保存账号信息
*
* @param account 账号信息
*/
@Override
public Long saveAccountByRegister(Account account) {
account.setEncounterFlag(Whether.YES.getValue());
baseMapper.insert(account);
return account.getId();
}
/**
* 获取就诊患者的自费账户id
*
* @param encounterId 就诊id
* @return 账户id
*/
@Override
public Long getSelfPayAccount(Long encounterId) {
Account account = baseMapper
.selectOne(new LambdaQueryWrapper<Account>().select(Account::getId).eq(Account::getEncounterId, encounterId)
.eq(Account::getContractNo, CommonConstants.BusinessName.DEFAULT_CONTRACT_NO)
.last(YbCommonConstants.sqlConst.LIMIT1));
if (account != null) {
return account.getId();
}
return null;
}
/**
* 获取就诊患者的医保账户id
*
* @param encounterId 就诊id
* @return 账户id
*/
@Override
public Long getMedicalInsuranceAccount(Long encounterId) {
Account account = baseMapper
.selectOne(new LambdaQueryWrapper<Account>().select(Account::getId).eq(Account::getEncounterId, encounterId)
.in(Account::getTypeCode, AccountType.MEDICAL_ELECTRONIC_CERTIFICATE.getCode(),
AccountType.ID_CARD.getCode(), AccountType.SOCIAL_SECURITY_CARD.getCode())
.ne(Account::getContractNo, CommonConstants.BusinessName.DEFAULT_CONTRACT_NO)
.last(YbCommonConstants.sqlConst.LIMIT1));
if (account != null) {
return account.getId();
}
return null;
}
/**
* 插入或更新 Account 实体
*
* @param account 实体对象
* @return 是否成功
*/
/**
* 插入或更新 Account 实体
*
* @param account 实体对象
* @return 是否成功
*/
@Override
public boolean saveOrUpdateAccount(Account account) {
// 创建 LambdaQueryWrapper
LambdaQueryWrapper<Account> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Account::getPatientId, account.getPatientId())
.eq(Account::getEncounterId, account.getEncounterId())
// 账户状态是有效的
.eq(Account::getStatusEnum, AccountStatus.ACTIVE.getValue());
// 查询是否存在记录
Account existingAccount = baseMapper.selectOne(queryWrapper);
if (existingAccount != null) {
// 如果记录存在,更新记录
account.setId(existingAccount.getId()); // 设置主键
return baseMapper.updateById(account) > 0;
} else {
// 如果记录不存在,插入新记录
return baseMapper.insert(account) > 0;
}
}
/**
* 插入或更新 Account 实体
*
* @param account 实体对象
* @return 是否成功
*/
@Override
public boolean isSelfPay(@NotNull Account account) {
return CommonConstants.BusinessName.DEFAULT_CONTRACT_NO.equals(account.getContractNo());
}
/**
* 查找挂号时使用的账户
*
* @param encounterId 就诊id
* @return 账户实体
*/
@Override
public Account getAccountByEncounterFlag(Long encounterId) {
return baseMapper
.selectOne(new LambdaQueryWrapper<Account>().eq(Account::getEncounterFlag, Whether.YES.getValue())
.eq(Account::getEncounterId, encounterId).last(YbCommonConstants.sqlConst.LIMIT1));
}
/**
* 查找挂号时使用的账户
*
* @param encounterId 就诊id
* @return 账户实体
*/
@Override
public Account getYbAccount(Long encounterId) {
return baseMapper.selectOne(new LambdaQueryWrapper<Account>()
.ne(Account::getContractNo, CommonConstants.BusinessName.DEFAULT_CONTRACT_NO)
.eq(Account::getEncounterId, encounterId).last(YbCommonConstants.sqlConst.LIMIT1));
}
/**
* 查找挂号时使用的账户
*
* @param encounterId 就诊id
* @return 账户实体
*/
@Override
public Account getSelfAccount(Long encounterId) {
return baseMapper.selectOne(new LambdaQueryWrapper<Account>()
.eq(Account::getContractNo, CommonConstants.BusinessName.DEFAULT_CONTRACT_NO)
.eq(Account::getEncounterId, encounterId).last(YbCommonConstants.sqlConst.LIMIT1));
}
@Override
public List<Account> getAccountListByEncounter(Long encounterId) {
return baseMapper.selectList(new LambdaQueryWrapper<Account>().eq(Account::getEncounterId, encounterId));
}
}

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.BizUserRole;
import com.openhis.administration.mapper.BizUserRoleMapper;
import com.openhis.administration.service.IBizUserRoleService;
/**
* 用户角色Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class BizUserRoleServiceImpl extends ServiceImpl<BizUserRoleMapper, BizUserRole> implements IBizUserRoleService {
}

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.BizUser;
import com.openhis.administration.mapper.BizUserMapper;
import com.openhis.administration.service.IBizUserService;
/**
* 用户管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class BizUserServiceImpl extends ServiceImpl<BizUserMapper, BizUser> implements IBizUserService {
}

View File

@@ -0,0 +1,65 @@
package com.openhis.administration.service.impl;
import java.util.List;
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.openhis.administration.domain.BodyStructure;
import com.openhis.administration.mapper.BodyStructureMapper;
import com.openhis.administration.service.IBodyStructureService;
import com.openhis.common.enums.PublicationStatus;
/**
* 身体部位管理Service业务层处理
*
* @author liuhr
* @date 2025-07-22
*/
@Service
public class BodyStructureServiceImpl extends ServiceImpl<BodyStructureMapper, BodyStructure>
implements IBodyStructureService {
/**
* 身体部位启用
*
* @param id 身体部位id
* @return 操作结果
*/
@Override
public boolean activeBodyStructure(Long id) {
int updateCount = baseMapper.update(new BodyStructure().setStatusEnum(PublicationStatus.ACTIVE.getValue()),
new LambdaUpdateWrapper<BodyStructure>().eq(BodyStructure::getId, id));
return updateCount > 0;
}
/**
* 身体部位停用
*
* @param id 身体部位id
* @return 操作结果
*/
@Override
public boolean inactiveBodyStructure(Long id) {
int updateCount = baseMapper.update(new BodyStructure().setStatusEnum(PublicationStatus.RETIRED.getValue()),
new LambdaUpdateWrapper<BodyStructure>().eq(BodyStructure::getId, id));
return updateCount > 0;
}
/**
* 获取身体部位下拉列表
*
* @return 身体部位下拉列表
*/
@Override
public List<BodyStructure> getList() {
return baseMapper.selectList(new LambdaQueryWrapper<BodyStructure>()
.select(BodyStructure::getId, BodyStructure::getName).eq(BodyStructure::getDeleteFlag, '0'));
}
}

View File

@@ -0,0 +1,72 @@
package com.openhis.administration.service.impl;
import com.openhis.administration.domain.ChargeItemDefDetail;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.mapper.ChargeItemDefAppMapper;
import com.openhis.administration.service.IChargeItemDefDetailService;
/**
* 费用定价管理子Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class ChargeItemDefDetailServiceImpl extends ServiceImpl<ChargeItemDefAppMapper, ChargeItemDefDetail>
implements IChargeItemDefDetailService {
/**
* 更新项目定价
*
* @param chargeItemDefDetail 更新内容
* @return 更新结果
*/
@Override
public boolean updateChargeItemDefApp(ChargeItemDefDetail chargeItemDefDetail) {
// 更新样例 一切以实际为主
if (chargeItemDefDetail.getId() != null) {
// 获取更新前收费项目,避免更新导致数据库崩溃
if (baseMapper.selectById(chargeItemDefDetail.getId()) == null) {
return false;
} else {
//todo deleteFlag=1
return baseMapper.updateById(chargeItemDefDetail) > 0;
}
} else {
return false;
}
}
/**
* 新增费用定价
*
* @param chargeItemDefDetail 新增内容
* @return 新增结果
*/
@Override
public boolean addChargeItemDefApp(ChargeItemDefDetail chargeItemDefDetail) {
// 此判断是为了避免插入时主键重复
if (chargeItemDefDetail.getId() != null) {
return false;
} else {
return baseMapper.insert(chargeItemDefDetail) > 0;
}
}
/**
* 删除费用定价
*
* @param id 费用定价id
* @return 新增结果
*/
@Override
public boolean deleteChargeItemDefApp(Long id) {
if (baseMapper.selectById(id) == null) {
return false;
} else {
return baseMapper.deleteById(id) > 0;
}
}
}

View File

@@ -0,0 +1,99 @@
package com.openhis.administration.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.ChargeItemDefinition;
import com.openhis.administration.domain.HealthcareService;
import com.openhis.administration.mapper.ChargeItemDefinitionMapper;
import com.openhis.administration.service.IChargeItemDefinitionService;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.enums.DelFlag;
/**
* 费用定价管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefinitionMapper, ChargeItemDefinition>
implements IChargeItemDefinitionService {
/**
* 获取分页列表
*
* @param chargeItemDefinition 查询条件
* @param pageNo 页码
* @param pageSize 页面大小
* @return 分页列表
*/
@Override
public Page<ChargeItemDefinition> getPage(ChargeItemDefinition chargeItemDefinition, Integer pageNo,
Integer pageSize) {
LambdaQueryWrapper<ChargeItemDefinition> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ChargeItemDefinition::getDeleteFlag, DelFlag.NO.getValue());
// 拼接查询条件
if (chargeItemDefinition.getStatusEnum() != null) {
queryWrapper.eq(ChargeItemDefinition::getStatusEnum, chargeItemDefinition.getStatusEnum());
}
return baseMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);
}
/**
* 新增费用定价
*
* @param chargeItemDefinition 新增内容
* @return 新增结果
*/
@Override
public boolean addChargeItemDefinition(ChargeItemDefinition chargeItemDefinition) {
// 此判断是为了避免插入时主键重复
if (chargeItemDefinition.getId() != null) {
return false;
} else {
return baseMapper.insert(chargeItemDefinition) > 0;
}
}
/**
* 删除费用定价
*
* @param id 费用定价id
* @return 新增结果
*/
@Override
public boolean deleteChargeItemDefinition(Long id) {
if (baseMapper.selectById(id) == null) {
return false;
} else {
return baseMapper.deleteById(id) > 0;
}
}
/**
* 通过服务管理新增费用定价
*
* @param healthcareService 服务管理
* @param chargeItemDefinition 费用定价
* @return 新增结果
*/
@Override
public boolean addChargeItemDefinitionByHealthcareService(HealthcareService healthcareService,
ChargeItemDefinition chargeItemDefinition) {
// 服务管理主键id
if (healthcareService.getId() != null) {
chargeItemDefinition.setInstanceTable(CommonConstants.TableName.ADM_HEALTHCARE_SERVICE);
chargeItemDefinition.setInstanceId(healthcareService.getId());
return baseMapper.insert(chargeItemDefinition) > 0;
} else {
return false;
}
}
}

View File

@@ -0,0 +1,168 @@
package com.openhis.administration.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
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.openhis.administration.domain.ChargeItem;
import com.openhis.administration.dto.ChargeItemBaseInfoDto;
import com.openhis.administration.dto.ChargeItemDefInfo;
import com.openhis.administration.mapper.ChargeItemMapper;
import com.openhis.administration.service.IChargeItemService;
import com.openhis.common.enums.ChargeItemContext;
import com.openhis.common.enums.ChargeItemStatus;
import com.openhis.common.enums.DelFlag;
import lombok.AllArgsConstructor;
/**
* 费用项管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
@AllArgsConstructor
public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeItem> implements IChargeItemService {
/**
* 创建已计费的采购账单
*
* @param chargeItemList 采购账单
*/
@Override
public void createBilledPurchaseCharge(List<ChargeItem> chargeItemList) {
for (ChargeItem chargeItem : chargeItemList) {
// 此判断是为了避免插入时主键重复
if (chargeItem.getId() == null) {
baseMapper.insert(chargeItem);
}
}
}
/**
* 门诊挂号时保存 费用项
*
* @param chargeItem 费用项
*/
@Override
public void saveChargeItemByRegister(ChargeItem chargeItem) {
chargeItem.setContextEnum(ChargeItemContext.REGISTER.getValue());// 挂号
baseMapper.insert(chargeItem);
}
/**
* 更改就诊患者账户类型
*
* @param encounterId 就诊患者
* @param accountId 账户id
* @return 更新结果
*/
@Override
public boolean updateAccountType(Long encounterId, Long accountId) {
int update =
baseMapper.update(new ChargeItem().setAccountId(accountId),
new LambdaUpdateWrapper<ChargeItem>().eq(ChargeItem::getEncounterId, encounterId)
.in(ChargeItem::getStatusEnum, ChargeItemStatus.DRAFT.getValue(),
ChargeItemStatus.PLANNED.getValue(), ChargeItemStatus.BILLABLE.getValue())
.eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
return update > 0;
}
/**
* 根据收费项目id列表获取收费信息
*
* @param chargeItemIdList 收费项目id列表
* @return 收费信息
*/
@Override
public List<ChargeItem> getChargeItemInfo(List<Long> chargeItemIdList) {
return baseMapper.selectBatchIds(chargeItemIdList);
}
/**
* 更新收费状态:退费中
*
* @param chargeItemIdList 收费id列表
*/
@Override
public void updateRefundChargeStatus(List<Long> chargeItemIdList) {
baseMapper.update(new ChargeItem().setStatusEnum(ChargeItemStatus.REFUNDING.getValue()),
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList));
}
@Override
public void updatePaymentStatus(List<Long> chargeItemIdList, Integer value) {
baseMapper.update(new ChargeItem().setStatusEnum(value),
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList));
}
/**
* 根据表名和id删除费用项
*
* @param tableName 表名
* @param serviceId id
*/
@Override
public void deleteByServiceTableAndId(String tableName, Long serviceId) {
baseMapper.delete(new LambdaQueryWrapper<ChargeItem>().eq(ChargeItem::getServiceTable, tableName)
.eq(ChargeItem::getServiceId, serviceId));
}
/**
* 根据就诊id查询患者因退费重新生成的账单
*
* @param encounterId 就诊id
* @return 重新生成的账单列表
*/
@Override
public List<String> getRegenerateCharge(Long encounterId) {
List<ChargeItem> chargeItemList =
baseMapper.selectList(new LambdaUpdateWrapper<ChargeItem>().eq(ChargeItem::getEncounterId, encounterId)
.eq(ChargeItem::getStatusEnum, ChargeItemStatus.PLANNED.getValue()).isNotNull(ChargeItem::getRefundId));
List<String> chargeItemIdList = new ArrayList<>();
if (chargeItemList != null) {
chargeItemIdList =
chargeItemList.stream().map(item -> item.getId().toString()).collect(Collectors.toList());
}
return chargeItemIdList;
}
/**
* 根据请求编号列表查询收费项目信息
*
* @param requestIdList 请求id列表
* @return 收费项目信息
*/
@Override
public List<ChargeItem> getChargeItemInfoByReqId(List<Long> requestIdList) {
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getServiceId, requestIdList));
}
/**
* 收费项基础信息集合
*
* @param collect 集合
* @return 集合
*/
@Override
public List<ChargeItemBaseInfoDto> getChargeItemBaseInfoByIds(List<Long> collect) {
return baseMapper.getChargeItemBaseInfoByIds(collect);
}
/**
* 收费项关联Def项目集合
*
* @param chargeItemIds 集合
* @return 集合
*/
@Override
public List<ChargeItemDefInfo> getChargeItemDefInfoByIds(List<Long> chargeItemIds) {
return baseMapper.getChargeItemDefInfoByIds(chargeItemIds);
}
}

View File

@@ -0,0 +1,50 @@
package com.openhis.administration.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.DeviceDefinition;
import com.openhis.administration.mapper.DeviceDefinitionMapper;
import com.openhis.administration.service.IDeviceDefinitionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* 器材定义管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Slf4j
@Service
@AllArgsConstructor
public class DeviceDefinitionServiceImpl extends ServiceImpl<DeviceDefinitionMapper, DeviceDefinition>
implements IDeviceDefinitionService {
private final DeviceDefinitionMapper deviceDefinitionMapper;
@Override
public boolean addDevice(DeviceDefinition deviceDefinition) {
// 根据器材编码判断器材是否存在
List<DeviceDefinition> activityDefinitions = deviceDefinitionMapper.selectList(
new LambdaQueryWrapper<DeviceDefinition>().eq(DeviceDefinition::getBusNo, deviceDefinition.getBusNo()));
if (activityDefinitions.size() > 0) {
return false;
}
// 新增器材项目
int insert = deviceDefinitionMapper.insert(deviceDefinition);
if (insert != 1) {
return false;
}
return true;
}
@Override
public boolean addYbDevice(DeviceDefinition deviceDefinition) {
return false;
}
}

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.Device;
import com.openhis.administration.mapper.DeviceMapper;
import com.openhis.administration.service.IDeviceService;
/**
* 器材基本信息管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements IDeviceService {
}

View File

@@ -0,0 +1,128 @@
package com.openhis.administration.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.openhis.common.enums.Whether;
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.EncounterDiagnosis;
import com.openhis.administration.mapper.EncounterDiagnosisMapper;
import com.openhis.administration.service.IEncounterDiagnosisService;
import com.openhis.clinical.mapper.ConditionMapper;
/**
* 就诊诊断管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class EncounterDiagnosisServiceImpl extends ServiceImpl<EncounterDiagnosisMapper, EncounterDiagnosis>
implements IEncounterDiagnosisService {
@Resource
ConditionMapper conditionMapper;
/**
* 删除就诊信息
*
* @param encounterId 就诊id
*/
@Override
public void deleteEncounterDiagnosisInfos(Long encounterId) {
// 不删除中医
conditionMapper.deleteByEncounterId(encounterId);
baseMapper.deleteByEncounterId(encounterId);
}
/**
* 删除中医诊断
*
* @param encounterId 就诊id
*/
@Override
public void deleteTcmEncounterDiagnosisInfos(Long encounterId) {
// 删除中医
conditionMapper.deleteTcmByEncounterId(encounterId);
baseMapper.deleteTcmByEncounterId(encounterId);
}
/**
* 返回med_type类型
*
* @param encounterId 就诊id
* @return med_type集合
*/
@Override
public List<String> getMetTypeList(Long encounterId) {
List<EncounterDiagnosis> encounterDiagnoses = baseMapper.selectList(
new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId));
if (encounterDiagnoses == null) {
return new ArrayList<String>();
}
return encounterDiagnoses.stream().distinct().map(EncounterDiagnosis::getMedTypeCode)
.collect(Collectors.toList());
}
/**
* 返回med_type类型
*
* @param encounterId 就诊id
* @return EncounterDiagnosis 集合
*/
@Override
public List<EncounterDiagnosis> getDiagnosisList(Long encounterId) {
return baseMapper.selectList(
new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId));
}
/**
* 查询 EncounterDiagnosis
* @param diaIdList 诊断主键id
* @return 诊断集合
*/
@Override
public List<EncounterDiagnosis> getDiagnosisList(List<Long> diaIdList) {
return baseMapper
.selectList(new LambdaQueryWrapper<EncounterDiagnosis>().in(EncounterDiagnosis::getId, diaIdList));
}
/**
* 查询 EncounterDiagnosis
*
* @param encounterId 就诊id
* @param ybIptDiseTypeCode 诊断类型
* @return 诊断集合
*/
@Override
public List<EncounterDiagnosis> getDiagnosisList(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode) {
LambdaQueryWrapper<EncounterDiagnosis> queryWrapper = new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId);
if(ybIptDiseTypeCode!=null){
queryWrapper.eq(EncounterDiagnosis::getIptDiseTypeCode,ybIptDiseTypeCode.getValue());
}
return baseMapper.selectList(queryWrapper);
}
/**
* 在诊断中筛选主诊断
* @param list 诊断集合
* @return 主诊断
*/
@Override
public EncounterDiagnosis getMainDiagnosis(List<EncounterDiagnosis> list) {
for (EncounterDiagnosis encounterDiagnosis : list) {
if(Whether.YES.getValue()==encounterDiagnosis.getMaindiseFlag()){
return encounterDiagnosis;
}
}
return null;
}
}

View File

@@ -0,0 +1,161 @@
package com.openhis.administration.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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.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.EncounterLocationStatus;
import com.openhis.common.enums.LocationForm;
/**
* 就诊位置管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationMapper, EncounterLocation>
implements IEncounterLocationService {
/**
* 保存住院位置信息
*
* @param encounterLocation 住院位置信息
*/
@Override
public void saveEncounterLocation(EncounterLocation encounterLocation) {
baseMapper.insert(encounterLocation);
}
/**
* 自定义插入或更新方法,根据就诊id病区,判断是更新还是插入
*
* @param encounterLocation 实体对象
* @return 是否成功
*/
public boolean saveOrUpdateEncounterLocation(EncounterLocation encounterLocation) {
// 创建 LambdaQueryWrapper
LambdaQueryWrapper<EncounterLocation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EncounterLocation::getEncounterId, encounterLocation.getEncounterId())
.eq(EncounterLocation::getFormEnum, encounterLocation.getFormEnum())
// 状态为使用中
.eq(EncounterLocation::getStatusEnum, EncounterLocationStatus.ACTIVE.getValue());
// 查询是否存在记录
EncounterLocation existingRecord = baseMapper.selectOne(queryWrapper);
if (existingRecord != null) {
// 如果记录存在,更新记录
encounterLocation.setId(existingRecord.getId());
return baseMapper.updateById(encounterLocation) > 0;
} else {
// 如果记录不存在,插入新记录
return baseMapper.insert(encounterLocation) > 0;
}
}
/**
* 创建住院位置
*
* @param encounterId 住院id
* @param startTime 开始时间
* @param locationId 位置id
* @param locationForm 位置类型
*/
public void creatEncounterLocation(Long encounterId, Date startTime, Long locationId, Integer locationForm) {
EncounterLocation encounterLocation = new EncounterLocation();
encounterLocation.setEncounterId(encounterId).setStartTime(startTime).setLocationId(locationId)
.setFormEnum(locationForm);
baseMapper.insert(encounterLocation);
}
/**
* 查询住院患者床位相关信息
*
* @param encounterId 住院id
* @return 床位相关信息
*/
@Override
public List<EncounterLocation> getEncounterLocationInfo(Long encounterId, Long locationId) {
LambdaQueryWrapper<EncounterLocation> queryWrapper = new LambdaQueryWrapper<EncounterLocation>()
.eq(EncounterLocation::getStatusEnum, EncounterLocationStatus.ACTIVE.getValue())
.eq(EncounterLocation::getDeleteFlag, DelFlag.NO.getCode());
if (locationId != null) {
queryWrapper.eq(EncounterLocation::getLocationId, locationId).eq(EncounterLocation::getFormEnum,
LocationForm.BED.getValue());
}
if (encounterId != null) {
queryWrapper.eq(EncounterLocation::getEncounterId, encounterId).in(EncounterLocation::getFormEnum,
LocationForm.BED.getValue(), LocationForm.HOUSE.getValue());
}
return baseMapper.selectList(queryWrapper);
}
/**
* 更新位置使用状态
*
* @param encounterId 住院id
* @param isTransfer 是否专科
* @return 更新结果
*/
@Override
public Integer updateEncounterLocationStatus(Long encounterId, boolean isTransfer) {
// 动态拼接病区条件
List<Integer> locationForms = new ArrayList<>();
locationForms.add(LocationForm.BED.getValue());
locationForms.add(LocationForm.HOUSE.getValue());
if (isTransfer) {
locationForms.add(LocationForm.WARD.getValue());
}
// 更新状态为已完成
return baseMapper.update(null,
new LambdaUpdateWrapper<EncounterLocation>()
.set(EncounterLocation::getStatusEnum, EncounterLocationStatus.COMPLETED.getValue())
.eq(EncounterLocation::getEncounterId, encounterId).in(EncounterLocation::getFormEnum, locationForms));
}
/*
* 根据就诊id查询就诊位置信息
*
* @param encounterId 就诊id
* @return 就诊位置集合
*/
@Override
public List<EncounterLocation> getEncounterLocationList(Long encounterId) {
return baseMapper
.selectList(new LambdaQueryWrapper<EncounterLocation>().eq(EncounterLocation::getEncounterId, encounterId));
}
/**
* 根据就诊id查询就诊位置信息(某个类型)(某个状态)
*
* @param locationForm 类型
* @param encounterLocationStatus 状态
* @param encounterId 就诊id
* @return 就诊位置集合
*/
@Override
public List<EncounterLocation> getEncounterLocationList(Long encounterId, LocationForm locationForm,
EncounterLocationStatus encounterLocationStatus) {
LambdaQueryWrapper<EncounterLocation> queryWrapper =
new LambdaQueryWrapper<EncounterLocation>().eq(EncounterLocation::getEncounterId, encounterId)
.eq(EncounterLocation::getDeleteFlag, DelFlag.NO.getCode());
if (locationForm != null) {
queryWrapper.eq(EncounterLocation::getFormEnum, locationForm.getCode());
}
if (encounterLocationStatus != null) {
queryWrapper.eq(EncounterLocation::getStatusEnum, encounterLocationStatus.getCode());
}
return baseMapper.selectList(queryWrapper);
}
}

View File

@@ -0,0 +1,104 @@
package com.openhis.administration.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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.openhis.administration.domain.EncounterParticipant;
import com.openhis.administration.mapper.EncounterParticipantMapper;
import com.openhis.administration.service.IEncounterParticipantService;
import com.openhis.common.enums.DelFlag;
import com.openhis.common.enums.EncounterLocationStatus;
import com.openhis.common.enums.ParticipantType;
/**
* 就诊参与者管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class EncounterParticipantServiceImpl extends ServiceImpl<EncounterParticipantMapper, EncounterParticipant>
implements IEncounterParticipantService {
/**
* 保存就诊参与者
*
* @param encounterParticipant 就诊参与者信息
*/
@Override
public void saveEncounterParticipant(EncounterParticipant encounterParticipant) {
baseMapper.insert(encounterParticipant);
}
/**
* 创建住院参与者
*
* @param encounterId 住院id
* @param startTime 入科时间
* @param practitionerId 参与者id
* @param typeCode 参与者类型
*/
@Override
public void creatEncounterParticipants(Long encounterId, Date startTime, Long practitionerId, String typeCode) {
EncounterParticipant encounterParticipant = new EncounterParticipant();
encounterParticipant.setEncounterId(encounterId).setStartTime(startTime).setPractitionerId(practitionerId)
.setTypeCode(typeCode);
baseMapper.insert(encounterParticipant);
}
/**
* 更新医疗参与者状态
*
* @param encounterId 住院id
* @return 更新结果
*/
@Override
public Integer updateEncounterParticipantsStatus(Long encounterId) {
// 更新状态为已完成
return baseMapper.update(null,
new LambdaUpdateWrapper<EncounterParticipant>()
.set(EncounterParticipant::getStatusEnum, EncounterLocationStatus.COMPLETED.getValue())
.eq(EncounterParticipant::getEncounterId, encounterId).in(EncounterParticipant::getTypeCode,
ParticipantType.ATTENDING_DOCTOR.getCode(), ParticipantType.CHIEF_DOCTOR.getCode(),
ParticipantType.PRIMARY_NURSE.getCode(), ParticipantType.ADMITTING_DOCTOR.getCode()));
}
/*
* 根据就诊id查询参与者
*
* @param encounterId
* @return
*/
@Override
public List<EncounterParticipant> getEncounterParticipantList(Long encounterId) {
return baseMapper.selectList(
new LambdaQueryWrapper<EncounterParticipant>().eq(EncounterParticipant::getEncounterId, encounterId)
.eq(EncounterParticipant::getStatusEnum, EncounterLocationStatus.ACTIVE.getValue())
.eq(EncounterParticipant::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 查询某一个类型的参与者
*
* @param encounterId
* @param participantType
* @return
*/
@Override
public List<EncounterParticipant> getEncounterParticipantListByTypeCode(Long encounterId,
ParticipantType participantType) {
List<EncounterParticipant> list = new ArrayList<>();
for (EncounterParticipant encounterParticipant : getEncounterParticipantList(encounterId)) {
if (participantType.getCode().equals(encounterParticipant.getTypeCode())) {
list.add(encounterParticipant);
}
}
return list;
}
}

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.EncounterReason;
import com.openhis.administration.mapper.EncounterReasonMapper;
import com.openhis.administration.service.IEncounterReasonService;
/**
* 就诊原因管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class EncounterReasonServiceImpl extends ServiceImpl<EncounterReasonMapper, EncounterReason> implements IEncounterReasonService {
}

View File

@@ -0,0 +1,148 @@
package com.openhis.administration.service.impl;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
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.utils.AssignSeqUtil;
import com.core.common.utils.StringUtils;
import com.openhis.administration.domain.Encounter;
import com.openhis.administration.dto.EncounterAccountDto;
import com.openhis.administration.mapper.EncounterMapper;
import com.openhis.administration.service.IEncounterService;
import com.openhis.common.constant.YbCommonConstants;
import com.openhis.common.enums.AssignSeqEnum;
import com.openhis.common.enums.EncounterStatus;
import com.openhis.common.enums.EncounterType;
/**
* 就诊管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class EncounterServiceImpl extends ServiceImpl<EncounterMapper, Encounter> implements IEncounterService {
@Resource
AssignSeqUtil assignSeqUtil;
/**
* 保存就诊信息
*
* @param encounter 就诊信息
* @return 保存后的信息
*/
@Override
public Long saveEncounterByRegister(Encounter encounter) {
if (StringUtils.isEmpty(encounter.getBusNo())) {
// 生成就诊编码 医保挂号时是先生成码后生成实体
encounter.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.ENCOUNTER_NUM.getPrefix(), 4));
}
// 生成就诊序号 (患者ID + 科室ID 作为当日就诊号的唯一标识)
String preFix = encounter.getPatientId() + String.valueOf(encounter.getOrganizationId());
encounter.setDisplayOrder(assignSeqUtil.getSeqNoByDay(preFix));
// 患者ID
Long patientId = encounter.getPatientId();
// 初复诊
Long count = baseMapper.selectCount(new LambdaQueryWrapper<Encounter>().eq(Encounter::getPatientId, patientId));
if (count > 0L) {
encounter.setFirstEnum(EncounterType.FOLLOW_UP.getValue());
}
baseMapper.insert(encounter);
return encounter.getId();
}
/**
* 退号
*
* @param encounterId 就诊id
*/
@Override
public void returnRegister(Long encounterId) {
Encounter encounter = new Encounter();
encounter.setStatusEnum(EncounterStatus.CANCELLED.getValue());
encounter.setId(encounterId);
baseMapper.updateById(encounter);
}
/**
* 更新或者插入就诊管理
*
* @param encounter 就诊管理实体
*/
@Override
public boolean saveOrUpdateEncounter(Encounter encounter) {
// 创建 LambdaQueryWrapper
LambdaQueryWrapper<Encounter> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Encounter::getPatientId, encounter.getPatientId()).eq(Encounter::getId, encounter.getId());
// 查询是否存在记录
Encounter existingEncounter = baseMapper.selectOne(queryWrapper);
if (existingEncounter != null) {
// 如果记录存在,更新记录
encounter.setId(existingEncounter.getId()); // 设置主键
return baseMapper.updateById(encounter) > 0;
} else {
// 使用基础采番设置住院ID10位数
String code = assignSeqUtil.getSeqByDay(AssignSeqEnum.ADMISSION_NUM.getPrefix(), 10);
encounter.setBusNo(code);
// 如果记录不存在,插入新记录
return baseMapper.insert(encounter) > 0;
}
}
/**
* 通过 id 更新 priorityEnum 字段
*
* @param id Encounter 的 id
* @param priorityEnum 要更新的 priorityEnum 值
* @return 更新是否成功
*/
public boolean updatePriorityEnumById(Long id, Integer priorityEnum) {
// 创建更新条件
LambdaUpdateWrapper<Encounter> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(Encounter::getId, id).set(Encounter::getPriorityEnum, priorityEnum);
// 执行更新
return update(updateWrapper);
}
@Override
public Encounter getByBusNo(String iptOtpNo) {
return baseMapper.selectOne(new LambdaQueryWrapper<Encounter>().eq(Encounter::getBusNo, iptOtpNo)
.last(YbCommonConstants.sqlConst.LIMIT1));
}
/**
* 更新患者状态
*
* @param encounterId 就诊id
* @param encounterStatus 状态
* @return 更新数量
*/
@Override
public Integer updateEncounterStatus(Long encounterId, Integer encounterStatus) {
return baseMapper.update(null, new LambdaUpdateWrapper<Encounter>().eq(Encounter::getId, encounterId)
.set(Encounter::getStatusEnum, encounterStatus));
}
/**
* 查询挂号信息
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return 集合
*/
@Override
public List<EncounterAccountDto> getEncounterInfoByTime(Date startDate, Date endDate) {
return baseMapper.getEncounterInfoByTime(startDate, endDate);
}
}

View File

@@ -0,0 +1,36 @@
package com.openhis.administration.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.Frequency;
import com.openhis.administration.mapper.FrequencyMapper;
import com.openhis.administration.service.IFrequencyService;
import com.openhis.common.utils.HisPageUtils;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
/**
* @author 47826
* @description 针对表【adm_frequency(频次配置表,用于频次、周期和相关信息)】的数据库操作Service实现
* @createDate 2025-08-21 14:22:11
*/
@Service
public class FrequencyServiceImpl extends ServiceImpl<FrequencyMapper, Frequency>
implements IFrequencyService {
@Override
public Page<Frequency> getPageList(Integer pageNo, Integer pageSize, String code, HttpServletRequest request) {
Page<Frequency> page = new Page<>(pageNo, pageSize);
QueryWrapper<Frequency> queryWrapper = new QueryWrapper<Frequency>();
queryWrapper.eq("rate_code", code);
return HisPageUtils.selectPage(this.baseMapper, queryWrapper, pageNo, pageSize, Frequency.class);
}
}

Some files were not shown because too many files have changed in this diff Show More