diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java index cf3cb0b..f11f7ed 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java @@ -1,6 +1,7 @@ package com.syjiaer.clinic.server.common.api.input; import com.syjiaer.clinic.server.common.api.annotations.IMField; +import lombok.Data; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -47,7 +48,7 @@ public class IM2203A extends BaseInputModel{ @IMField(key = "geso_val", name = "孕周数") private BigDecimal geso_val; @IMField(key = "exp_content", name = "字段扩展") - private String exp_content; + private ExpContent exp_content; } @Getter @Setter @@ -71,6 +72,27 @@ public class IM2203A extends BaseInputModel{ @IMField(key = "vali_flag", name = "有效标志", required = true) private String vali_flag; } + @Data + public static class ExpContent{ + @IMField(key = "local_dise", name = "本地病种编码") + private String local_dise; + @IMField(key = "ifen_flag", name = "传染性标志") + private String ifen_flag; + @IMField(key = "trum_flag", name = "外伤标志", required = true) + private String trum_flag; + @IMField(key = "rel_ttp_flag", name = "涉及第三方标志", required = true) + private String rel_ttp_flag; + @IMField(key = "mdtrt_grp_type", name = "就诊人群类型") + private String mdtrt_grp_type; + @IMField(key = "elec_bill_code", name = "电子票据代码") + private String elec_bill_code; + @IMField(key = "elec_billno_code", name = "电子票据号码") + private String elec_billno_code; + @IMField(key = "otp_er_refl_flag", name = "门诊急诊转诊标志") + private String otp_er_refl_flag; + @IMField(key = "otp_mulaid_used_flag", name = "门诊共济使用标志") + private String otp_mulaid_used_flag; + } } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/diagnosis/MedicalRecordController.java b/src/main/java/com/syjiaer/clinic/server/controller/diagnosis/MedicalRecordController.java index 3184bca..5227f27 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/diagnosis/MedicalRecordController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/diagnosis/MedicalRecordController.java @@ -3,7 +3,7 @@ package com.syjiaer.clinic.server.controller.diagnosis; import com.syjiaer.clinic.server.common.vo.Result; import com.syjiaer.clinic.server.controller.BaseController; import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto; -import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordVo; +import com.syjiaer.clinic.server.entity.diagnosis.vo.MedicalRecordVo; import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; @@ -48,4 +48,12 @@ public class MedicalRecordController extends BaseController { Integer regisId = parmsUtil.getInteger("regisId", "挂单id不能为空"); return success(medicalRecordService.getDetailByRegisId(regisId)); } + /** + * 获取收费队列 + */ +// @RequestMapping("/getChargeQueue") +// public Result getChargeQueue() { +// +// +// } } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/Diagnosis.java b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/Diagnosis.java index 38a5134..af687f5 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/Diagnosis.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/Diagnosis.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; +import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -39,6 +40,6 @@ public class Diagnosis implements Serializable { @ApiModelProperty("病例流水号") private String code; - @ApiModelProperty("医生id") - private Integer dockerId; + @ApiModelProperty("创建时间") + private LocalDateTime createTime; } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/DiagnosisMedicalRecord.java b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/DiagnosisMedicalRecord.java index 929b15d..ed607a6 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/DiagnosisMedicalRecord.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/DiagnosisMedicalRecord.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; -import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -57,9 +56,6 @@ public class DiagnosisMedicalRecord implements Serializable { @ApiModelProperty("诊断概况") private String diagnosisSummary; - @ApiModelProperty("创建日期") - private LocalDateTime createDatetime; - @ApiModelProperty("诊断类别") private String diagType; diff --git a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/dto/ChargeQueueQuery.java b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/dto/ChargeQueueQuery.java new file mode 100644 index 0000000..34c3728 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/dto/ChargeQueueQuery.java @@ -0,0 +1,7 @@ +package com.syjiaer.clinic.server.entity.diagnosis.dto; + +public class ChargeQueueQuery { + private String patientName; + private Integer pageNum; + private Integer pageSize; +} diff --git a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/dto/MedicalRecordVo.java b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/dto/MedicalRecordVo.java deleted file mode 100644 index 0fb3198..0000000 --- a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/dto/MedicalRecordVo.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.syjiaer.clinic.server.entity.diagnosis.dto; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList; -import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -import java.time.LocalDateTime; -import java.util.List; -@Getter -@Setter -public class MedicalRecordVo { - @ApiModelProperty("自增id") - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - @ApiModelProperty("患者id") - private Integer patientId; - - @ApiModelProperty("主诉") - private String mainAppeal; - - @ApiModelProperty("现病史") - private String nowMedicalHistory; - - @ApiModelProperty("往病史") - private String beforeMedicalHistory; - - @ApiModelProperty("过敏史") - private String allergyHistory; - - @ApiModelProperty("体检检查") - private String exam; - - @ApiModelProperty("非通用字段") - private String json; - - @ApiModelProperty("接诊医生id") - private Integer dockerId; - - @ApiModelProperty("接诊医生姓名") - private String dockerName; - - @ApiModelProperty("诊断详细数据") - private String diagnosisDetail; - - @ApiModelProperty("诊断概况") - private String diagnosisSummary; - - @ApiModelProperty("创建日期") - private LocalDateTime createDatetime; - - @ApiModelProperty("挂单id") - private Integer registrationId; - @ApiModelProperty("诊疗服务") - private List serviceDetail; - @ApiModelProperty("药品耗材") - private List goodsDetail; -} diff --git a/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/vo/MedicalRecordVo.java b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/vo/MedicalRecordVo.java new file mode 100644 index 0000000..4b4d5fe --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/entity/diagnosis/vo/MedicalRecordVo.java @@ -0,0 +1,40 @@ +package com.syjiaer.clinic.server.entity.diagnosis.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList; +import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList; +import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord; +import com.syjiaer.clinic.server.entity.patient.PatientInfo; +import com.syjiaer.clinic.server.entity.patient.PatientRegistration; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Getter +@Setter +public class MedicalRecordVo { + @ApiModelProperty("自增id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("患者id") + private Integer patientId; + + @ApiModelProperty("接诊医生id") + private Integer dockerId; + + @ApiModelProperty("挂单id") + private Integer registrationId; + @ApiModelProperty("挂单信息") + private PatientRegistration patientRegistration; + @ApiModelProperty("患者信息") + private PatientInfo patientInfo; + @ApiModelProperty("病例信息") + private DiagnosisMedicalRecord diagnosisMedicalRecord; + @ApiModelProperty("诊疗服务") + private List itemDetail; + @ApiModelProperty("药品耗材") + private List goodsDetail; +} diff --git a/src/main/java/com/syjiaer/clinic/server/mapper/diagnosis/DiagnosisMedicalItemListMapper.java b/src/main/java/com/syjiaer/clinic/server/mapper/diagnosis/DiagnosisMedicalItemListMapper.java index 7c66247..9ae7187 100644 --- a/src/main/java/com/syjiaer/clinic/server/mapper/diagnosis/DiagnosisMedicalItemListMapper.java +++ b/src/main/java/com/syjiaer/clinic/server/mapper/diagnosis/DiagnosisMedicalItemListMapper.java @@ -16,7 +16,7 @@ import java.util.List; * @since 2025-04-23 */ public interface DiagnosisMedicalItemListMapper extends BaseMapper { - @Select("select * from diagnosis_medical_item_list where medical_record_id = #{medicalRecordId}") + @Select("select * from diagnosis_medical_item_list where diagnosis_code = #{medicalRecordId}") List listByDiagnosisCode(String code); } diff --git a/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java b/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java index dd9c4e9..045156e 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java @@ -18,7 +18,7 @@ import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord; import com.syjiaer.clinic.server.entity.diagnosis.dto.GoodsRetailDto; import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto; -import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordVo; +import com.syjiaer.clinic.server.entity.diagnosis.vo.MedicalRecordVo; import com.syjiaer.clinic.server.entity.organization.OrganizationMember; import com.syjiaer.clinic.server.entity.organization.OrganizationSection; import com.syjiaer.clinic.server.entity.patient.PatientRegistration; @@ -88,9 +88,11 @@ public class MedicalRecordService extends BaseService { //诊断主表 Diagnosis diagnosis = new Diagnosis(); String code = StringUtil.getCode("ZD"); - BeanUtils.copyProperties(saveDto, Diagnosis.class); + LocalDateTime now = LocalDateTime.now(); + BeanUtils.copyProperties(saveDto, diagnosis); if (diagnosis.getId() == null){ diagnosis.setCode(code); + diagnosis.setCreateTime(now); }else { code = diagnosis.getCode(); } @@ -100,6 +102,7 @@ public class MedicalRecordService extends BaseService { ManagerUser managerUser = getManagerUser(); DiagnosisMedicalRecord diagnosisMedicalRecord = new DiagnosisMedicalRecord(); BeanUtils.copyProperties(saveDto.getDiagnosisMedicalRecord(), diagnosisMedicalRecord); + diagnosisMedicalRecord.setDiagnosisCode(code); diagnosisMedicalRecordMapper.insertOrUpdate(diagnosisMedicalRecord); //服务项目表 @@ -154,22 +157,24 @@ public class MedicalRecordService extends BaseService { */ public List listByPatientId(Integer patientId) { - QueryWrapper query = new QueryWrapper<>(); + QueryWrapper query = new QueryWrapper<>(); query.eq("patient_id", patientId); - query.orderByDesc("create_datetime"); + query.orderByDesc("create_time"); query.last("limit 10"); - List mrList = diagnosisMedicalRecordMapper.selectList(query); + List diaList = diagnosisMapper.selectList(query); List mrvList = new ArrayList<>(); - for (DiagnosisMedicalRecord diagnosisMedicalRecord : mrList) { - QueryWrapper severQuery = new QueryWrapper<>(); + for (Diagnosis diaItem : diaList) { + MedicalRecordVo vo = new MedicalRecordVo(); - BeanUtils.copyProperties(diagnosisMedicalRecord, vo); - severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId()); - List serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery); - vo.setServiceDetail(serverDetail); - QueryWrapper goodsQuery = new QueryWrapper<>(); - severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId()); - List goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery); + BeanUtils.copyProperties(diaItem, vo); + + DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diaItem.getCode()); + vo.setDiagnosisMedicalRecord(diagnosisMedicalRecord); + + List serverDetail = diagnosisMedicalItemListMapper.listByDiagnosisCode(diaItem.getCode()); + vo.setItemDetail(serverDetail); + + List goodsDetail = diagnosisMedicalGoodsListMapper.listByDiagnosisCode(diaItem.getCode()); vo.setGoodsDetail(goodsDetail); mrvList.add(vo); } @@ -182,19 +187,21 @@ public class MedicalRecordService extends BaseService { * @return */ public MedicalRecordVo getDetailByRegisId(Integer regisId) { - QueryWrapper query = new QueryWrapper<>(); - query.eq("registration_id", regisId); - DiagnosisMedicalRecord mr = diagnosisMedicalRecordMapper.selectOne(query); - QueryWrapper severQuery = new QueryWrapper<>(); MedicalRecordVo vo = new MedicalRecordVo(); - BeanUtils.copyProperties(mr, vo); - severQuery.eq("medical_record_id", mr.getId()); - List serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery); - vo.setServiceDetail(serverDetail); - QueryWrapper goodsQuery = new QueryWrapper<>(); - goodsQuery.eq("medical_record_id", mr.getId()); - List goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery); + + QueryWrapper query = new QueryWrapper<>(); + query.eq("registration_id", regisId); + Diagnosis diagnosis = diagnosisMapper.selectOne(query); + BeanUtils.copyProperties(diagnosis, vo); + + DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diagnosis.getCode()); + vo.setDiagnosisMedicalRecord(diagnosisMedicalRecord); + + List itemDetail = diagnosisMedicalItemListMapper.listByDiagnosisCode(diagnosis.getCode()); + vo.setItemDetail(itemDetail); + + List goodsDetail = diagnosisMedicalGoodsListMapper.listByDiagnosisCode(diagnosis.getCode()); vo.setGoodsDetail(goodsDetail); return vo; } @@ -225,6 +232,10 @@ public class MedicalRecordService extends BaseService { mdtrtinfo.setPsn_no(patientRegistration.getPsnNo()); mdtrtinfo.setMed_type(config.get("social","medType")); mdtrtinfo.setBegntime(curTime); + IM2203A.ExpContent expContent = new IM2203A.ExpContent(); + expContent.setTrum_flag("0"); + expContent.setRel_ttp_flag("0"); + mdtrtinfo.setExp_content(expContent); im2203A.setMdtrtinfo(mdtrtinfo); JSONArray jsonArray = JSONArray.parseArray(diagnosisMedicalRecord.getDiagnosisDetail()); int i =0; @@ -245,6 +256,7 @@ public class MedicalRecordService extends BaseService { diagList.add(diag); } im2203A.setDiseinfo(diagList); + socialRequest.call2203A(im2203A); diff --git a/src/main/java/com/syjiaer/clinic/server/service/social/SocialDiagnoseService.java b/src/main/java/com/syjiaer/clinic/server/service/social/SocialDiagnoseService.java index 3ae72e8..12d4070 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/social/SocialDiagnoseService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/social/SocialDiagnoseService.java @@ -30,8 +30,8 @@ public class SocialDiagnoseService { @Autowired private SocialDirectoryVersionService socialDirectoryVersionService; - public String download(int type, String version_name) { - List tab_list = httpUtil.download(version_name, type); + public String download( String version_name) { + List tab_list = httpUtil.download(version_name, 1307); DateTimeFormatter dateTimeFormatter = DateUtil.getDateTimeFormatter(DateUtil.DATE_TIME_FORMAT); List list = new ArrayList<>(); List codeList = new ArrayList<>(); @@ -40,10 +40,15 @@ public class SocialDiagnoseService { if (!flag.equals("1")) { continue; } + SocialDiagnose socialDiagnose = new SocialDiagnose(); String code = line_array[10]; + String name = line_array[11]; + if (code==null || code.isEmpty() || name == null || name.isEmpty()){ + continue; + } socialDiagnose.setCode(code); - socialDiagnose.setName(line_array[11]); + socialDiagnose.setName(name); socialDiagnose.setVersionName(line_array[22]); socialDiagnose.setCreateDatetime(LocalDateTime.parse(line_array[20], dateTimeFormatter)); socialDiagnose.setUpdateDatetime(LocalDateTime.parse(line_array[21], dateTimeFormatter)); @@ -54,7 +59,7 @@ public class SocialDiagnoseService { queryWrapper.in("code", codeList); socialDiagnoseMapper.delete(queryWrapper); socialDiagnoseMapper.insert(list, 100); - socialDirectoryVersionService.setSocialDirectoryVersion(type, version_name, list.get(0).getVersionName(), list.size()); + socialDirectoryVersionService.setSocialDirectoryVersion(1307, version_name, list.get(0).getVersionName(), list.size()); return list.get(0).getVersionName(); } diff --git a/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java b/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java index c8fcfdc..1b1848f 100644 --- a/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java +++ b/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java @@ -15,8 +15,8 @@ class ServerApplicationTests { private SocialDiagnoseService socialDiagnoseService; @Test void contextLoads() { - socialDiagnoseService.download(1307,"0"); - +// medicalRecordService.uploadDiagnosis("ZD20250424105340459612"); + socialDiagnoseService.download("0"); }