diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java index 8246a4db2..cf217739d 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java @@ -313,10 +313,59 @@ public class PatientInformationServiceImpl implements IPatientInformationService patient.setDeceasedDate(patientInfoDto.getDeceasedDate()); // 死亡时间 patient.setNationalityCode(patientInfoDto.getNationalityCode());// 民族 patient.setActiveFlag(patientInfoDto.getActiveFlag());// 活动标识 + patient.setCountryCode(patientInfoDto.getCountryCode());// 国家编码 + patient.setPostalCode(patientInfoDto.getPostalCode());// 邮政编码 + patient.setHukouAddress(patientInfoDto.getHukouAddress());// 户籍地址 + patient.setGuardianName(patientInfoDto.getGuardianName());// 监护人姓名 + patient.setGuardianRelation(patientInfoDto.getGuardianRelation());// 监护人关系 + patient.setGuardianPhone(patientInfoDto.getGuardianPhone());// 监护人电话 + patient.setGuardianIdType(patientInfoDto.getGuardianIdType());// 监护人证件类型 + patient.setGuardianIdNo(patientInfoDto.getGuardianIdNo());// 监护人证件号码 + patient.setGuardianAddress(patientInfoDto.getGuardianAddress());// 监护人地址 + patient.setPatientDerived(patientInfoDto.getPatientDerived());// 患者来源 + patient.setEducationLevel(patientInfoDto.getEducationLevel());// 文化程度 + patient.setCompanyAddress(patientInfoDto.getCompanyAddress());// 单位地址 if (patientInfoDto.getId() != null) { - // 更新操作 - patientService.updateById(patient); + // 更新操作 - 使用 LambdaUpdateWrapper 显式设置所有字段,确保 null 值也能正确更新 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(Patient::getId, patient.getId()) + .set(Patient::getName, patient.getName()) + .set(Patient::getPyStr, patient.getPyStr()) + .set(Patient::getWbStr, patient.getWbStr()) + .set(Patient::getIdCard, patient.getIdCard()) + .set(Patient::getBirthDate, patient.getBirthDate()) + .set(Patient::getGenderEnum, patient.getGenderEnum()) + .set(Patient::getPhone, patient.getPhone()) + .set(Patient::getPrfsEnum, patient.getPrfsEnum()) + .set(Patient::getWorkCompany, patient.getWorkCompany()) + .set(Patient::getLinkName, patient.getLinkName()) + .set(Patient::getLinkRelationCode, patient.getLinkRelationCode()) + .set(Patient::getLinkTelcom, patient.getLinkTelcom()) + .set(Patient::getAddress, patient.getAddress()) + .set(Patient::getAddressProvince, patient.getAddressProvince()) + .set(Patient::getAddressCity, patient.getAddressCity()) + .set(Patient::getAddressDistrict, patient.getAddressDistrict()) + .set(Patient::getAddressStreet, patient.getAddressStreet()) + .set(Patient::getBloodAbo, patient.getBloodAbo()) + .set(Patient::getBloodRh, patient.getBloodRh()) + .set(Patient::getMaritalStatusEnum, patient.getMaritalStatusEnum()) + .set(Patient::getDeceasedDate, patient.getDeceasedDate()) + .set(Patient::getNationalityCode, patient.getNationalityCode()) + .set(Patient::getActiveFlag, patient.getActiveFlag()) + .set(Patient::getCountryCode, patient.getCountryCode()) + .set(Patient::getPostalCode, patient.getPostalCode()) + .set(Patient::getHukouAddress, patient.getHukouAddress()) + .set(Patient::getGuardianName, patient.getGuardianName()) + .set(Patient::getGuardianRelation, patient.getGuardianRelation()) + .set(Patient::getGuardianPhone, patient.getGuardianPhone()) + .set(Patient::getGuardianIdType, patient.getGuardianIdType()) + .set(Patient::getGuardianIdNo, patient.getGuardianIdNo()) + .set(Patient::getGuardianAddress, patient.getGuardianAddress()) + .set(Patient::getPatientDerived, patient.getPatientDerived()) + .set(Patient::getEducationLevel, patient.getEducationLevel()) + .set(Patient::getCompanyAddress, patient.getCompanyAddress()); + patientService.update(updateWrapper); } else { // 新增操作 patientService.save(patient); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/PatientBaseInfoDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/PatientBaseInfoDto.java index 56b689231..0db97a1ab 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/PatientBaseInfoDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/PatientBaseInfoDto.java @@ -168,4 +168,65 @@ public class PatientBaseInfoDto { */ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + + /** + * 邮政编码 + */ + private String postalCode; + + /** + * 户籍地址 + */ + private String hukouAddress; + + /** + * 监护人姓名 + */ + private String guardianName; + + /** + * 监护人关系 + */ + private Integer guardianRelation; + private String guardianRelation_enumText; + + /** + * 监护人电话 + */ + private String guardianPhone; + + /** + * 监护人证件类型 + */ + private String guardianIdType; + + /** + * 监护人证件号码 + */ + private String guardianIdNo; + + /** + * 监护人地址 + */ + private String guardianAddress; + + /** + * 患者来源 + */ + private String patientDerived; + + /** + * 文化程度 + */ + private String educationLevel; + + /** + * 单位地址 + */ + private String companyAddress; + + /** + * 国家编码 + */ + private String countryCode; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V2026_0608_1__patient_missing_fields.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V2026_0608_1__patient_missing_fields.sql new file mode 100644 index 000000000..285f163e4 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V2026_0608_1__patient_missing_fields.sql @@ -0,0 +1,25 @@ +-- Bug #705: 患者管理修改后字段回显丢失修复 +-- 添加邮政编码、户籍地址、监护人信息、患者来源等缺失字段到adm_patient表 + +-- 邮政编码 +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS postal_code VARCHAR(10); + +-- 户籍地址 +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS hukou_address VARCHAR(500); + +-- 监护人信息 +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS guardian_name VARCHAR(50); +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS guardian_relation INTEGER; +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS guardian_phone VARCHAR(20); +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS guardian_id_type VARCHAR(10); +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS guardian_id_no VARCHAR(30); +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS guardian_address VARCHAR(500); + +-- 患者来源 +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS patient_derived VARCHAR(50); + +-- 文化程度 +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS education_level VARCHAR(20); + +-- 单位地址 +ALTER TABLE adm_patient ADD COLUMN IF NOT EXISTS company_address VARCHAR(500); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index 1897f963e..56a382e06 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -38,7 +38,19 @@ pt.link_telcom, pt.link_jsons, pt.organization_id, - pt.create_time + pt.create_time, + pt.postal_code, + pt.hukou_address, + pt.guardian_name, + pt.guardian_relation, + pt.guardian_phone, + pt.guardian_id_type, + pt.guardian_id_no, + pt.guardian_address, + pt.patient_derived, + pt.education_level, + pt.company_address, + pt.country_code FROM ( SELECT ( @@ -81,7 +93,19 @@ p.link_telcom, p.link_jsons, p.organization_id, - p.create_time + p.create_time, + p.postal_code, + p.hukou_address, + p.guardian_name, + p.guardian_relation, + p.guardian_phone, + p.guardian_id_type, + p.guardian_id_no, + p.guardian_address, + p.patient_derived, + p.education_level, + p.company_address, + p.country_code FROM adm_patient p where p.delete_flag = '0' ) AS pt diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/Patient.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/Patient.java index 2e5081b00..41510f79f 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/Patient.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/Patient.java @@ -130,4 +130,37 @@ public class Patient extends HisBaseEntity { /** 机构Id */ private Long organizationId; + /** 邮政编码 */ + private String postalCode; + + /** 户籍地址 */ + private String hukouAddress; + + /** 监护人姓名 */ + private String guardianName; + + /** 监护人关系 */ + private Integer guardianRelation; + + /** 监护人电话 */ + private String guardianPhone; + + /** 监护人证件类型 */ + private String guardianIdType; + + /** 监护人证件号码 */ + private String guardianIdNo; + + /** 监护人地址 */ + private String guardianAddress; + + /** 患者来源 */ + private String patientDerived; + + /** 文化程度 */ + private String educationLevel; + + /** 单位地址 */ + private String companyAddress; + } diff --git a/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue b/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue index 92db6939e..1991eb608 100755 --- a/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue +++ b/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue @@ -447,9 +447,9 @@ v-model="form.deceasedDate" type="datetime" placeholder="请选择时间" - format="YYYY/MM/DD HH:mm:ss" + format="YYYY-MM-DD HH:mm:ss" :disabled="isViewMode" - value-format="YYYY/MM/DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" /> @@ -702,7 +702,7 @@ const getGenderOptions = async () => { const getEducationLevelOptions = async () => { try { // 从字典管理获取文化程度数据 - const response = await getDicts('文化程度'); + const response = await getDicts('education_level'); console.log('获取到的文化程度原始数据:', response); // 确保数据是数组 @@ -1403,10 +1403,8 @@ const getCountryCodeOptions = async () => { // 显示弹框 function show() { - // 重置为新增模式 - isEditMode.value = false; - title.value = '新增患者'; - originalFormData.value = {}; + // 重置表单为初始状态 + reset(); // queryParams.roleId = props.roleId; getList(); @@ -1452,6 +1450,22 @@ function reset() { busNo: undefined, organizationId: undefined, birthDate: undefined, + postalCode: undefined, + hukouAddress: undefined, + hukouAddressSelect: undefined, + hukouAddressProvince: undefined, + hukouAddressCity: undefined, + hukouAddressDistrict: undefined, + hukouAddressStreet: undefined, + companyAddress: undefined, + patientDerived: undefined, + educationLevel: undefined, + guardianName: undefined, + guardianRelation: undefined, + guardianPhone: undefined, + guardianIdType: undefined, + guardianIdNo: undefined, + guardianAddress: undefined, }; // 重置编辑模式状态 isEditMode.value = false;