96-门诊医生站会诊申请确认界面和97-门诊会诊申请管理界面全部功能。

This commit is contained in:
weixin_45799331
2026-02-11 14:16:30 +08:00
parent 3ab7ea1898
commit 1747291f41
67 changed files with 213 additions and 6087 deletions

View File

@@ -244,9 +244,4 @@ public class ChargeItem extends HisBaseEntity {
*/
private BigDecimal manualAdjustedPrice;
/**
* 来源业务单据号(如手术申请单号)
*/
private String sourceBillNo;
}

View File

@@ -51,23 +51,4 @@ public interface IClinicRoomService extends IService<ClinicRoom> {
* @return 结果
*/
int deleteClinicRoomById(Long id);
/**
* 检查指定卫生机构下是否已存在相同诊室名称(新增时使用)
*
* @param orgName 卫生机构名称
* @param roomName 诊室名称
* @return 是否存在
*/
boolean existsByOrgNameAndRoomName(String orgName, String roomName);
/**
* 检查指定卫生机构下是否已存在相同诊室名称(编辑时使用,排除当前记录)
*
* @param orgName 卫生机构名称
* @param roomName 诊室名称
* @param id 当前记录ID
* @return 是否存在
*/
boolean existsByOrgNameAndRoomNameExcludeId(String orgName, String roomName, Long id);
}

View File

@@ -44,21 +44,4 @@ public class ClinicRoomServiceImpl extends ServiceImpl<ClinicRoomMapper, ClinicR
public int deleteClinicRoomById(Long id) {
return baseMapper.deleteById(id);
}
@Override
public boolean existsByOrgNameAndRoomName(String orgName, String roomName) {
LambdaQueryWrapper<ClinicRoom> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ClinicRoom::getOrgName, orgName)
.eq(ClinicRoom::getRoomName, roomName);
return count(queryWrapper) > 0;
}
@Override
public boolean existsByOrgNameAndRoomNameExcludeId(String orgName, String roomName, Long id) {
LambdaQueryWrapper<ClinicRoom> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ClinicRoom::getOrgName, orgName)
.eq(ClinicRoom::getRoomName, roomName)
.ne(ClinicRoom::getId, id);
return count(queryWrapper) > 0;
}
}

View File

@@ -1,378 +0,0 @@
package com.openhis.clinical.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 java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 传染病报卡表
*/
@Data
@TableName(value = "infectious_card")
public class InfectiousCard implements Serializable {
/**
* 卡片编号:机构代码+年月日+4位流水
*/
@TableId(value = "card_no")
private String cardNo;
/**
* 本次就诊ID (adm_encounter.id)
*/
@TableField(value = "visit_id")
private Long visitId;
/**
* 诊断记录唯一ID (adm_encounter_diagnosis.condition_id)
*/
@TableField(value = "diag_id")
private Long diagId;
/**
* 患者ID
*/
@TableField(value = "pat_id")
private Long patId;
/**
* 证件类型
*/
@TableField(value = "id_type")
private Integer idType;
/**
* 证件号码18位校验
*/
@TableField(value = "id_no")
private String idNo;
/**
* 患者姓名
*/
@TableField(value = "pat_name")
private String patName;
/**
* 家长姓名≤14岁必填
*/
@TableField(value = "parent_name")
private String parentName;
/**
* 性别
*/
@TableField(value = "sex")
private String sex;
/**
* 出生日期
*/
@TableField(value = "birthday")
private LocalDate birthday;
/**
* 年龄
*/
@TableField(value = "age")
private Integer age;
/**
* 年龄单位1岁/2月/3天
*/
@TableField(value = "age_unit")
private String ageUnit;
/**
* 工作单位
*/
@TableField(value = "workplace")
private String workplace;
/**
* 电话
*/
@TableField(value = "phone")
private String phone;
/**
* 联系电话
*/
@TableField(value = "contact_phone")
private String contactPhone;
/**
* 地址-省
*/
@TableField(value = "address_prov")
private String addressProv;
/**
* 地址-市
*/
@TableField(value = "address_city")
private String addressCity;
/**
* 地址-县/区
*/
@TableField(value = "address_county")
private String addressCounty;
/**
* 地址-乡镇/街道
*/
@TableField(value = "address_town")
private String addressTown;
/**
* 地址-村/居委会
*/
@TableField(value = "address_village")
private String addressVillage;
/**
* 地址-门牌号
*/
@TableField(value = "address_house")
private String addressHouse;
/**
* 患者归属1本县区/2本市/3本省/4外省/5港澳台/6外籍
*/
@TableField(value = "patient_belong")
private Integer patientBelong;
/**
* 职业
*/
@TableField(value = "occupation")
private String occupation;
/**
* 疾病编码
*/
@TableField(value = "disease_code")
private String diseaseCode;
/**
* 疾病类型
*/
@TableField(value = "disease_type")
private String diseaseType;
/**
* 其他疾病
*/
@TableField(value = "other_disease")
private String otherDisease;
/**
* 病例分类1疑似/2临床诊断/3确诊/4病原携带/5阳性
*/
@TableField(value = "case_class")
private Integer caseClass;
/**
* 发病日期
*/
@TableField(value = "onset_date")
private LocalDate onsetDate;
/**
* 诊断日期
*/
@TableField(value = "diag_date")
private LocalDateTime diagDate;
/**
* 死亡日期
*/
@TableField(value = "death_date")
private LocalDate deathDate;
/**
* 订正姓名
*/
@TableField(value = "correct_name")
private String correctName;
/**
* 撤销原因
*/
@TableField(value = "withdraw_reason")
private String withdrawReason;
/**
* 报告机构
*/
@TableField(value = "report_org")
private String reportOrg;
/**
* 报告机构电话
*/
@TableField(value = "report_org_phone")
private String reportOrgPhone;
/**
* 报告医生
*/
@TableField(value = "report_doc")
private String reportDoc;
/**
* 报告日期
*/
@TableField(value = "report_date")
private LocalDate reportDate;
/**
* 状态0暂存 1已提交 2已审核 3已上报 4失败 5作废
*/
@TableField(value = "status")
private Integer status;
/**
* 失败信息
*/
@TableField(value = "fail_msg")
private String failMsg;
/**
* XML内容
*/
@TableField(value = "xml_content")
private String xmlContent;
/**
* 卡片名称代码默认1-中华人民共和国传染病报告卡
*/
@TableField(value = "card_name_code")
private Integer cardNameCode;
/**
* 登记来源
*/
@TableField(value = "registration_source")
private Integer registrationSource;
/**
* 科室ID
*/
@TableField(value = "dept_id")
private Long deptId;
/**
* 医生ID
*/
@TableField(value = "doctor_id")
private Long doctorId;
/**
* 创建时间
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
private LocalDateTime updateTime;
public static final String COL_CARD_NO = "card_no";
public static final String COL_VISIT_ID = "visit_id";
public static final String COL_DIAG_ID = "diag_id";
public static final String COL_PAT_ID = "pat_id";
public static final String COL_ID_TYPE = "id_type";
public static final String COL_ID_NO = "id_no";
public static final String COL_PAT_NAME = "pat_name";
public static final String COL_PARENT_NAME = "parent_name";
public static final String COL_SEX = "sex";
public static final String COL_BIRTHDAY = "birthday";
public static final String COL_AGE = "age";
public static final String COL_AGE_UNIT = "age_unit";
public static final String COL_WORKPLACE = "workplace";
public static final String COL_PHONE = "phone";
public static final String COL_CONTACT_PHONE = "contact_phone";
public static final String COL_ADDRESS_PROV = "address_prov";
public static final String COL_ADDRESS_CITY = "address_city";
public static final String COL_ADDRESS_COUNTY = "address_county";
public static final String COL_ADDRESS_TOWN = "address_town";
public static final String COL_ADDRESS_VILLAGE = "address_village";
public static final String COL_ADDRESS_HOUSE = "address_house";
public static final String COL_PATIENT_BELONG = "patient_belong";
public static final String COL_OCCUPATION = "occupation";
public static final String COL_DISEASE_CODE = "disease_code";
public static final String COL_DISEASE_TYPE = "disease_type";
public static final String COL_OTHER_DISEASE = "other_disease";
public static final String COL_CASE_CLASS = "case_class";
public static final String COL_ONSET_DATE = "onset_date";
public static final String COL_DIAG_DATE = "diag_date";
public static final String COL_DEATH_DATE = "death_date";
public static final String COL_CORRECT_NAME = "correct_name";
public static final String COL_WITHDRAW_REASON = "withdraw_reason";
public static final String COL_REPORT_ORG = "report_org";
public static final String COL_REPORT_ORG_PHONE = "report_org_phone";
public static final String COL_REPORT_DOC = "report_doc";
public static final String COL_REPORT_DATE = "report_date";
public static final String COL_STATUS = "status";
public static final String COL_FAIL_MSG = "fail_msg";
public static final String COL_XML_CONTENT = "xml_content";
public static final String COL_CARD_NAME_CODE = "card_name_code";
public static final String COL_REGISTRATION_SOURCE = "registration_source";
public static final String COL_DEPT_ID = "dept_id";
public static final String COL_DOCTOR_ID = "doctor_id";
public static final String COL_CREATE_TIME = "create_time";
public static final String COL_UPDATE_TIME = "update_time";
}

View File

@@ -1,15 +0,0 @@
package com.openhis.clinical.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.clinical.domain.InfectiousCard;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* 传染病报卡表 Mapper 接口
*/
@Mapper
public interface InfectiousCardMapper extends BaseMapper<InfectiousCard> {
}

View File

@@ -1,24 +0,0 @@
package com.openhis.clinical.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.clinical.domain.InfectiousCard;
/**
* 传染病报卡表 Service接口
*/
public interface IInfectiousCardService extends IService<InfectiousCard> {
/**
* 保存传染病报告卡
* @param infectiousCard 传染病报告卡对象
* @return 保存结果
*/
boolean saveInfectiousCard(InfectiousCard infectiousCard);
/**
* 生成下一个卡片编号
* @param orgCode 医疗机构编码
* @return 下一个卡片编号(机构编码+YYYYMMDD+4位流水号
*/
String generateNextCardNo(String orgCode);
}

View File

@@ -1,67 +0,0 @@
package com.openhis.clinical.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.clinical.domain.InfectiousCard;
import com.openhis.clinical.mapper.InfectiousCardMapper;
import com.openhis.clinical.service.IInfectiousCardService;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* 传染病报卡表 Service实现
*/
@Service
public class InfectiousCardServiceImpl extends ServiceImpl<InfectiousCardMapper, InfectiousCard> implements IInfectiousCardService {
@Override
public String generateNextCardNo(String orgCode) {
String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String prefix = orgCode + dateStr;
// --- MyBatis-Plus Lambda 重构部分开始 ---
InfectiousCard maxCardEntity = this.lambdaQuery()
.select(InfectiousCard::getCardNo) // 只查询编号列
.likeRight(InfectiousCard::getCardNo, prefix) // 匹配前缀 (prefix%)
.orderByDesc(InfectiousCard::getCardNo) // 按编号降序
.last("LIMIT 1") // 取最大的一条
.one(); // 获取单条实体
String maxCardNo = (maxCardEntity != null) ? maxCardEntity.getCardNo() : null;
// --- 重构部分结束 ---
int nextSerial = 1;
if (maxCardNo != null && maxCardNo.length() >= 4) {
String lastFour = maxCardNo.substring(maxCardNo.length() - 4);
try {
nextSerial = Integer.parseInt(lastFour) + 1;
} catch (NumberFormatException e) {
// 流水号解析失败使用默认值1
}
}
return prefix + String.format("%04d", nextSerial);
}
@Override
public boolean saveInfectiousCard(InfectiousCard infectiousCard) {
// 设置默认值
if (infectiousCard.getStatus() == null) {
infectiousCard.setStatus(0);
}
if (infectiousCard.getReportDate() == null) {
infectiousCard.setReportDate(LocalDate.now());
}
if (infectiousCard.getCreateTime() == null) {
infectiousCard.setCreateTime(LocalDateTime.now());
} else {
infectiousCard.setUpdateTime(LocalDateTime.now());
}
return this.saveOrUpdate(infectiousCard);
}
}

View File

@@ -1,156 +0,0 @@
package com.openhis.consultation.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 java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 会诊确认表
*/
@TableName(value = "consultation_confirmation")
@Data
public class ConsultationConfirmation implements Serializable {
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 会诊申请ID
*/
@TableField(value = "consultation_request_id")
private Long consultationRequestId;
/**
* 确认科室ID
*/
@TableField(value = "confirming_department_id")
private Long confirmingDepartmentId;
/**
* 确认科室名称
*/
@TableField(value = "confirming_department_name")
private String confirmingDepartmentName;
/**
* 确认医生ID
*/
@TableField(value = "confirming_doctor_id")
private Long confirmingDoctorId;
/**
* 确认医生姓名
*/
@TableField(value = "confirming_doctor_name")
private String confirmingDoctorName;
/**
* 确认状态1-待确认2-同意3-拒绝
*/
@TableField(value = "confirmation_status")
private Integer confirmationStatus;
/**
* 确认/拒绝理由
*/
@TableField(value = "confirmation_reason")
private String confirmationReason;
/**
* 确认日期
*/
@TableField(value = "confirmation_date")
private LocalDateTime confirmationDate;
/**
* 会诊意见
*/
@TableField(value = "consultation_opinion")
private String consultationOpinion;
/**
* 会诊确认参加医师
*/
@TableField(value = "confirming_physician_participation")
private String confirmingPhysicianParticipation;
/**
* 所属医生
*/
@TableField(value = "confirming_physician_name")
private String confirmingPhysicianName;
/**
* 代表科室
*/
@TableField(value = "confirming_department_name")
private String confirmingDepartmentNameField;
/**
* 签名医生
*/
@TableField(value = "signature")
private String signature;
/**
* 签名时间
*/
@TableField(value = "signature_date")
private LocalDateTime signatureDate;
/**
* 创建人ID
*/
@TableField(value = "creator_id")
private Long creatorId;
/**
* 创建人姓名
*/
@TableField(value = "creator_name")
private String creatorName;
/**
* 创建时间
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 更新人ID
*/
@TableField(value = "updater_id")
private Long updaterId;
/**
* 更新人姓名
*/
@TableField(value = "updater_name")
private String updaterName;
/**
* 更新时间
*/
@TableField(value = "update_time")
private LocalDateTime updateTime;
/**
* 有效标志1-有效0-无效
*/
@TableField(value = "valid_flag")
private Integer validFlag;
/**
* 租户ID
*/
@TableField(value = "tenant_id")
private Integer tenantId;
private static final long serialVersionUID = 1L;
}

View File

@@ -1,120 +0,0 @@
package com.openhis.consultation.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 java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 会诊记录表
*/
@TableName(value = "consultation_record")
@Data
public class ConsultationRecord implements Serializable {
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 会诊申请ID
*/
@TableField(value = "consultation_request_id")
private Long consultationRequestId;
/**
* 参与医生ID
*/
@TableField(value = "participant_doctor_id")
private Long participantDoctorId;
/**
* 参与医生姓名
*/
@TableField(value = "participant_doctor_name")
private String participantDoctorName;
/**
* 参与科室ID
*/
@TableField(value = "participant_department_id")
private Long participantDepartmentId;
/**
* 参与科室名称
*/
@TableField(value = "participant_department_name")
private String participantDepartmentName;
/**
* 会诊意见
*/
@TableField(value = "opinion")
private String opinion;
/**
* 会诊建议
*/
@TableField(value = "suggestion")
private String suggestion;
/**
* 记录日期
*/
@TableField(value = "record_date")
private LocalDateTime recordDate;
/**
* 创建人ID
*/
@TableField(value = "creator_id")
private Long creatorId;
/**
* 创建人姓名
*/
@TableField(value = "creator_name")
private String creatorName;
/**
* 创建时间
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 更新人ID
*/
@TableField(value = "updater_id")
private Long updaterId;
/**
* 更新人姓名
*/
@TableField(value = "updater_name")
private String updaterName;
/**
* 更新时间
*/
@TableField(value = "update_time")
private LocalDateTime updateTime;
/**
* 有效标志1-有效0-无效
*/
@TableField(value = "valid_flag")
private Integer validFlag;
/**
* 租户ID
*/
@TableField(value = "tenant_id")
private Integer tenantId;
private static final long serialVersionUID = 1L;
}

View File

@@ -1,273 +0,0 @@
package com.openhis.consultation.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 lombok.Data;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 会诊申请表
*/
@TableName(value = "consultation_request")
@Alias("domainConsultationRequest")
@Data
public class ConsultationRequest implements Serializable {
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 会诊申请单号CS+年月日时分秒+4位随机数
*/
@TableField(value = "consultation_id")
private String consultationId;
/**
* 患者ID外键adm_patient.id
*/
@TableField(value = "patient_id")
private Long patientId;
/**
* 门诊就诊流水号外键adm_encounter.id
*/
@TableField(value = "encounter_id")
private Long encounterId;
/**
* 关联的医嘱ID外键wor_service_request.id
*/
@TableField(value = "order_id")
private Long orderId;
/**
* 患者姓名
*/
@TableField(value = "patient_name")
private String patientName;
/**
* 患者病历号
*/
@TableField(value = "patient_bus_no")
private String patientBusNo;
/**
* 患者就诊卡号
*/
@TableField(value = "patient_identifier_no")
private String patientIdentifierNo;
/**
* 性别
*/
@TableField(value = "gender_enum")
private Integer genderEnum;
/**
* 年龄
*/
@TableField(value = "age")
private Integer age;
/**
* 申请会诊的科室名称
*/
@TableField(value = "department")
private String department;
/**
* 申请科室ID
*/
@TableField(value = "department_id")
private Long departmentId;
/**
* 申请会诊的医生姓名
*/
@TableField(value = "requesting_physician")
private String requestingPhysician;
/**
* 申请医生ID
*/
@TableField(value = "requesting_physician_id")
private Long requestingPhysicianId;
/**
* 会诊申请时间
*/
@TableField(value = "consultation_request_date")
private LocalDateTime consultationRequestDate;
/**
* 会诊邀请对象
*/
@TableField(value = "invited_object")
private String invitedObject;
/**
* 会诊时间
*/
@TableField(value = "consultation_date")
private LocalDateTime consultationDate;
/**
* 简要病史及会诊目的
*/
@TableField(value = "consultation_purpose")
private String consultationPurpose;
/**
* 门诊诊断
*/
@TableField(value = "provisional_diagnosis")
private String provisionalDiagnosis;
/**
* 会诊意见
*/
@TableField(value = "consultation_opinion")
private String consultationOpinion;
/**
* 会诊状态0-新开10-已提交20-已确认30-已签名40-已完成50-已取消
*/
@TableField(value = "consultation_status")
private Integer consultationStatus;
/**
* 是否紧急:一般/紧急
*/
@TableField(value = "consultation_urgency")
private String consultationUrgency;
/**
* 提交会诊的医生姓名
*/
@TableField(value = "confirming_physician")
private String confirmingPhysician;
/**
* 提交会诊的医生ID
*/
@TableField(value = "confirming_physician_id")
private Long confirmingPhysicianId;
/**
* 提交会诊日期
*/
@TableField(value = "confirming_date")
private LocalDateTime confirmingDate;
/**
* 结束会诊医生姓名/签名医生
*/
@TableField(value = "signature")
private String signature;
/**
* 结束会诊医生ID
*/
@TableField(value = "signature_physician_id")
private Long signaturePhysicianId;
/**
* 结束会诊日期/签名时间
*/
@TableField(value = "signature_date")
private LocalDateTime signatureDate;
/**
* 作废会诊日期
*/
@TableField(value = "cancel_nature_date")
private LocalDateTime cancelNatureDate;
/**
* 作废原因
*/
@TableField(value = "cancel_reason")
private String cancelReason;
/**
* 创建时间
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
private LocalDateTime updateTime;
/**
* 创建人
*/
@TableField(value = "create_by")
private String createBy;
/**
* 更新人
*/
@TableField(value = "update_by")
private String updateBy;
/**
* 租户ID
*/
@TableField(value = "tenant_id")
private Long tenantId;
/**
* 逻辑删除标识0-未删除1-已删除
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
/**
* 备注
*/
@TableField(value = "remark")
private String remark;
/**
* 会诊项目ID关联wor_activity_definition表用于确定会诊类型和价格
*/
@TableField(value = "consultation_activity_id")
private Long consultationActivityId;
/**
* 会诊项目名称,如:院内会诊、远程会诊等
*/
@TableField(value = "consultation_activity_name")
private String consultationActivityName;
/**
* 确认会诊的医生姓名
*/
@TableField(value = "confirming_physician_name")
private String confirmingPhysicianName;
/**
* 代表科室
*/
@TableField(value = "confirming_department_name")
private String confirmingDepartmentName;
/**
* 会诊确认参加医师
*/
@TableField(value = "confirming_physician_participation")
private String confirmingPhysicianParticipation;
private static final long serialVersionUID = 1L;
}

View File

@@ -1,14 +0,0 @@
package com.openhis.consultation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.consultation.domain.ConsultationConfirmation;
import org.apache.ibatis.annotations.Mapper;
/**
* 会诊确认 Mapper接口
*
* @author his
*/
@Mapper
public interface ConsultationConfirmationMapper extends BaseMapper<ConsultationConfirmation> {
}

View File

@@ -1,14 +0,0 @@
package com.openhis.consultation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.consultation.domain.ConsultationRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* 会诊记录 Mapper接口
*
* @author his
*/
@Mapper
public interface ConsultationRecordMapper extends BaseMapper<ConsultationRecord> {
}

View File

@@ -1,14 +0,0 @@
package com.openhis.consultation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.consultation.domain.ConsultationRequest;
import org.apache.ibatis.annotations.Mapper;
/**
* 会诊申请 Mapper接口
*
* @author his
*/
@Mapper
public interface ConsultationRequestMapper extends BaseMapper<ConsultationRequest> {
}

View File

@@ -1,12 +0,0 @@
package com.openhis.consultation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.consultation.domain.ConsultationConfirmation;
/**
* 会诊确认 服务层
*
* @author his
*/
public interface IConsultationConfirmationService extends IService<ConsultationConfirmation> {
}

View File

@@ -1,12 +0,0 @@
package com.openhis.consultation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.consultation.domain.ConsultationRecord;
/**
* 会诊记录 服务层
*
* @author his
*/
public interface IConsultationRecordService extends IService<ConsultationRecord> {
}

View File

@@ -1,41 +0,0 @@
package com.openhis.consultation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.consultation.domain.ConsultationRequest;
/**
* 会诊申请 服务层
*
* @author his
*/
public interface IConsultationRequestService extends IService<ConsultationRequest> {
/**
* 提交会诊申请
*/
int submitConsultation(Long id, Long userId, String userName);
/**
* 取消提交会诊申请
*/
int cancelSubmitConsultation(Long id);
/**
* 结束会诊申请
*/
int endConsultation(Long id, Long userId, String userName);
/**
* 作废会诊申请
*/
int cancelConsultation(Long id, Long userId, String userName);
/**
* 确认会诊
*/
int confirmConsultation(Long id, String physicianName, String physicianId, String opinion);
/**
* 签名会诊
*/
int signConsultation(Long id, String signature, Long userId, String userName);
}

View File

@@ -1,16 +0,0 @@
package com.openhis.consultation.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.consultation.domain.ConsultationConfirmation;
import com.openhis.consultation.mapper.ConsultationConfirmationMapper;
import com.openhis.consultation.service.IConsultationConfirmationService;
import org.springframework.stereotype.Service;
/**
* 会诊确认 服务层实现
*
* @author his
*/
@Service
public class ConsultationConfirmationServiceImpl extends ServiceImpl<ConsultationConfirmationMapper, ConsultationConfirmation> implements IConsultationConfirmationService {
}

View File

@@ -1,16 +0,0 @@
package com.openhis.consultation.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.consultation.domain.ConsultationRecord;
import com.openhis.consultation.mapper.ConsultationRecordMapper;
import com.openhis.consultation.service.IConsultationRecordService;
import org.springframework.stereotype.Service;
/**
* 会诊记录 服务层实现
*
* @author his
*/
@Service
public class ConsultationRecordServiceImpl extends ServiceImpl<ConsultationRecordMapper, ConsultationRecord> implements IConsultationRecordService {
}

View File

@@ -1,93 +0,0 @@
package com.openhis.consultation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.consultation.domain.ConsultationRequest;
import com.openhis.consultation.mapper.ConsultationRequestMapper;
import com.openhis.consultation.service.IConsultationRequestService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 会诊申请 服务层实现
*
* @author his
*/
@Service
public class ConsultationRequestServiceImpl extends ServiceImpl<ConsultationRequestMapper, ConsultationRequest> implements IConsultationRequestService {
@Override
public int submitConsultation(Long id, Long userId, String userName) {
ConsultationRequest request = this.getById(id);
if (request != null && request.getConsultationStatus() == 0) { // 仅当状态为"新开"时可提交
request.setConsultationStatus(10); // 设置为"已提交"
request.setConfirmingPhysician(userName);
request.setConfirmingPhysicianId(userId);
request.setConfirmingDate(LocalDateTime.now());
return this.updateById(request) ? 1 : 0;
}
return 0; // 提交失败
}
@Override
public int cancelSubmitConsultation(Long id) {
ConsultationRequest request = this.getById(id);
if (request != null && request.getConsultationStatus() == 10) { // 仅当状态为"已提交"时可取消提交
request.setConsultationStatus(0); // 设置为"新开"
request.setConfirmingPhysician(null);
request.setConfirmingPhysicianId(null);
request.setConfirmingDate(null);
return this.updateById(request) ? 1 : 0;
}
return 0; // 取消提交失败
}
@Override
public int endConsultation(Long id, Long userId, String userName) {
ConsultationRequest request = this.getById(id);
if (request != null && request.getConsultationStatus() == 30) { // 仅当状态为"已签名"时可结束
request.setConsultationStatus(40); // 设置为"已完成"
request.setSignature(userName);
request.setSignatureDate(LocalDateTime.now());
return this.updateById(request) ? 1 : 0;
}
return 0; // 结束失败
}
@Override
public int cancelConsultation(Long id, Long userId, String userName) {
ConsultationRequest request = this.getById(id);
if (request != null && request.getConsultationStatus() != 40) { // 未完成的申请可作废
request.setConsultationStatus(50); // 设置为"已取消"
request.setSignature(userName);
request.setSignatureDate(LocalDateTime.now());
return this.updateById(request) ? 1 : 0;
}
return 0; // 作废失败
}
@Override
public int confirmConsultation(Long id, String physicianName, String physicianId, String opinion) {
ConsultationRequest request = this.getById(id);
if (request != null && request.getConsultationStatus() != 40) { // 未完成的申请可确认
request.setConsultationStatus(20); // 设置为"已确认"
request.setConfirmingPhysicianName(physicianName);
request.setConsultationOpinion(opinion);
return this.updateById(request) ? 1 : 0;
}
return 0; // 确认失败
}
@Override
public int signConsultation(Long id, String signature, Long userId, String userName) {
ConsultationRequest request = this.getById(id);
if (request != null && request.getConsultationStatus() == 20) { // 仅当状态为"已确认"时可签名
request.setConsultationStatus(30); // 设置为"已签名"
request.setSignature(signature);
request.setSignatureDate(LocalDateTime.now());
return this.updateById(request) ? 1 : 0;
}
return 0; // 签名失败
}
}

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.consultation.mapper.ConsultationConfirmationMapper">
<resultMap type="com.openhis.consultation.domain.ConsultationConfirmation" id="ConsultationConfirmationResult">
<result property="id" column="id"/>
<result property="consultationRequestId" column="consultation_request_id"/>
<result property="confirmingDepartmentId" column="confirming_department_id"/>
<result property="confirmingDepartmentName" column="confirming_department_name"/>
<result property="confirmingDoctorId" column="confirming_doctor_id"/>
<result property="confirmingDoctorName" column="confirming_doctor_name"/>
<result property="confirmationStatus" column="confirmation_status"/>
<result property="confirmationReason" column="confirmation_reason"/>
<result property="confirmationDate" column="confirmation_date"/>
<result property="creatorId" column="creator_id"/>
<result property="creatorName" column="creator_name"/>
<result property="createTime" column="create_time"/>
<result property="updaterId" column="updater_id"/>
<result property="updaterName" column="updater_name"/>
<result property="updateTime" column="update_time"/>
<result property="validFlag" column="valid_flag"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
</mapper>

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.consultation.mapper.ConsultationRecordMapper">
<resultMap type="com.openhis.consultation.domain.ConsultationRecord" id="ConsultationRecordResult">
<result property="id" column="id"/>
<result property="consultationRequestId" column="consultation_request_id"/>
<result property="participantDoctorId" column="participant_doctor_id"/>
<result property="participantDoctorName" column="participant_doctor_name"/>
<result property="participantDepartmentId" column="participant_department_id"/>
<result property="participantDepartmentName" column="participant_department_name"/>
<result property="opinion" column="opinion"/>
<result property="suggestion" column="suggestion"/>
<result property="recordDate" column="record_date"/>
<result property="creatorId" column="creator_id"/>
<result property="creatorName" column="creator_name"/>
<result property="createTime" column="create_time"/>
<result property="updaterId" column="updater_id"/>
<result property="updaterName" column="updater_name"/>
<result property="updateTime" column="update_time"/>
<result property="validFlag" column="valid_flag"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
</mapper>

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.consultation.mapper.ConsultationRequestMapper">
<resultMap type="com.openhis.consultation.domain.ConsultationRequest" id="ConsultationRequestResult">
<result property="id" column="id"/>
<result property="consultationId" column="consultation_id"/>
<result property="patientId" column="patient_id"/>
<result property="encounterId" column="encounter_id"/>
<result property="orderId" column="order_id"/>
<result property="patientName" column="patient_name"/>
<result property="patientBusNo" column="patient_bus_no"/>
<result property="patientIdentifierNo" column="patient_identifier_no"/>
<result property="genderEnum" column="gender_enum"/>
<result property="age" column="age"/>
<result property="department" column="department"/>
<result property="departmentId" column="department_id"/>
<result property="requestingPhysician" column="requesting_physician"/>
<result property="requestingPhysicianId" column="requesting_physician_id"/>
<result property="consultationRequestDate" column="consultation_request_date"/>
<result property="invitedObject" column="invited_object"/>
<result property="consultationDate" column="consultation_date"/>
<result property="consultationPurpose" column="consultation_purpose"/>
<result property="provisionalDiagnosis" column="provisional_diagnosis"/>
<result property="consultationOpinion" column="consultation_opinion"/>
<result property="consultationStatus" column="consultation_status"/>
<result property="consultationUrgency" column="consultation_urgency"/>
<result property="confirmingPhysician" column="confirming_physician"/>
<result property="confirmingPhysicianId" column="confirming_physician_id"/>
<result property="confirmingDate" column="confirming_date"/>
<result property="signature" column="signature"/>
<result property="signaturePhysicianId" column="signature_physician_id"/>
<result property="signatureDate" column="signature_date"/>
<result property="cancelNatureDate" column="cancel_nature_date"/>
<result property="cancelReason" column="cancel_reason"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="tenantId" column="tenant_id"/>
<result property="isDeleted" column="is_deleted"/>
<result property="remark" column="remark"/>
<result property="consultationActivityId" column="consultation_activity_id"/>
<result property="consultationActivityName" column="consultation_activity_name"/>
<result property="confirmingPhysicianName" column="confirming_physician_name"/>
<result property="confirmingDepartmentName" column="confirming_department_name"/>
<result property="confirmingPhysicianParticipation" column="confirming_physician_participation"/>
</resultMap>
</mapper>