Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server
This commit is contained in:
commit
5b1fcbaf57
|
|
@ -5,38 +5,54 @@ import com.syjiaer.clinic.server.common.api.annotations.IMField;
|
||||||
import com.syjiaer.clinic.server.common.exception.MessageException;
|
import com.syjiaer.clinic.server.common.exception.MessageException;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public abstract class BaseInputModel {
|
public abstract class BaseInputModel {
|
||||||
public Map<String, Object> buildToMap() {
|
public Map<String, Object> buildToMap() {
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
// 遍历所有字段(包含父类)
|
|
||||||
Class<?> clazz = this.getClass();
|
Class<?> clazz = this.getClass();
|
||||||
while (clazz != null) {
|
while (clazz != null) {
|
||||||
for (Field field : clazz.getDeclaredFields()) {
|
for (Field field : clazz.getDeclaredFields()) {
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
try {
|
try {
|
||||||
Object value = field.get(this); // 检查RequiredField注解
|
Object value = field.get(this);
|
||||||
String mapKey = null;
|
String mapKey = null;
|
||||||
if (field.isAnnotationPresent(IMField.class)) {
|
if (field.isAnnotationPresent(IMField.class)) {
|
||||||
|
|
||||||
IMField annotation = field.getAnnotation(IMField.class);
|
IMField annotation = field.getAnnotation(IMField.class);
|
||||||
mapKey = annotation.key();
|
mapKey = annotation.key();
|
||||||
if (annotation.required()) {
|
|
||||||
if (value == null || value.toString().isEmpty()) {
|
if (annotation.required() && (value == null || (value instanceof String && ((String) value).isEmpty()))) {
|
||||||
throw new MessageException("[" + annotation.key() + ":"+annotation.name()+"]不能为空");
|
throw new MessageException("[" + annotation.key() + ":" + annotation.name() + "] 不能为空");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value != null && mapKey != null && !value.toString().isEmpty()){
|
if (mapKey != null) {
|
||||||
map.put(mapKey, field.get(this));
|
// 处理 BaseInputModel 子类
|
||||||
|
if (value instanceof BaseInputModel) {
|
||||||
|
map.put(mapKey, ((BaseInputModel) value).buildToMap());
|
||||||
|
}
|
||||||
|
// 处理 List<BaseInputModel>
|
||||||
|
else if (value instanceof List) {
|
||||||
|
List<?> list = (List<?>) value;
|
||||||
|
List<Map<String, Object>> mappedList = new ArrayList<>();
|
||||||
|
for (Object item : list) {
|
||||||
|
if (item instanceof BaseInputModel) {
|
||||||
|
mappedList.add(((BaseInputModel) item).buildToMap());
|
||||||
|
} else {
|
||||||
|
mappedList.add((Map<String, Object>) item); // 假设基本类型已为 Map
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put(mapKey, mappedList);
|
||||||
|
}
|
||||||
|
// 其他非空值直接放入
|
||||||
|
else if (value != null && !(value instanceof String || value.toString().isEmpty())) {
|
||||||
|
map.put(mapKey, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -45,4 +61,5 @@ public abstract class BaseInputModel {
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.syjiaer.clinic.server.common.api.input;
|
||||||
|
|
||||||
|
|
||||||
|
import com.syjiaer.clinic.server.common.api.annotations.IMField;
|
||||||
|
import com.syjiaer.clinic.server.common.api.input.im3101.PatientDtos;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class IM3101 extends BaseInputModel {
|
||||||
|
@IMField(key="syscode",name = "系统编码",required = true)
|
||||||
|
private String syscode;
|
||||||
|
@IMField(key="patient_dtos",name = "参保人信息",required = true)
|
||||||
|
private List<PatientDtos> patientDtos;
|
||||||
|
@IMField(key="rule_ids",name = "规则标识集合")
|
||||||
|
private List<String> ruleIds;
|
||||||
|
@IMField(key="task_id",name = "任务ID")
|
||||||
|
private String taskId;
|
||||||
|
@IMField(key="trig_scen",name = "触发场景")
|
||||||
|
private String trigScen;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.syjiaer.clinic.server.common.api.input.im3101;
|
||||||
|
|
||||||
|
import com.syjiaer.clinic.server.common.api.annotations.IMField;
|
||||||
|
import com.syjiaer.clinic.server.common.api.input.BaseInputModel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class FsiDiagnoseDtos extends BaseInputModel {
|
||||||
|
@IMField(key = "dise_id", name = "诊断标识", required = true)
|
||||||
|
private String diseId;
|
||||||
|
@IMField(key = "inout_dise_type", name = "出入诊断类别", required = true)
|
||||||
|
private String inoutDiseType;
|
||||||
|
@IMField(key = "maindise_flag", name = "主诊断标志", required = true)
|
||||||
|
private String maindiseFlag;
|
||||||
|
@IMField(key = "dias_srt_no", name = "诊断排序号", required = true)
|
||||||
|
private String diasSrtNo;
|
||||||
|
@IMField(key = "dise_codg", name = "诊断(疾病)编码", required = true)
|
||||||
|
private String diseCodg;
|
||||||
|
@IMField(key = "dise_name", name = "诊断(疾病)名称", required = true)
|
||||||
|
private String diseName;
|
||||||
|
@IMField(key = "dise_date", name = "诊断日期", required = true)
|
||||||
|
private LocalDateTime diseDate;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
package com.syjiaer.clinic.server.common.api.input.im3101;
|
||||||
|
|
||||||
|
import com.syjiaer.clinic.server.common.api.annotations.IMField;
|
||||||
|
import com.syjiaer.clinic.server.common.api.input.BaseInputModel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class FsiEncounterDtos extends BaseInputModel {
|
||||||
|
@IMField(key = "mdtrt_id", name = "就诊标识", required = true)
|
||||||
|
private String mdtrtId;
|
||||||
|
@IMField(key = "medins_id", name = "医疗服务机构标识", required = true)
|
||||||
|
private String medinsId;
|
||||||
|
@IMField(key = "medins_name", name = "医疗机构名称", required = true)
|
||||||
|
private String medinsName;
|
||||||
|
@IMField(key = "medins_admdvs", name = "医疗机构行政区划编码", required = true)
|
||||||
|
private String medinsAdmdvs;
|
||||||
|
@IMField(key = "medins_type", name = "医疗服务机构类型", required = true)
|
||||||
|
private String medinsType;
|
||||||
|
@IMField(key = "medins_lv", name = "医疗机构等级", required = true)
|
||||||
|
private String medinsLv;
|
||||||
|
@IMField(key = "wardarea_codg", name = "病区标识")
|
||||||
|
private String wardareaCodg;
|
||||||
|
@IMField(key = "wardno", name = "病房号")
|
||||||
|
private String wardno;
|
||||||
|
@IMField(key = "bedno", name = "病床号")
|
||||||
|
private String bedno;
|
||||||
|
@IMField(key = "adm_date", name = "入院日期", required = true)
|
||||||
|
private LocalDateTime admDate;
|
||||||
|
@IMField(key = "dscg_date", name = "出院日期", required = true)
|
||||||
|
private LocalDateTime dscgDate;
|
||||||
|
@IMField(key = "dscg_main_dise_codg", name = "主诊断编码", required = true)
|
||||||
|
private String dscgMainDiseCodg;
|
||||||
|
@IMField(key = "dscg_main_dise_name", name = "主诊断名称", required = true)
|
||||||
|
private String dscgMainDiseName;
|
||||||
|
@IMField(key = "fsi_diagnose_dtos", name = "诊断信息DTO", required = true)
|
||||||
|
private List<FsiDiagnoseDtos> fsiDiagnoseDtos;
|
||||||
|
@IMField(key = "dr_codg", name = "医师标识", required = true)
|
||||||
|
private String drCodg;
|
||||||
|
@IMField(key = "adm_dept_codg", name = "入院科室标识", required = true)
|
||||||
|
private String admDeptCodg;
|
||||||
|
@IMField(key = "adm_dept_name", name = "入院科室名称", required = true)
|
||||||
|
private String admDeptName;
|
||||||
|
@IMField(key = "dscg_dept_codg", name = "出院科室标识", required = true)
|
||||||
|
private String dscgDeptCodg;
|
||||||
|
@IMField(key = "dscg_dept_name", name = "出院科室名称", required = true)
|
||||||
|
private String dscgDeptName;
|
||||||
|
@IMField(key = "med_mdtrt_type", name = "就诊类型", required = true)
|
||||||
|
private String medMdtrtType;
|
||||||
|
@IMField(key = "med_type", name = "医疗类别", required = true)
|
||||||
|
private String medType;
|
||||||
|
@IMField(key = "fsi_order_dtos", name = "处方(医嘱)信息", required = true)
|
||||||
|
private List<FsiOrderDtos> fsiOrderDtos;
|
||||||
|
@IMField(key = "matn_stas", name = "生育状态", required = true)
|
||||||
|
private String matnStas;
|
||||||
|
@IMField(key = "medfee_sumamt", name = "总费用", required = true)
|
||||||
|
private BigDecimal medfeeSumamt;
|
||||||
|
@IMField(key = "ownpay_amt", name = "自费金额", required = true)
|
||||||
|
private BigDecimal ownpayAmt;
|
||||||
|
@IMField(key = "selfpay_amt", name = "自付金额", required = true)
|
||||||
|
private BigDecimal selfpayAmt;
|
||||||
|
@IMField(key = "acct_payamt", name = "个人账户支付金额")
|
||||||
|
private BigDecimal acctPayamt;
|
||||||
|
@IMField(key = "ma_amt", name = "救助金支付金额")
|
||||||
|
private BigDecimal maAmt;
|
||||||
|
@IMField(key = "hifp_payamt", name = "统筹金支付金额")
|
||||||
|
private BigDecimal hifpPayamt;
|
||||||
|
@IMField(key = "setl_totlnum", name = "结算总次数", required = true)
|
||||||
|
private Integer setlTotlnum;
|
||||||
|
@IMField(key = "insutype", name = "险种", required = true)
|
||||||
|
private String insutype;
|
||||||
|
@IMField(key = "reim_flag", name = "报销标志", required = true)
|
||||||
|
private String reimFlag;
|
||||||
|
@IMField(key = "out_setl_flag", name = "异地结算标志", required = true)
|
||||||
|
private String outSetlFlag;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
package com.syjiaer.clinic.server.common.api.input.im3101;
|
||||||
|
|
||||||
|
import com.syjiaer.clinic.server.common.api.annotations.IMField;
|
||||||
|
import com.syjiaer.clinic.server.common.api.input.BaseInputModel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class FsiOrderDtos extends BaseInputModel {
|
||||||
|
@IMField(key = "rx_id", name = "处方(医嘱)标识", required = true)
|
||||||
|
private String rxId;
|
||||||
|
@IMField(key = "rxno", name = "处方号", required = true)
|
||||||
|
private String rxno;
|
||||||
|
@IMField(key = "grpno", name = "组编号")
|
||||||
|
private String grpno;
|
||||||
|
@IMField(key = "long_drord_flag", name = "是否为长期医嘱", required = true)
|
||||||
|
private String longDrordFlag;
|
||||||
|
@IMField(key = "hilist_type", name = "目录类别", required = true)
|
||||||
|
private String hilistType;
|
||||||
|
@IMField(key = "chrg_type", name = "收费类别", required = true)
|
||||||
|
private String chrgType;
|
||||||
|
@IMField(key = "drord_bhvr", name = "医嘱行为", required = true)
|
||||||
|
private String drordBhvr;
|
||||||
|
@IMField(key = "hilist_code", name = "医保目录代码", required = true)
|
||||||
|
private String hilistCode;
|
||||||
|
@IMField(key = "hilist_name", name = "医保目录名称", required = true)
|
||||||
|
private String hilistName;
|
||||||
|
@IMField(key = "hilist_dosform", name = "医保目录(药品)剂型")
|
||||||
|
private String hilistDosform;
|
||||||
|
@IMField(key = "hilist_lv", name = "医保目录等级", required = true)
|
||||||
|
private String hilistLv;
|
||||||
|
@IMField(key = "hilist_pric", name = "医保目录价格", required = true)
|
||||||
|
private BigDecimal hilistPric;
|
||||||
|
@IMField(key = "lv1_hosp_item_pric", name = "一级医院目录价格")
|
||||||
|
private BigDecimal lv1HospItemPric;
|
||||||
|
@IMField(key = "lv2_hosp_item_pric", name = "二级医院目录价格")
|
||||||
|
private BigDecimal lv2HospItemPric;
|
||||||
|
@IMField(key = "lv3_hosp_item_pric", name = "三级医院目录价格")
|
||||||
|
private BigDecimal lv3HospItemPric;
|
||||||
|
@IMField(key = "hilist_memo", name = "医保目录备注")
|
||||||
|
private String hilistMemo;
|
||||||
|
@IMField(key = "hosplist_code", name = "医院目录代码", required = true)
|
||||||
|
private String hosplistCode;
|
||||||
|
@IMField(key = "hosplist_name", name = "医院目录名称", required = true)
|
||||||
|
private String hosplistName;
|
||||||
|
@IMField(key = "hosplist_dosform", name = "医院目录(药品)剂型")
|
||||||
|
private String hosplistDosform;
|
||||||
|
@IMField(key = "cnt", name = "数量", required = true)
|
||||||
|
private BigDecimal cnt;
|
||||||
|
@IMField(key = "pric", name = "单价", required = true)
|
||||||
|
private BigDecimal pric;
|
||||||
|
@IMField(key = "sumamt", name = "总费用", required = true)
|
||||||
|
private BigDecimal sumamt;
|
||||||
|
@IMField(key = "ownpay_amt", name = "自费金额", required = true)
|
||||||
|
private BigDecimal ownpayAmt;
|
||||||
|
@IMField(key = "selfpay_amt", name = "自付金额", required = true)
|
||||||
|
private BigDecimal selfpayAmt;
|
||||||
|
@IMField(key = "spec", name = "规格", required = true)
|
||||||
|
private String spec;
|
||||||
|
@IMField(key = "spec_unt", name = "数量单位", required = true)
|
||||||
|
private String specUnt;
|
||||||
|
@IMField(key = "drord_begn_date", name = "医嘱开始日期", required = true)
|
||||||
|
private LocalDateTime drordBegnDate;
|
||||||
|
@IMField(key = "drord_stop_date", name = "医嘱停止日期")
|
||||||
|
private LocalDateTime drordStopDate;
|
||||||
|
@IMField(key = "drord_dept_codg", name = "下达医嘱的科室标识", required = true)
|
||||||
|
private String drordDeptCodg;
|
||||||
|
@IMField(key = "drord_dept_name", name = "下达医嘱科室名称", required = true)
|
||||||
|
private String drordDeptName;
|
||||||
|
@IMField(key = "drord_dr_codg", name = "开处方(医嘱)医生标识", required = true)
|
||||||
|
private String drordDrCodg;
|
||||||
|
@IMField(key = "drord_dr_name", name = "开处方(医嘱)医生姓名", required = true)
|
||||||
|
private String drordDrName;
|
||||||
|
@IMField(key = "drord_dr_profttl", name = "开处方(医嘱)医职称", required = true)
|
||||||
|
private String drordDrProfttl;
|
||||||
|
@IMField(key = "curr_drord_flag", name = "是否当前处方(医嘱)", required = true)
|
||||||
|
private String currDrordFlag;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.syjiaer.clinic.server.common.api.input.im3101;
|
||||||
|
|
||||||
|
import com.syjiaer.clinic.server.common.api.annotations.IMField;
|
||||||
|
import com.syjiaer.clinic.server.common.api.input.BaseInputModel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class PatientDtos extends BaseInputModel {
|
||||||
|
@IMField(key = "patn_id", name = "参保人标识", required = true)
|
||||||
|
private String patnId;
|
||||||
|
@IMField(key = "patn_name", name = "姓名", required = true)
|
||||||
|
private String patnName;
|
||||||
|
@IMField(key = "gend", name = "性别", required = true)
|
||||||
|
private String gend;
|
||||||
|
@IMField(key = "brdy", name = "出生日期", required = true)
|
||||||
|
private LocalDate brdy;
|
||||||
|
@IMField(key = "poolarea", name = "统筹区编码", required = true)
|
||||||
|
private String poolarea;
|
||||||
|
@IMField(key = "curr_mdtrt_id", name = "当前就诊标识", required = true)
|
||||||
|
private String currMdtrtId;
|
||||||
|
@IMField(key = "fsi_encounter_dtos", name = "就诊信息集合", required = true)
|
||||||
|
private List<FsiEncounterDtos> fsiEncounterDtos;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue