This commit is contained in:
LiJianZhao 2025-04-24 11:51:02 +08:00
parent e8736a3b3f
commit 23d3fc0f90
11 changed files with 131 additions and 102 deletions

View File

@ -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;
}
}

View File

@ -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<MedicalRecordVo> getChargeQueue() {
//
//
// }
}

View File

@ -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;
}

View File

@ -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;

View File

@ -0,0 +1,7 @@
package com.syjiaer.clinic.server.entity.diagnosis.dto;
public class ChargeQueueQuery {
private String patientName;
private Integer pageNum;
private Integer pageSize;
}

View File

@ -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<DiagnosisMedicalItemList> serviceDetail;
@ApiModelProperty("药品耗材")
private List<DiagnosisMedicalGoodsList> goodsDetail;
}

View File

@ -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<DiagnosisMedicalItemList> itemDetail;
@ApiModelProperty("药品耗材")
private List<DiagnosisMedicalGoodsList> goodsDetail;
}

View File

@ -16,7 +16,7 @@ import java.util.List;
* @since 2025-04-23
*/
public interface DiagnosisMedicalItemListMapper extends BaseMapper<DiagnosisMedicalItemList> {
@Select("select * from diagnosis_medical_item_list where medical_record_id = #{medicalRecordId}")
@Select("select * from diagnosis_medical_item_list where diagnosis_code = #{medicalRecordId}")
List<DiagnosisMedicalItemList> listByDiagnosisCode(String code);
}

View File

@ -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<MedicalRecordVo> listByPatientId(Integer patientId) {
QueryWrapper<DiagnosisMedicalRecord> query = new QueryWrapper<>();
QueryWrapper<Diagnosis> query = new QueryWrapper<>();
query.eq("patient_id", patientId);
query.orderByDesc("create_datetime");
query.orderByDesc("create_time");
query.last("limit 10");
List<DiagnosisMedicalRecord> mrList = diagnosisMedicalRecordMapper.selectList(query);
List<Diagnosis> diaList = diagnosisMapper.selectList(query);
List<MedicalRecordVo> mrvList = new ArrayList<>();
for (DiagnosisMedicalRecord diagnosisMedicalRecord : mrList) {
QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
for (Diagnosis diaItem : diaList) {
MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(diagnosisMedicalRecord, vo);
severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery);
vo.setServiceDetail(serverDetail);
QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery);
BeanUtils.copyProperties(diaItem, vo);
DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diaItem.getCode());
vo.setDiagnosisMedicalRecord(diagnosisMedicalRecord);
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.listByDiagnosisCode(diaItem.getCode());
vo.setItemDetail(serverDetail);
List<DiagnosisMedicalGoodsList> 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<DiagnosisMedicalRecord> query = new QueryWrapper<>();
query.eq("registration_id", regisId);
DiagnosisMedicalRecord mr = diagnosisMedicalRecordMapper.selectOne(query);
QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(mr, vo);
severQuery.eq("medical_record_id", mr.getId());
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery);
vo.setServiceDetail(serverDetail);
QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
goodsQuery.eq("medical_record_id", mr.getId());
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery);
QueryWrapper<Diagnosis> 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<DiagnosisMedicalItemList> itemDetail = diagnosisMedicalItemListMapper.listByDiagnosisCode(diagnosis.getCode());
vo.setItemDetail(itemDetail);
List<DiagnosisMedicalGoodsList> 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);

View File

@ -30,8 +30,8 @@ public class SocialDiagnoseService {
@Autowired
private SocialDirectoryVersionService socialDirectoryVersionService;
public String download(int type, String version_name) {
List<String[]> tab_list = httpUtil.download(version_name, type);
public String download( String version_name) {
List<String[]> tab_list = httpUtil.download(version_name, 1307);
DateTimeFormatter dateTimeFormatter = DateUtil.getDateTimeFormatter(DateUtil.DATE_TIME_FORMAT);
List<SocialDiagnose> list = new ArrayList<>();
List<String> 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();
}

View File

@ -15,8 +15,8 @@ class ServerApplicationTests {
private SocialDiagnoseService socialDiagnoseService;
@Test
void contextLoads() {
socialDiagnoseService.download(1307,"0");
// medicalRecordService.uploadDiagnosis("ZD20250424105340459612");
socialDiagnoseService.download("0");
}