diff --git a/src/main/java/com/docus/server/collection/dto/BedDoctorDto.java b/src/main/java/com/docus/server/collection/dto/BedDoctorDto.java new file mode 100644 index 0000000..eba6e88 --- /dev/null +++ b/src/main/java/com/docus/server/collection/dto/BedDoctorDto.java @@ -0,0 +1,26 @@ +package com.docus.server.collection.dto; + +import lombok.Data; + +@Data +public class BedDoctorDto { + private String serialId; + private String receive; + private String send; + /** + * 病案号 + */ + private String inpatientNo; + /** + * 住院次数 + */ + private Integer admissTimes; + /** + *管床医生工号 + */ + private String bedDoctor; + /** + *管床医生姓名 + */ + private String bedDoctorName; +} diff --git a/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java b/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java index b03dede..3024af5 100644 --- a/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java @@ -30,6 +30,10 @@ public interface TBasicMapper { String getPatientId(@Param("jzh") String jzh); + List getPatientIds(@Param("inpatientNo") String inpatientNo,@Param("admissTimes") Integer admissTimes); + + Integer setBedDoctor(@Param("patientIds") List patientIds,@Param("bedDoctor") String bedDoctor,@Param("bedDoctorName") String bedDoctorName); + Integer insert(@Param("tBasic") TBasic tBasic); Integer insertExtend(@Param("tBasicExtend") TBasicExtend tBasicExtend); diff --git a/src/main/java/com/docus/server/collection/service/ITBasicService.java b/src/main/java/com/docus/server/collection/service/ITBasicService.java index 53447bc..2096d09 100644 --- a/src/main/java/com/docus/server/collection/service/ITBasicService.java +++ b/src/main/java/com/docus/server/collection/service/ITBasicService.java @@ -1,5 +1,6 @@ package com.docus.server.collection.service; +import com.docus.server.collection.dto.BedDoctorDto; import com.docus.server.collection.dto.TBasicDto; import com.docus.server.collection.entity.TBasic; @@ -13,6 +14,8 @@ public interface ITBasicService { public void updateAdmissTBasic(TBasicDto dto) throws Exception; + public void setBedDoctor(BedDoctorDto dto) throws Exception; + /** * 根据病案主键,查询母亲信息 * @param babyPatientId 病案主键 diff --git a/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java b/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java index 300d3bf..952b200 100644 --- a/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java +++ b/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java @@ -5,6 +5,7 @@ import com.docus.core.util.DateUtil; import com.docus.core.util.Func; import com.docus.infrastructure.core.exception.BaseException; import com.docus.infrastructure.redis.service.IdService; +import com.docus.server.collection.dto.BedDoctorDto; import com.docus.server.collection.dto.TBasicDto; import com.docus.server.collection.entity.TBasic; import com.docus.server.collection.entity.TBasicExtend; @@ -339,6 +340,33 @@ public class TBasicServiceImpl implements ITBasicService { confirmAndUpdIcuRecordState(tBasic.getInpatientNo(), tBasic.getAdmissTimes()); } + @Override + public void setBedDoctor(BedDoctorDto dto) throws Exception { + String inpatientNo = dto.getInpatientNo(); + Integer admissTimes = dto.getAdmissTimes(); + String bedDoctor = dto.getBedDoctor(); + String bedDoctorName = dto.getBedDoctorName(); + if(Func.isEmpty(inpatientNo)){ + throw new BaseException("病案号为空,更新失败"); + } + if(Func.isEmpty(admissTimes)){ + throw new BaseException("住院次数为空,更新失败"); + } + if(Func.isEmpty(bedDoctor)){ + throw new BaseException("管床医生工号为空,更新失败"); + } + if(Func.isEmpty(bedDoctorName)){ + throw new BaseException("管床医生姓名为空,更新失败"); + } + //判断病案是否存在 + List patientIds = tBasicMapper.getPatientIds(inpatientNo,admissTimes); + if (Func.isEmpty(patientIds)) { + throw new BaseException("数据不存在,更新失败"); + } + tBasicMapper.setBedDoctor(patientIds,bedDoctor,bedDoctorName); + log.info("主键{}管床医生更新成功",patientIds.toString()); + } + @Override public TBasic getSdRyParentPatientInfo(String babyPatientId) { diff --git a/src/main/java/com/docus/server/collection/webservice/BasicService.java b/src/main/java/com/docus/server/collection/webservice/BasicService.java index 0da1ce8..1c498d7 100644 --- a/src/main/java/com/docus/server/collection/webservice/BasicService.java +++ b/src/main/java/com/docus/server/collection/webservice/BasicService.java @@ -23,4 +23,10 @@ public interface BasicService { * @description住院就诊更新基础数据 */ public String updateAdmissTBasic(String message); + + /** + * @description设置管床医生数据 + */ + public String setBedDoctor(String message); + } diff --git a/src/main/java/com/docus/server/collection/webservice/ReceiveServer.java b/src/main/java/com/docus/server/collection/webservice/ReceiveServer.java index 91f347f..1f44819 100644 --- a/src/main/java/com/docus/server/collection/webservice/ReceiveServer.java +++ b/src/main/java/com/docus/server/collection/webservice/ReceiveServer.java @@ -31,6 +31,12 @@ public interface ReceiveServer { */ public String updateAdmissTBasic(String message); + /** + * @description设置管床医生数据 + */ + public String setBedDoctor(String message); + + /** * 用户信息接收,进行操作 * diff --git a/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java b/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java index dc2223e..144afdb 100644 --- a/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java +++ b/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java @@ -1,7 +1,9 @@ package com.docus.server.collection.webservice.impl; +import cn.hutool.core.util.NumberUtil; import com.docus.core.util.Func; import com.docus.core.util.ObjectUtil; +import com.docus.server.collection.dto.BedDoctorDto; import com.docus.server.collection.dto.TBasicDto; import com.docus.server.collection.service.ITBasicService; import com.docus.server.collection.util.Result; @@ -111,7 +113,26 @@ public class BasicServiceImpl implements BasicService { return Result.failed(tBasicDto.getSerialId(),e.getMessage(),tBasicDto.getReceive(),tBasicDto.getSend()); } return Result.success(tBasicDto.getSerialId(),tBasicDto.getReceive(),tBasicDto.getSend()); + } + @Override + public String setBedDoctor(String message) { + log.info("设置管床医生数据:{}", message); + if (Func.isEmpty(message)) { + return Result.failed(null,"参数为空",null,null); + } + //解析xml + BedDoctorDto bedDoctorDto = null; + try { + bedDoctorDto=getBedDoctorDto(message); + //持久化 + tBasicService.setBedDoctor(bedDoctorDto); + }catch (Exception e){ + e.printStackTrace(); + log.error(e.getMessage(), e); + return Result.failed(bedDoctorDto.getSerialId(),e.getMessage(),bedDoctorDto.getReceive(),bedDoctorDto.getSend()); + } + return Result.success(bedDoctorDto.getSerialId(),bedDoctorDto.getReceive(),bedDoctorDto.getSend()); } public TBasicDto getNewTBasicDto(String str) { @@ -773,6 +794,64 @@ public class BasicServiceImpl implements BasicService { } return dto; } + public BedDoctorDto getBedDoctorDto(String str) { + XmlUtil xml=XmlUtil.of(str); + //id-消息流水号 + String serialId=null; + Node serialIdNode = xml.getNode("/PRPA_HIP1233/id/@extension"); + if(Func.isNotEmpty(serialIdNode)){ + serialId=serialIdNode.getNodeValue(); + } + //接受方 + String receive=null; + Node receiveNode = xml.getNode("/PRPA_HIP1233/receiver/device/id/item/@extension"); + if(Func.isNotEmpty(receiveNode)){ + receive=receiveNode.getNodeValue(); + } + //发送方 + String send=null; + Node sendNode = xml.getNode("/PRPA_HIP1233/sender/device/id/item/@extension"); + if(Func.isNotEmpty(sendNode)){ + send=sendNode.getNodeValue(); + } + //病案号 + String inpatientNo=null; + Node inpatientNoNode = xml.getNode("/PRPA_HIP1233/controlActProcess/ihNum/@value"); + if(Func.isNotEmpty(serialIdNode)){ + inpatientNo=inpatientNoNode.getNodeValue(); + } + //住院次数 + Integer admissTimes=null; + Node admissTimesNode = xml.getNode("/PRPA_HIP1233/controlActProcess/ihTimes/@value"); + if(Func.isNotEmpty(receiveNode)){ + String nodeValue = admissTimesNode.getNodeValue(); + if(ObjectUtil.isNotEmpty(nodeValue)&&NumberUtil.isInteger(nodeValue)){ + admissTimes=Integer.parseInt(nodeValue); + } + } + //管床医生工号 + String bedDoctor=null; + Node bedDoctorNode = xml.getNode("/PRPA_HIP1233/controlActProcess/referPhysician/@code"); + if(Func.isNotEmpty(sendNode)){ + bedDoctor=bedDoctorNode.getNodeValue(); + } + //管床医生姓名 + String bedDoctorName=null; + Node bedDoctorNameNode = xml.getNode("/PRPA_HIP1233/controlActProcess/referPhysician/@value"); + if(Func.isNotEmpty(sendNode)){ + bedDoctorName=bedDoctorNameNode.getNodeValue(); + } + //设置dto + BedDoctorDto dto=new BedDoctorDto(); + dto.setSerialId(serialId); + dto.setSend(send); + dto.setReceive(receive); + dto.setInpatientNo(inpatientNo); + dto.setAdmissTimes(admissTimes); + dto.setBedDoctor(bedDoctor); + dto.setBedDoctorName(bedDoctorName); + return dto; + } } diff --git a/src/main/java/com/docus/server/collection/webservice/impl/ReceiveServerImpl.java b/src/main/java/com/docus/server/collection/webservice/impl/ReceiveServerImpl.java index baedc76..6964e50 100644 --- a/src/main/java/com/docus/server/collection/webservice/impl/ReceiveServerImpl.java +++ b/src/main/java/com/docus/server/collection/webservice/impl/ReceiveServerImpl.java @@ -56,6 +56,11 @@ public class ReceiveServerImpl implements ReceiveServer { return basicService.updateAdmissTBasic(message) ; } + @Override + public String setBedDoctor(String message) { + return basicService.setBedDoctor(message); + } + @Override public String userModify(String receiveUser) { return userServer.userModify(receiveUser); diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 4deb7a7..18b7a9d 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -124,6 +124,14 @@ UPDATE `docus_medicalrecord`.`t_basic` set nurs_collect = #{state} where patient_id=#{patientId} + + UPDATE `docus_medicalrecord`.`t_basic` set bed_doctor = #{bedDoctor}, + bed_doctor_name = #{bedDoctorName} + where patient_id in + + #{val} + + - +