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