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; package com.syjiaer.clinic.server.common.api.input;
import com.syjiaer.clinic.server.common.api.annotations.IMField; import com.syjiaer.clinic.server.common.api.annotations.IMField;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -47,7 +48,7 @@ public class IM2203A extends BaseInputModel{
@IMField(key = "geso_val", name = "孕周数") @IMField(key = "geso_val", name = "孕周数")
private BigDecimal geso_val; private BigDecimal geso_val;
@IMField(key = "exp_content", name = "字段扩展") @IMField(key = "exp_content", name = "字段扩展")
private String exp_content; private ExpContent exp_content;
} }
@Getter @Getter
@Setter @Setter
@ -71,6 +72,27 @@ public class IM2203A extends BaseInputModel{
@IMField(key = "vali_flag", name = "有效标志", required = true) @IMField(key = "vali_flag", name = "有效标志", required = true)
private String vali_flag; 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.common.vo.Result;
import com.syjiaer.clinic.server.controller.BaseController; import com.syjiaer.clinic.server.controller.BaseController;
import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto; 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 com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -48,4 +48,12 @@ public class MedicalRecordController extends BaseController {
Integer regisId = parmsUtil.getInteger("regisId", "挂单id不能为空"); Integer regisId = parmsUtil.getInteger("regisId", "挂单id不能为空");
return success(medicalRecordService.getDetailByRegisId(regisId)); 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.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -39,6 +40,6 @@ public class Diagnosis implements Serializable {
@ApiModelProperty("病例流水号") @ApiModelProperty("病例流水号")
private String code; private String code;
@ApiModelProperty("医生id") @ApiModelProperty("创建时间")
private Integer dockerId; private LocalDateTime createTime;
} }

View File

@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -57,9 +56,6 @@ public class DiagnosisMedicalRecord implements Serializable {
@ApiModelProperty("诊断概况") @ApiModelProperty("诊断概况")
private String diagnosisSummary; private String diagnosisSummary;
@ApiModelProperty("创建日期")
private LocalDateTime createDatetime;
@ApiModelProperty("诊断类别") @ApiModelProperty("诊断类别")
private String diagType; 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 * @since 2025-04-23
*/ */
public interface DiagnosisMedicalItemListMapper extends BaseMapper<DiagnosisMedicalItemList> { 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); 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.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.diagnosis.dto.GoodsRetailDto; 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.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.OrganizationMember;
import com.syjiaer.clinic.server.entity.organization.OrganizationSection; import com.syjiaer.clinic.server.entity.organization.OrganizationSection;
import com.syjiaer.clinic.server.entity.patient.PatientRegistration; import com.syjiaer.clinic.server.entity.patient.PatientRegistration;
@ -88,9 +88,11 @@ public class MedicalRecordService extends BaseService {
//诊断主表 //诊断主表
Diagnosis diagnosis = new Diagnosis(); Diagnosis diagnosis = new Diagnosis();
String code = StringUtil.getCode("ZD"); String code = StringUtil.getCode("ZD");
BeanUtils.copyProperties(saveDto, Diagnosis.class); LocalDateTime now = LocalDateTime.now();
BeanUtils.copyProperties(saveDto, diagnosis);
if (diagnosis.getId() == null){ if (diagnosis.getId() == null){
diagnosis.setCode(code); diagnosis.setCode(code);
diagnosis.setCreateTime(now);
}else { }else {
code = diagnosis.getCode(); code = diagnosis.getCode();
} }
@ -100,6 +102,7 @@ public class MedicalRecordService extends BaseService {
ManagerUser managerUser = getManagerUser(); ManagerUser managerUser = getManagerUser();
DiagnosisMedicalRecord diagnosisMedicalRecord = new DiagnosisMedicalRecord(); DiagnosisMedicalRecord diagnosisMedicalRecord = new DiagnosisMedicalRecord();
BeanUtils.copyProperties(saveDto.getDiagnosisMedicalRecord(), diagnosisMedicalRecord); BeanUtils.copyProperties(saveDto.getDiagnosisMedicalRecord(), diagnosisMedicalRecord);
diagnosisMedicalRecord.setDiagnosisCode(code);
diagnosisMedicalRecordMapper.insertOrUpdate(diagnosisMedicalRecord); diagnosisMedicalRecordMapper.insertOrUpdate(diagnosisMedicalRecord);
//服务项目表 //服务项目表
@ -154,22 +157,24 @@ public class MedicalRecordService extends BaseService {
*/ */
public List<MedicalRecordVo> listByPatientId(Integer patientId) { public List<MedicalRecordVo> listByPatientId(Integer patientId) {
QueryWrapper<DiagnosisMedicalRecord> query = new QueryWrapper<>(); QueryWrapper<Diagnosis> query = new QueryWrapper<>();
query.eq("patient_id", patientId); query.eq("patient_id", patientId);
query.orderByDesc("create_datetime"); query.orderByDesc("create_time");
query.last("limit 10"); query.last("limit 10");
List<DiagnosisMedicalRecord> mrList = diagnosisMedicalRecordMapper.selectList(query); List<Diagnosis> diaList = diagnosisMapper.selectList(query);
List<MedicalRecordVo> mrvList = new ArrayList<>(); List<MedicalRecordVo> mrvList = new ArrayList<>();
for (DiagnosisMedicalRecord diagnosisMedicalRecord : mrList) { for (Diagnosis diaItem : diaList) {
QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
MedicalRecordVo vo = new MedicalRecordVo(); MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(diagnosisMedicalRecord, vo); BeanUtils.copyProperties(diaItem, vo);
severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery); DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diaItem.getCode());
vo.setServiceDetail(serverDetail); vo.setDiagnosisMedicalRecord(diagnosisMedicalRecord);
QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId()); List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.listByDiagnosisCode(diaItem.getCode());
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery); vo.setItemDetail(serverDetail);
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.listByDiagnosisCode(diaItem.getCode());
vo.setGoodsDetail(goodsDetail); vo.setGoodsDetail(goodsDetail);
mrvList.add(vo); mrvList.add(vo);
} }
@ -182,19 +187,21 @@ public class MedicalRecordService extends BaseService {
* @return * @return
*/ */
public MedicalRecordVo getDetailByRegisId(Integer regisId) { 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(); MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(mr, vo);
severQuery.eq("medical_record_id", mr.getId()); QueryWrapper<Diagnosis> query = new QueryWrapper<>();
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery); query.eq("registration_id", regisId);
vo.setServiceDetail(serverDetail); Diagnosis diagnosis = diagnosisMapper.selectOne(query);
QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>(); BeanUtils.copyProperties(diagnosis, vo);
goodsQuery.eq("medical_record_id", mr.getId());
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery); 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); vo.setGoodsDetail(goodsDetail);
return vo; return vo;
} }
@ -225,6 +232,10 @@ public class MedicalRecordService extends BaseService {
mdtrtinfo.setPsn_no(patientRegistration.getPsnNo()); mdtrtinfo.setPsn_no(patientRegistration.getPsnNo());
mdtrtinfo.setMed_type(config.get("social","medType")); mdtrtinfo.setMed_type(config.get("social","medType"));
mdtrtinfo.setBegntime(curTime); 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); im2203A.setMdtrtinfo(mdtrtinfo);
JSONArray jsonArray = JSONArray.parseArray(diagnosisMedicalRecord.getDiagnosisDetail()); JSONArray jsonArray = JSONArray.parseArray(diagnosisMedicalRecord.getDiagnosisDetail());
int i =0; int i =0;
@ -245,6 +256,7 @@ public class MedicalRecordService extends BaseService {
diagList.add(diag); diagList.add(diag);
} }
im2203A.setDiseinfo(diagList); im2203A.setDiseinfo(diagList);
socialRequest.call2203A(im2203A); socialRequest.call2203A(im2203A);

View File

@ -30,8 +30,8 @@ public class SocialDiagnoseService {
@Autowired @Autowired
private SocialDirectoryVersionService socialDirectoryVersionService; private SocialDirectoryVersionService socialDirectoryVersionService;
public String download(int type, String version_name) { public String download( String version_name) {
List<String[]> tab_list = httpUtil.download(version_name, type); List<String[]> tab_list = httpUtil.download(version_name, 1307);
DateTimeFormatter dateTimeFormatter = DateUtil.getDateTimeFormatter(DateUtil.DATE_TIME_FORMAT); DateTimeFormatter dateTimeFormatter = DateUtil.getDateTimeFormatter(DateUtil.DATE_TIME_FORMAT);
List<SocialDiagnose> list = new ArrayList<>(); List<SocialDiagnose> list = new ArrayList<>();
List<String> codeList = new ArrayList<>(); List<String> codeList = new ArrayList<>();
@ -40,10 +40,15 @@ public class SocialDiagnoseService {
if (!flag.equals("1")) { if (!flag.equals("1")) {
continue; continue;
} }
SocialDiagnose socialDiagnose = new SocialDiagnose(); SocialDiagnose socialDiagnose = new SocialDiagnose();
String code = line_array[10]; String code = line_array[10];
String name = line_array[11];
if (code==null || code.isEmpty() || name == null || name.isEmpty()){
continue;
}
socialDiagnose.setCode(code); socialDiagnose.setCode(code);
socialDiagnose.setName(line_array[11]); socialDiagnose.setName(name);
socialDiagnose.setVersionName(line_array[22]); socialDiagnose.setVersionName(line_array[22]);
socialDiagnose.setCreateDatetime(LocalDateTime.parse(line_array[20], dateTimeFormatter)); socialDiagnose.setCreateDatetime(LocalDateTime.parse(line_array[20], dateTimeFormatter));
socialDiagnose.setUpdateDatetime(LocalDateTime.parse(line_array[21], dateTimeFormatter)); socialDiagnose.setUpdateDatetime(LocalDateTime.parse(line_array[21], dateTimeFormatter));
@ -54,7 +59,7 @@ public class SocialDiagnoseService {
queryWrapper.in("code", codeList); queryWrapper.in("code", codeList);
socialDiagnoseMapper.delete(queryWrapper); socialDiagnoseMapper.delete(queryWrapper);
socialDiagnoseMapper.insert(list, 100); 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(); return list.get(0).getVersionName();
} }

View File

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