feat(card): 新增传染病报卡管理系统

- 实现报卡管理服务接口和具体实现类
- 添加报卡统计、分页查询、详情查看功能
- 实现批量审核、批量退回、单条审核功能
- 添加审核记录查询和科室树获取功能
- 实现报卡数据导出Excel功能
- 创建报卡查询参数和统计数据显示对象
- 添加审核记录、传染病卡片等数据传输对象
- 实现报卡和审核记录的数据访问层
- 定义传染病卡片和审核记录领域实体模型
- 提供REST API控制器接口供前端调用
This commit is contained in:
2026-03-06 22:33:36 +08:00
parent 8a3fe5461e
commit 469b325f0e
15 changed files with 1249 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
package com.openhis.infectious.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.time.LocalDateTime;
/**
* 审核记录Entity实体
*
* @author system
* @date 2026-03-05
*/
@Data
@TableName("infectious_audit")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class InfectiousAudit extends HisBaseEntity {
/** 审核记录ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long auditId;
/** 报卡ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long cardId;
/** 审核序号 */
private Integer auditSeq;
/** 审核类型(1批量审核/2单审核通过/3批量退回/4单退回/5其他) */
private String auditType;
/** 审核前状态 */
private String auditStatusFrom;
/** 审核后状态 */
private String auditStatusTo;
/** 审核时间 */
private LocalDateTime auditTime;
/** 审核人账号 */
private String auditorId;
/** 审核人姓名 */
private String auditorName;
/** 审核意见 */
private String auditOpinion;
/** 退回原因 */
private String reasonForReturn;
/** 失败原因码 */
private String failReasonCode;
/** 失败详情 */
private String failReasonDesc;
/** 是否批量 */
private Boolean isBatch;
/** 批量数量 */
private Integer batchSize;
}

View File

@@ -0,0 +1,174 @@
package com.openhis.infectious.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.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 传染病报卡Entity实体
*
* @author system
* @date 2026-03-05
*/
@Data
@TableName("infectious_card")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class InfectiousCard extends HisBaseEntity {
/** 卡片编号 */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 卡片编号(业务编号) */
private String cardNo;
/** 本次就诊ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long visitId;
/** 诊断记录ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long diagId;
/** 患者主索引 */
@JsonSerialize(using = ToStringSerializer.class)
private Long patId;
/** 证件类型 */
private Integer idType;
/** 证件号码 */
private String idNo;
/** 患者姓名 */
private String patName;
/** 家长姓名 */
private String parentName;
/** 性别(1男/2女/0未知) */
private String sex;
/** 出生日期 */
private LocalDate birthday;
/** 实足年龄 */
private Integer age;
/** 年龄单位(1岁/2月/3天) */
private String ageUnit;
/** 工作单位 */
private String workplace;
/** 联系电话 */
private String phone;
/** 紧急联系人电话 */
private String contactPhone;
/** 现住址省 */
private String addressProv;
/** 现住址市 */
private String addressCity;
/** 现住址县 */
private String addressCounty;
/** 现住址街道 */
private String addressTown;
/** 现住址村/居委 */
private String addressVillage;
/** 现住址门牌号 */
private String addressHouse;
/** 病人属于 */
private String patientbelong;
/** 职业 */
private String occupation;
/** 疾病编码 */
private String diseaseCode;
/** 疾病名称 */
private String diseaseName;
/** 分型 */
private String diseaseSubtype;
/** 其他传染病 */
private String otherDisease;
/** 病例分类 */
private String diseaseType;
/** 发病日期 */
private LocalDate onsetDate;
/** 诊断日期 */
private LocalDateTime diagDate;
/** 死亡日期 */
private LocalDate deathDate;
/** 订正病名 */
private String revisedDiseaseName;
/** 退卡原因 */
private String returnReason;
/** 报告单位 */
private String reportOrg;
/** 联系电话 */
private String reportOrgPhone;
/** 报告医生 */
private String reportDoc;
/** 填卡日期 */
private LocalDate reportDate;
/** 状态(0暂存/1已提交/2已审核/3已上报/4失败/5退回) */
private String status;
/** 失败原因 */
private String failMsg;
/** 上报XML */
private String xmlContent;
/** 报卡名称代码 */
private Integer cardNameCode;
/** 登记来源(1门诊/2住院) */
private Integer registrationSource;
/** 科室ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long deptId;
/** 科室名称 */
private String deptName;
/** 医生ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long doctorId;
}