This commit is contained in:
LiJianZhao 2025-04-30 14:48:56 +08:00
parent 885a482bf3
commit e35fc0536e
4 changed files with 90 additions and 37 deletions

View File

@ -108,4 +108,5 @@ public class ChargeController extends BaseController {
} }
} }

View File

@ -5,6 +5,7 @@ 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.ChargeQueueQuery; import com.syjiaer.clinic.server.entity.diagnosis.dto.ChargeQueueQuery;
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.vo.ChargeQueueVo;
import com.syjiaer.clinic.server.entity.diagnosis.vo.MedicalRecordVo; import com.syjiaer.clinic.server.entity.diagnosis.vo.MedicalRecordVo;
import com.syjiaer.clinic.server.entity.patient.vo.SeeDoctorInfoVo; import com.syjiaer.clinic.server.entity.patient.vo.SeeDoctorInfoVo;
import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService; import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService;
@ -55,7 +56,7 @@ public class MedicalRecordController extends BaseController {
* 获取收费队列 * 获取收费队列
*/ */
@RequestMapping("/getChargeQueue") @RequestMapping("/getChargeQueue")
public Result<Page<MedicalRecordVo>> getChargeQueue() { public Result<Page<ChargeQueueVo>> getChargeQueue() {
ChargeQueueQuery query = parmsUtil.getObject("query", ChargeQueueQuery.class); ChargeQueueQuery query = parmsUtil.getObject("query", ChargeQueueQuery.class);
return success( medicalRecordService.getChargeQueue(query)); return success( medicalRecordService.getChargeQueue(query));
@ -70,5 +71,11 @@ public class MedicalRecordController extends BaseController {
return success( medicalRecordService.getSeeDockerInfo(regisId)); return success( medicalRecordService.getSeeDockerInfo(regisId));
} }
@RequestMapping("/getByDiagnosisCode")
public Result<MedicalRecordVo> getByDiagnosisCode() {
String diagnosisCode = parmsUtil.getString("diagnosisCode", "诊断code不能为空");
return success( medicalRecordService.getByDiagnosisCode(diagnosisCode));
}
} }

View File

@ -0,0 +1,33 @@
package com.syjiaer.clinic.server.entity.diagnosis.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ChargeQueueVo {
@ApiModelProperty("自增id")
private Integer id;
@ApiModelProperty("患者id")
private Integer patientId;
@ApiModelProperty("诊断code")
private String code;
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("患者名称")
private String patientName;
@ApiModelProperty("患者性别")
private Integer patientGender;
}

View File

@ -15,6 +15,7 @@ import com.syjiaer.clinic.server.entity.charge.vo.ChargeItemListVo;
import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis; import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis;
import com.syjiaer.clinic.server.entity.diagnosis.dto.ChargeQueueQuery; import com.syjiaer.clinic.server.entity.diagnosis.dto.ChargeQueueQuery;
import com.syjiaer.clinic.server.entity.diagnosis.dto.ItemRetailDto; import com.syjiaer.clinic.server.entity.diagnosis.dto.ItemRetailDto;
import com.syjiaer.clinic.server.entity.diagnosis.vo.ChargeQueueVo;
import com.syjiaer.clinic.server.entity.goods.Goods; import com.syjiaer.clinic.server.entity.goods.Goods;
import com.syjiaer.clinic.server.entity.item.Item; import com.syjiaer.clinic.server.entity.item.Item;
import com.syjiaer.clinic.server.entity.manager.ManagerUser; import com.syjiaer.clinic.server.entity.manager.ManagerUser;
@ -78,18 +79,19 @@ public class MedicalRecordService extends BaseService {
@Autowired @Autowired
private DiagnosisMapper diagnosisMapper; private DiagnosisMapper diagnosisMapper;
@Autowired @Autowired
private PatientInfoMapper patientInfoMapper; private PatientInfoMapper patientInfoMapper;
/* /*
* 保存 * 保存
* @param saveDto 病历信息 * @param saveDto 病历信息
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void save(MedicalRecordSaveDto saveDto) { public void save(MedicalRecordSaveDto saveDto) {
//改变挂号单状态 //改变挂号单状态
PatientRegistration dbRegis = patientRegistrationMapper.selectById(saveDto.getRegistrationId()); PatientRegistration dbRegis = patientRegistrationMapper.selectById(saveDto.getRegistrationId());
if (dbRegis == null){ if (dbRegis == null) {
throw new MessageException("挂号单不存在"); throw new MessageException("挂号单不存在");
} }
PatientRegistration updateRegis = new PatientRegistration(); PatientRegistration updateRegis = new PatientRegistration();
updateRegis.setId(dbRegis.getId()); updateRegis.setId(dbRegis.getId());
@ -101,17 +103,17 @@ public class MedicalRecordService extends BaseService {
queryWrapper.eq("registration_id", saveDto.getRegistrationId()); queryWrapper.eq("registration_id", saveDto.getRegistrationId());
queryWrapper.last("limit 1"); queryWrapper.last("limit 1");
Diagnosis dbDiagnosis = diagnosisMapper.selectOne(queryWrapper); Diagnosis dbDiagnosis = diagnosisMapper.selectOne(queryWrapper);
if (dbDiagnosis!=null){ if (dbDiagnosis != null) {
diagnosis.setId(dbDiagnosis.getId()); diagnosis.setId(dbDiagnosis.getId());
} }
String code = StringUtil.getCode("ZD"); String code = StringUtil.getCode("ZD");
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
BeanUtils.copyProperties(saveDto, diagnosis); BeanUtils.copyProperties(saveDto, diagnosis);
diagnosis.setStatus(0); diagnosis.setStatus(0);
if (diagnosis.getId() == null){ if (diagnosis.getId() == null) {
diagnosis.setCode(code); diagnosis.setCode(code);
diagnosis.setCreateTime(now); diagnosis.setCreateTime(now);
}else { } else {
code = diagnosis.getCode(); code = diagnosis.getCode();
} }
@ -137,8 +139,8 @@ public class MedicalRecordService extends BaseService {
itemDetail.setSocialCode(dbItem.getItemSocialCode()); itemDetail.setSocialCode(dbItem.getItemSocialCode());
itemDetail.setUnit(dbItem.getUnit()); itemDetail.setUnit(dbItem.getUnit());
itemDetail.setUnitPrice(dbItem.getUnitPrice()); itemDetail.setUnitPrice(dbItem.getUnitPrice());
if (item.getSelectedNum() == null ||item.getSelectedNum() <= 0){ if (item.getSelectedNum() == null || item.getSelectedNum() <= 0) {
throw new MessageException("["+item.getItemName()+"]数量为0"); throw new MessageException("[" + item.getItemName() + "]数量为0");
} }
itemDetail.setNumber(item.getSelectedNum()); itemDetail.setNumber(item.getSelectedNum());
itemLists.add(itemDetail); itemLists.add(itemDetail);
@ -157,8 +159,8 @@ public class MedicalRecordService extends BaseService {
goodsDetail.setUnit(goodsRetailDto.getSelectedUnit()); goodsDetail.setUnit(goodsRetailDto.getSelectedUnit());
goodsDetail.setUnitPrice(goodsRetailDto.getSelectedPrice()); goodsDetail.setUnitPrice(goodsRetailDto.getSelectedPrice());
goodsDetail.setNumber(goodsRetailDto.getSelectedNum()); goodsDetail.setNumber(goodsRetailDto.getSelectedNum());
if (goodsRetailDto.getSelectedNum() == null ||goodsRetailDto.getSelectedNum() <= 0){ if (goodsRetailDto.getSelectedNum() == null || goodsRetailDto.getSelectedNum() <= 0) {
throw new MessageException("["+goodsRetailDto.getName()+"]数量为0"); throw new MessageException("[" + goodsRetailDto.getName() + "]数量为0");
} }
goodsLists.add(goodsDetail); goodsLists.add(goodsDetail);
} }
@ -169,6 +171,7 @@ public class MedicalRecordService extends BaseService {
/** /**
* 根据患者的id查询病历 * 根据患者的id查询病历
*
* @param patientId * @param patientId
* @return * @return
*/ */
@ -200,6 +203,7 @@ public class MedicalRecordService extends BaseService {
/** /**
* 根据挂单号回显病历信息 * 根据挂单号回显病历信息
*
* @param regisId * @param regisId
* @return * @return
*/ */
@ -227,18 +231,18 @@ public class MedicalRecordService extends BaseService {
return vo; return vo;
} }
public void uploadDiagnosis(String diagnosisCode){ public void uploadDiagnosis(String diagnosisCode) {
Diagnosis diagnosis = diagnosisMapper.selectByCode(diagnosisCode); Diagnosis diagnosis = diagnosisMapper.selectByCode(diagnosisCode);
if (diagnosis == null){ if (diagnosis == null) {
throw new MessageException("诊断不存在"); throw new MessageException("诊断不存在");
} }
DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diagnosisCode); DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diagnosisCode);
if (diagnosisMedicalRecord == null){ if (diagnosisMedicalRecord == null) {
throw new MessageException("病历不存在"); throw new MessageException("病历不存在");
} }
PatientRegistration patientRegistration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId()); PatientRegistration patientRegistration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
if (patientRegistration == null){ if (patientRegistration == null) {
throw new MessageException("挂号单不存在"); throw new MessageException("挂号单不存在");
} }
OrganizationSection section = organizationSectionMapper.selectById(patientRegistration.getOrganizationSectionId()); OrganizationSection section = organizationSectionMapper.selectById(patientRegistration.getOrganizationSectionId());
@ -251,7 +255,7 @@ public class MedicalRecordService extends BaseService {
IM2203A.Mdtrtinfo mdtrtinfo = new IM2203A.Mdtrtinfo(); IM2203A.Mdtrtinfo mdtrtinfo = new IM2203A.Mdtrtinfo();
mdtrtinfo.setMdtrt_id(patientRegistration.getMdtrtId()); mdtrtinfo.setMdtrt_id(patientRegistration.getMdtrtId());
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(); IM2203A.ExpContent expContent = new IM2203A.ExpContent();
expContent.setTrum_flag("0"); expContent.setTrum_flag("0");
@ -259,9 +263,9 @@ public class MedicalRecordService extends BaseService {
mdtrtinfo.setExp_content(expContent); 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;
List<IM2203A.Diseinfo> diagList = new ArrayList<>(); List<IM2203A.Diseinfo> diagList = new ArrayList<>();
for (Object object : jsonArray){ for (Object object : jsonArray) {
i++; i++;
JSONObject json = (JSONObject) object; JSONObject json = (JSONObject) object;
IM2203A.Diseinfo diag = new IM2203A.Diseinfo(); IM2203A.Diseinfo diag = new IM2203A.Diseinfo();
@ -282,24 +286,27 @@ public class MedicalRecordService extends BaseService {
} }
/*
获取收费队列
*/ public Page<ChargeQueueVo> getChargeQueue(ChargeQueueQuery query) {
public Page<MedicalRecordVo> getChargeQueue(ChargeQueueQuery query) {
QueryWrapper<Diagnosis> queryWrapper = new QueryWrapper<>(); QueryWrapper<Diagnosis> queryWrapper = new QueryWrapper<>();
if (query.getStatus() != null){ if (query.getStatus() != null) {
queryWrapper.eq("status", query.getStatus()); queryWrapper.eq("status", query.getStatus());
} }
Page<Diagnosis> diagnosisList =pageHelper(query.getPageNum(), query.getPageSize(),queryWrapper,diagnosisMapper,"create_time", false); Page<Diagnosis> diagnosisList = pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, diagnosisMapper, "create_time", false);
List<MedicalRecordVo> list = new ArrayList<>(); List<ChargeQueueVo> list = new ArrayList<>();
for (Diagnosis diagnosis : diagnosisList.getList()){ for (Diagnosis diagnosis : diagnosisList.getList()) {
MedicalRecordVo vo = new MedicalRecordVo(); ChargeQueueVo vo = new ChargeQueueVo();
vo = getDetailByRegisId(diagnosis.getRegistrationId()); BeanUtils.copyProperties(diagnosis, vo);
PatientRegistration registration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
vo.setPatientId(registration.getPatientInfoId());
vo.setPatientName(registration.getName());
vo.setPatientGender(registration.getGender());
list.add(vo); list.add(vo);
} }
Page<MedicalRecordVo> page = new Page<>(); Page<ChargeQueueVo> page = new Page<>();
page.setList(list); page.setList(list);
page.setTotal_page(diagnosisList.getTotal_page()); page.setTotal_page(diagnosisList.getTotal_page());
page.setTotal_count(diagnosisList.getTotal_count()); page.setTotal_count(diagnosisList.getTotal_count());
@ -309,7 +316,7 @@ public class MedicalRecordService extends BaseService {
public SeeDoctorInfoVo getSeeDockerInfo(Integer regisId) { public SeeDoctorInfoVo getSeeDockerInfo(Integer regisId) {
PatientRegistration registration = patientRegistrationMapper.selectById(regisId); PatientRegistration registration = patientRegistrationMapper.selectById(regisId);
if (registration == null){ if (registration == null) {
throw new MessageException("挂号单不存在"); throw new MessageException("挂号单不存在");
} }
SeeDoctorInfoVo vo = new SeeDoctorInfoVo(); SeeDoctorInfoVo vo = new SeeDoctorInfoVo();
@ -318,19 +325,24 @@ public class MedicalRecordService extends BaseService {
OrganizationMember docker = organizationMemberMapper.selectById(registration.getOrganizationDoctorId()); OrganizationMember docker = organizationMemberMapper.selectById(registration.getOrganizationDoctorId());
vo.setDockerId(docker.getId()); vo.setDockerId(docker.getId());
vo.setDockerName(docker.getName()); vo.setDockerName(docker.getName());
if (docker.getSectionId() != null){ if (docker.getSectionId() != null) {
OrganizationSection section = organizationSectionMapper.selectById(docker.getSectionId()); OrganizationSection section = organizationSectionMapper.selectById(docker.getSectionId());
vo.setSectionName(section.getName()); vo.setSectionName(section.getName());
} }
QueryWrapper<Diagnosis> diagnosisQueryWrapper = new QueryWrapper<>(); QueryWrapper<Diagnosis> diagnosisQueryWrapper = new QueryWrapper<>();
diagnosisQueryWrapper.eq("patient_id",vo.getPatientInfo().getId()); diagnosisQueryWrapper.eq("patient_id", vo.getPatientInfo().getId());
diagnosisQueryWrapper.orderByDesc("create_time"); diagnosisQueryWrapper.orderByDesc("create_time");
List<Diagnosis> diagnosisList = diagnosisMapper.selectList(diagnosisQueryWrapper); List<Diagnosis> diagnosisList = diagnosisMapper.selectList(diagnosisQueryWrapper);
if (!diagnosisList.isEmpty()){ if (!diagnosisList.isEmpty()) {
vo.setLastSeeDoctorTime(diagnosisList.get(0).getCreateTime()); vo.setLastSeeDoctorTime(diagnosisList.get(0).getCreateTime());
vo.setSeeDoctorCount(diagnosisList.size()); vo.setSeeDoctorCount(diagnosisList.size());
} }
vo.setSocialBalance(BigDecimal.ZERO); vo.setSocialBalance(BigDecimal.ZERO);
return vo; return vo;
} }
public MedicalRecordVo getByDiagnosisCode(String diagnosisCode) {
Diagnosis diagnosis = diagnosisMapper.selectByCode(diagnosisCode);
return getDetailByRegisId(diagnosis.getRegistrationId());
}
} }