标签修改

This commit is contained in:
zhangheng 2024-06-26 15:00:36 +08:00
parent b33491a04b
commit 6dc21982d9
6 changed files with 360 additions and 71 deletions

View File

@ -108,6 +108,9 @@ public class LabelFieldContentController extends BaseController {
return labelFieldContentService.groupingValue(taskPartitionDictId, patientId);
}
/**
* 画像内容新增
*/
@PostMapping("/insertLabelField")
public AjaxResult insertLabelField(@RequestBody LabelField labelField) {
return labelFieldContentService.insertLabelField(labelField);

View File

@ -0,0 +1,283 @@
package com.xinelu.manage.domain.patientinfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 患者全部信息视图对象 patient_all_info_view
*
* @author xinelu
* @date 2024-06-11
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "患者全部信息视图对象", description = "patient_all_info_view")
public class PatientAllInfoViewUppercase {
private static final long serialVersionUID = 1L;
/**
* 患者主键
*/
@ApiModelProperty(value = "患者主键")
private Long PATIENTID;
/**
* 患者姓名
*/
@ApiModelProperty(value = "患者姓名")
private String PATIENTNAME;
/**
* 患者电话
*/
@ApiModelProperty(value = "患者电话")
private String PATIENTPHONE;
/**
* 家属电话
*/
@ApiModelProperty(value = "家属电话")
private String FAMILYMEMBERPHONE;
/**
* 出生日期格式yyyy-MM-dd
*/
@ApiModelProperty(value = "出生日期格式yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate BIRTHDATE;
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号")
private String CARDNO;
/**
* 性别MALEFEMALE
*/
@ApiModelProperty(value = "性别MALEFEMALE")
private String SEX;
/**
* 住址
*/
@ApiModelProperty(value = "住址")
private String ADDRESS;
/**
* 患者类型预住院患者PRE_HOSPITALIZED_PATIENT在院患者IN_HOSPITAL_PATIENT门诊患者OUTPATIENT出院患者DISCHARGED_PATIENT签约患者CONTRACTED_PATIENT
*/
@ApiModelProperty(value = "患者类型预住院患者PRE_HOSPITALIZED_PATIENT在院患者IN_HOSPITAL_PATIENT门诊患者OUTPATIENT出院患者DISCHARGED_PATIENT签约患者CONTRACTED_PATIENT")
private String PATIENTTYPE;
/**
* 就诊记录id
*/
@ApiModelProperty(value = "就诊记录id")
private Long PATIENTVISITRECORDID;
/**
* 就诊类型门诊OUTPATIENT_SERVICE住院BE_HOSPITALIZED
*/
@ApiModelProperty(value = "就诊类型门诊OUTPATIENT_SERVICE住院BE_HOSPITALIZED")
private String VISITMETHOD;
/**
* 就诊时间格式yyyy-MM-dd HH:mm:ss
*/
@ApiModelProperty(value = "就诊时间格式yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime VISITDATE;
/**
* 所属医院名称
*/
@ApiModelProperty(value = "所属医院名称")
private String HOSPITALAGENCYNAME;
/**
* 所属院区名称
*/
@ApiModelProperty(value = "所属院区名称")
private String CAMPUSAGENCYNAME;
/**
* 所属科室名称
*/
@ApiModelProperty(value = "所属科室名称")
private String DEPARTMENTNAME;
/**
* 所属病区名称
*/
@ApiModelProperty(value = "所属病区名称")
private String WARDNAME;
/**
* 主治医生姓名
*/
@ApiModelProperty(value = "主治医生姓名")
private String ATTENDINGPHYSICIANNAME;
/**
* 主要诊断
*/
@ApiModelProperty(value = "主要诊断")
private String MAINDIAGNOSIS;
/**
* 入院时间
*/
@ApiModelProperty(value = "入院时间")
private LocalDateTime ADMISSIONTIME;
/**
* 出院时间
*/
@ApiModelProperty(value = "出院时间")
private LocalDateTime DISCHARGETIME;
/**
* 住院天数出院记录单位为
*/
@ApiModelProperty(value = "住院天数")
private Integer HOSPITALIZATIONDAYS;
/**
* 入院病历信息存储患者入院的整个病历信息
*/
@ApiModelProperty(value = "入院病历信息,存储患者入院的整个病历信息")
private String INHOSPITALINFO;
/**
* 出院病历信息存储患者出院的整个病历信息
*/
@ApiModelProperty(value = "出院病历信息,存储患者出院的整个病历信息")
private String OUTHOSPITALINFO;
/**
* 就诊流水号
*/
@ApiModelProperty(value = "就诊流水号")
private String VISITSERIALNUMBER;
/**
* 门诊/住院号
*/
@ApiModelProperty(value = "门诊/住院号")
private String INHOSPITALNUMBER;
/**
* 责任护士
*/
@ApiModelProperty(value = "责任护士")
private String RESPONSIBLENURSE;
/**
* 手术名称
*/
@ApiModelProperty(value = "手术名称")
private String SURGICALNAME;
/**
* 手术记录
*/
@ApiModelProperty(value = "手术记录")
private String SURGICALRECORD;
/**
* 签约记录表id
*/
@ApiModelProperty(value = "签约记录表id")
private Long SIGNPATIENTRECORDID;
/**
* 缴费状态已缴费PAID未交费UNPAID_FEES
*/
@ApiModelProperty(value = "缴费状态已缴费PAID未交费UNPAID_FEES")
private String PAYMENTSTATUS;
/**
* 所属健康管理师名称用户表名称
*/
@ApiModelProperty(value = "所属健康管理师名称")
private String HEALTHMANAGENAME;
/**
* 服务状态意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END
*/
@ApiModelProperty(value = "服务状态意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END")
private String SERVICESTATUS;
/**
* 签约状态在签IN_SIGN忽略IGNORE_SIGN解约SEPARATE_SIGN续约CONTINUOUS_SIGN
*/
@ApiModelProperty(value = "签约状态在签IN_SIGN忽略IGNORE_SIGN解约SEPARATE_SIGN续约CONTINUOUS_SIGN")
private String SIGNSTATUS;
/**
* 开单医生姓名意向签约
*/
@ApiModelProperty(value = "开单医生姓名")
private String BILLINGDOCTORNAME;
/**
* 签约时间格式yyyy-MM-dd HH:mm:ss
*/
@ApiModelProperty(value = "签约时间格式yyyy-MM-dd HH:mm:ss")
private LocalDateTime SIGNTIME;
/**
* 服务包名称
*/
@ApiModelProperty(value = "服务包名称")
private String PACKAGENAME;
/**
* 服务包缴费状态已缴费PAID未交费UNPAID_FEES
*/
@ApiModelProperty(value = "服务包缴费状态已缴费PAID未交费UNPAID_FEES")
private String PACKAGEPAYMENTSTATUS;
/**
* 服务包价格小数点后两位
*/
@ApiModelProperty(value = "服务包价格,小数点后两位")
private BigDecimal PACKAGEPRICE;
/**
* 服务开始时间格式yyyy-MM-dd HH:mm:ss
*/
@ApiModelProperty(value = "服务开始时间格式yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime SERVICESTARTTIME;
/**
* 服务结束时间格式yyyy-MM-dd HH:mm:ss
*/
@ApiModelProperty(value = "服务结束时间格式yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime SERVICEENDTIME;
/**
* 服务包期限
*/
@ApiModelProperty(value = "服务包期限")
private Integer PACKAGETERM;
/**
* 服务包期限单位
*/
@ApiModelProperty(value = "服务包期限单位,年,月,日")
private String PACKAGETERMUNIT;
}

View File

@ -1,6 +1,8 @@
package com.xinelu.manage.mapper.patientinfo;
import com.xinelu.manage.domain.patientinfo.PatientAllInfoView;
import com.xinelu.manage.domain.patientinfo.PatientAllInfoViewUppercase;
import java.util.List;
@ -33,5 +35,5 @@ public interface PatientAllInfoViewMapper {
* @param patientId 患者主键
* @return 患者全部信息视图对象
*/
List<PatientAllInfoView> selectPatientAllInfoListViewByPatientId(Long patientId);
List<PatientAllInfoViewUppercase> selectPatientAllInfoListViewByPatientId(Long patientId);
}

View File

@ -84,5 +84,11 @@ public interface ILabelFieldContentService {
*/
List<List<GroupingValue>> groupingValue(Long taskPartitionDictId, Long patientId);
/**
* 画像内容新增
*
* @param labelField 画像信息
* @return AjaxResult
*/
AjaxResult insertLabelField(LabelField labelField);
}

View File

@ -10,6 +10,7 @@ import com.xinelu.common.utils.bean.BeanUtils;
import com.xinelu.manage.domain.labelfieldcontent.LabelFieldContent;
import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo;
import com.xinelu.manage.domain.patientinfo.PatientAllInfoView;
import com.xinelu.manage.domain.patientinfo.PatientAllInfoViewUppercase;
import com.xinelu.manage.dto.labelfieldcontent.LabelFieldContentAddDTO;
import com.xinelu.manage.dto.labelfieldcontent.LabelFieldContentDTO;
import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper;
@ -25,12 +26,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -201,31 +200,21 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
if (CollectionUtils.isEmpty(labelFieldContentList)) {
return new ArrayList<>();
}
//取属性名
PatientAllInfoView patientAllInfoView = new PatientAllInfoView();
Field[] declaredFields = patientAllInfoView.getClass().getDeclaredFields();
String[] strings = new String[declaredFields.length];
for (int i = 0; i < declaredFields.length; i++) {
strings[i] = declaredFields[i].getName().toUpperCase();
}
List<String> strings1 = Arrays.asList(strings);
for (GroupingValue groupingValue : labelFieldContentList) {
groupingValue.setPatientId(patientId);
//获取不同的文件路径
switch (groupingValue.getFieldName()) {
case "姓名":
String s = paramsValue.getOrDefault("patientName", "").toString();
groupingValue.setFieldValue(paramsValue.getOrDefault("patientName", "").toString());
break;
case "患者电话":
groupingValue.setFieldValue(paramsValue.getOrDefault("patientPhone", "").toString());
break;
case "性别":
groupingValue.setFieldValue(paramsValue.getOrDefault("sex", "").toString());
break;
case "医院":
groupingValue.setFieldValue(paramsValue.getOrDefault("hospitalAgencyName", "").toString());
break;
default:
break;
}
String s = strings1.stream().filter(Objects::nonNull).filter(item -> item.equals(groupingValue.getFieldCode())).findFirst().orElse(new String());
groupingValue.setFieldValue(paramsValue.getOrDefault(s, "").toString());
}
List<List<GroupingValue>> lists = new ArrayList<>();
lists.add(labelFieldContentList);
return lists;
}
/**
@ -236,17 +225,23 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
*/
private JSONObject getParamsValue(Long patientId) {
JSONObject retObj;
List<PatientAllInfoView> patientAllInfoViews = patientAllInfoViewMapper.selectPatientAllInfoListViewByPatientId(patientId);
List<PatientAllInfoViewUppercase> patientAllInfoViews = patientAllInfoViewMapper.selectPatientAllInfoListViewByPatientId(patientId);
if (CollectionUtils.isEmpty(patientAllInfoViews) || ObjectUtils.isEmpty(patientAllInfoViews.get(0))) {
throw new ServiceException("患者信息获取错误,请联系管理员!");
}
PatientAllInfoView patientAllInfoView = patientAllInfoViews.get(0);
PatientAllInfoViewUppercase patientAllInfoView = patientAllInfoViews.get(0);
retObj = JSONObject.parseObject(JSONObject.toJSONString(patientAllInfoView));
// 性别转换成中文计算年龄
retObj.fluentPut("sex", PatientSexEnum.getInfoByCode(patientAllInfoView.getSex()).getInfo()).fluentPut("age", BaseUtil.getAge(patientAllInfoView.getBirthDate()));
retObj.fluentPut("SEX", PatientSexEnum.getInfoByCode(patientAllInfoView.getSEX()).getInfo()).fluentPut("AGE", BaseUtil.getAge(patientAllInfoView.getBIRTHDATE()));
return retObj;
}
/**
* 画像内容新增
*
* @param labelField 画像信息
* @return AjaxResult
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult insertLabelField(LabelField labelField) {

View File

@ -74,49 +74,49 @@
</select>
<select id="selectPatientAllInfoListViewByPatientId"
resultType="com.xinelu.manage.domain.patientinfo.PatientAllInfoView">
select paiv.patient_id,
paiv.patient_name,
paiv.patient_phone,
paiv.family_member_phone,
paiv.birth_date,
paiv.card_no,
paiv.sex,
paiv.address,
paiv.patient_type,
paiv.patient_visit_record_id,
paiv.visit_method,
paiv.visit_date,
paiv.hospital_agency_name,
paiv.campus_agency_name,
paiv.department_name,
paiv.ward_name,
paiv.attending_physician_name,
paiv.main_diagnosis,
paiv.admission_time,
paiv.discharge_time,
paiv.hospitalization_days,
paiv.in_hospital_info,
paiv.out_hospital_info,
paiv.visit_serial_number,
paiv.in_hospital_number,
paiv.responsible_nurse,
paiv.surgical_name,
paiv.surgical_record,
paiv.sign_patient_record_id,
paiv.payment_status,
paiv.health_manage_name,
paiv.service_status,
paiv.sign_status,
paiv.billing_doctor_name,
paiv.sign_time,
paiv.package_name,
paiv.package_payment_status,
paiv.package_price,
paiv.service_start_time,
paiv.service_end_time,
paiv.package_term,
paiv.package_term_unit
resultType="com.xinelu.manage.domain.patientinfo.PatientAllInfoViewUppercase">
select paiv.patient_id PATIENTID,
paiv.patient_name PATIENTNAME,
paiv.patient_phone PATIENTPHONE,
paiv.family_member_phone FAMILYMEMBERPHONE,
paiv.birth_date BIRTHDATE,
paiv.card_no CARDNO,
paiv.sex SEX,
paiv.address ADDRESS,
paiv.patient_type PATIENTTYPE,
paiv.patient_visit_record_id PATIENTVISITRECORDID,
paiv.visit_method VISITMETHOD,
paiv.visit_date VISITDATE,
paiv.hospital_agency_name HOSPITALAGENCYNAME,
paiv.campus_agency_name CAMPUSAGENCYNAME,
paiv.department_name DEPARTMENTNAME,
paiv.ward_name WARDNAME,
paiv.attending_physician_name ATTENDINGPHYSICIANNAME,
paiv.main_diagnosis MAINDIAGNOSIS,
paiv.admission_time ADMISSIONTIME,
paiv.discharge_time DISCHARGETIME,
paiv.hospitalization_days HOSPITALIZATIONDAYS,
paiv.in_hospital_info INHOSPITALINFO,
paiv.out_hospital_info OUTHOSPITALINFO,
paiv.visit_serial_number VISITSERIALNUMBER,
paiv.in_hospital_number INHOSPITALNUMBER,
paiv.responsible_nurse RESPONSIBLENURSE,
paiv.surgical_name SURGICALNAME,
paiv.surgical_record SURGICALRECORD,
paiv.sign_patient_record_id SIGNPATIENTRECORDID,
paiv.payment_status PAYMENTSTATUS,
paiv.health_manage_name HEALTHMANAGENAME,
paiv.service_status SERVICESTATUS,
paiv.sign_status SIGNSTATUS,
paiv.billing_doctor_name BILLINGDOCTORNAME,
paiv.sign_time SIGNTIME,
paiv.package_name PACKAGENAME,
paiv.package_payment_status PACKAGEPAYMENTSTATUS,
paiv.package_price PACKAGEPRICE,
paiv.service_start_time SERVICESTARTTIME,
paiv.service_end_time SERVICEENDTIME,
paiv.package_term PACKAGETERM,
paiv.package_term_unit PACKAGETERMUNIT
from patient_all_info_view paiv
left join patient_info pi ON pi.id = paiv.patient_id
where paiv.patient_id = #{patientId}