diff --git a/src/main/java/com/docus/server/AppRunBootstrap.java b/src/main/java/com/docus/server/AppRunBootstrap.java index 9bc1cf8..8b99eeb 100644 --- a/src/main/java/com/docus/server/AppRunBootstrap.java +++ b/src/main/java/com/docus/server/AppRunBootstrap.java @@ -1,6 +1,12 @@ package com.docus.server; +import com.docus.core.util.Func; +import com.docus.core.util.SpringUtils; +import com.docus.infrastructure.web.api.CommonResult; +import com.docus.server.message.feign.dto.HospitalSubmitNodeLogAddDTO; +import com.docus.server.message.feign.enums.HospitalSubmitNodeEnum; +import com.docus.server.message.feign.service.HospitalSubmitNodeServiceApi; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; @@ -8,13 +14,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; +import java.util.Date; import java.util.Properties; @Slf4j @SpringBootApplication(scanBasePackages ={"com.docus"}) @MapperScan("com.docus.server.**.mapper") -@EnableFeignClients +@EnableFeignClients(basePackages = {"com.docus"}) @EnableAsync public class AppRunBootstrap { public static void main(String[] args) { @@ -24,4 +31,16 @@ public class AppRunBootstrap { System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); SpringApplication.run(AppRunBootstrap.class, args); } + private static void test(){ + HospitalSubmitNodeServiceApi hospitalSubmitNodeServiceApi = SpringUtils.getBean(HospitalSubmitNodeServiceApi.class); + HospitalSubmitNodeLogAddDTO dto = new HospitalSubmitNodeLogAddDTO(); + dto.setPatientId("1008611"); + dto.setContent(new String[]{"责任护士尔豪","质控护士豪尔", Func.formatDateTime(new Date()),"10"}); + + dto.setCreaterName("护理提交"); + dto.setCreater("护理提交"); + dto.setSubmitNodeEnum(HospitalSubmitNodeEnum.NURSE); + CommonResult commonResult = hospitalSubmitNodeServiceApi.addLog(dto); + log.info(Func.toJson(commonResult)); + } } diff --git a/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java b/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java index 8771100..c331072 100644 --- a/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java +++ b/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java @@ -13,7 +13,10 @@ import com.docus.server.message.dto.MessageResponse; import com.docus.server.message.dto.RecordSubmitDTO; import com.docus.server.message.dto.WsNurseSubmitDTO; import com.docus.server.message.feign.dto.CompensateTasRequest; +import com.docus.server.message.feign.dto.HospitalSubmitNodeLogAddDTO; +import com.docus.server.message.feign.enums.HospitalSubmitNodeEnum; import com.docus.server.message.feign.service.CollectTaskService; +import com.docus.server.message.feign.service.HospitalSubmitNodeServiceApi; import com.docus.server.message.mapper.SdRyIcuMapper; import com.docus.server.message.mapper.TBasicMapper; import com.docus.server.message.rpc.ShunDePeopleRpc; @@ -33,31 +36,16 @@ import java.util.Objects; @Slf4j @Service public class SdBusinessServiceImpl implements SdBusinessService { - + @Autowired private CollectTaskService collectTaskService; - private TBasicMapper tBasicMapper; - private ShunDePeopleRpc shunDePeopleRpc; - private SdRyIcuMapper sdRyIcuMapper; - @Autowired - public void setCollectTaskService(CollectTaskService collectTaskService) { - this.collectTaskService = collectTaskService; - } - + private TBasicMapper tBasicMapper; @Autowired - public void settBasicMapper(TBasicMapper tBasicMapper) { - this.tBasicMapper = tBasicMapper; - } - + private ShunDePeopleRpc shunDePeopleRpc; @Autowired - public void setShunDePeopleRpc(ShunDePeopleRpc shunDePeopleRpc) { - this.shunDePeopleRpc = shunDePeopleRpc; - } - + private SdRyIcuMapper sdRyIcuMapper; @Autowired - public void setSdRyIcuMapper(SdRyIcuMapper sdRyIcuMapper) { - this.sdRyIcuMapper = sdRyIcuMapper; - } + private HospitalSubmitNodeServiceApi hospitalSubmitNodeServiceApi; @Override public MessageResponse recordSubmitHandle(Message message) { @@ -71,6 +59,15 @@ public class SdBusinessServiceImpl implements SdBusinessService { List patientIds = tBasicMapper.getPatientIdsByInpatientNoAndTimes(recordSubmitDto.getInHospIndexNo(), recordSubmitDto.getVisitNo()); verifyPatientIds(patientIds); + // 添加提交记录 + HospitalSubmitNodeLogAddDTO nodeLogAddDTO = new HospitalSubmitNodeLogAddDTO(); + nodeLogAddDTO.setPatientId(patientIds.get(0)); + nodeLogAddDTO.setContent(new String[]{Func.formatDateTime(recordSubmitDto.getSubmitTime())}); + nodeLogAddDTO.setSubmitNodeEnum(HospitalSubmitNodeEnum.EMR); + nodeLogAddDTO.setCreater("电子病历提交"); + nodeLogAddDTO.setCreaterName("电子病历提交"); + hospitalSubmitNodeServiceApi.addLog(nodeLogAddDTO); + if(!isDischargeAndUpdDisDate(patientIds.get(0),recordSubmitDto.getInHospIndexNo(), recordSubmitDto.getVisitNo())){ throw new BaseException("此患者未出院!"); } @@ -109,6 +106,15 @@ public class SdBusinessServiceImpl implements SdBusinessService { List patientIds = tBasicMapper.getPatientIdsByInpatientNoAndTimes(inHospIndexNo, visitNo); verifyPatientIds(patientIds); + // 添加提交内容 + HospitalSubmitNodeLogAddDTO nodeLogAddDTO = new HospitalSubmitNodeLogAddDTO(); + nodeLogAddDTO.setPatientId(patientIds.get(0)); + nodeLogAddDTO.setContent(new String[]{nurseSubmitDTO.getDutyNurse(),nurseSubmitDTO.getQcNurse(),Func.formatDateTime(nurseSubmitDTO.getSubmitTime()),nurseSubmitDTO.getFilesCount().toString()}); + nodeLogAddDTO.setSubmitNodeEnum(HospitalSubmitNodeEnum.NURSE); + nodeLogAddDTO.setCreater("护理提交"); + nodeLogAddDTO.setCreaterName("护理提交"); + hospitalSubmitNodeServiceApi.addLog(nodeLogAddDTO); + if(!isDischargeAndUpdDisDate(patientIds.get(0), inHospIndexNo, visitNo)){ throw new BaseException("此患者未出院!"); } diff --git a/src/main/java/com/docus/server/message/feign/dto/HospitalSubmitNodeLogAddDTO.java b/src/main/java/com/docus/server/message/feign/dto/HospitalSubmitNodeLogAddDTO.java new file mode 100644 index 0000000..7601237 --- /dev/null +++ b/src/main/java/com/docus/server/message/feign/dto/HospitalSubmitNodeLogAddDTO.java @@ -0,0 +1,45 @@ +package com.docus.server.message.feign.dto; + +import com.docus.server.message.feign.enums.HospitalSubmitNodeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +/** + * 医院提交节点日志添加参数 + * + * @author 文永斌 + * @date 2023/9/5 + */ +@Data +@ApiModel("提交节点日志添加参数") +public class HospitalSubmitNodeLogAddDTO { + @NotBlank(message = "提交病案主键不能为空!") + @ApiModelProperty(value = "病案主键",required = true) + private String patientId; + + @NotNull(message = "提交内容不能为空!") + @Size(min = 1,message = "提交内容不能为空!") + @ApiModelProperty(value = "提交内容",required = true) + private String[] content; + + @NotNull(message = "提交节点不能为空!") + @ApiModelProperty(value = "提交节点",required = true) + private HospitalSubmitNodeEnum submitNodeEnum; + + /** + * 创建人 + */ + @ApiModelProperty("创建人") + private String creater; + + /** + * 创建人名称 + */ + @ApiModelProperty("创建人名称") + private String createrName; +} diff --git a/src/main/java/com/docus/server/message/feign/dto/HospitalSubmitNodeLogQrDTO.java b/src/main/java/com/docus/server/message/feign/dto/HospitalSubmitNodeLogQrDTO.java new file mode 100644 index 0000000..b30b256 --- /dev/null +++ b/src/main/java/com/docus/server/message/feign/dto/HospitalSubmitNodeLogQrDTO.java @@ -0,0 +1,22 @@ +package com.docus.server.message.feign.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 医院提交节点日志查询添加参数 + * + * @author 文永斌 + * @date 2023/9/5 + */ +@Data +@ApiModel("提交节点日志查询参数") +public class HospitalSubmitNodeLogQrDTO { + @NotBlank(message = "提交病案主键不能为空!") + @ApiModelProperty(value = "病案主键",required = true) + private String patientId; + +} diff --git a/src/main/java/com/docus/server/message/feign/enums/HospitalSubmitNodeEnum.java b/src/main/java/com/docus/server/message/feign/enums/HospitalSubmitNodeEnum.java new file mode 100644 index 0000000..188fa07 --- /dev/null +++ b/src/main/java/com/docus/server/message/feign/enums/HospitalSubmitNodeEnum.java @@ -0,0 +1,33 @@ +package com.docus.server.message.feign.enums; + +/** + * 医院提交节点枚举 + * + * @author 文永斌 + * @date 2023/9/5 + */ +public enum HospitalSubmitNodeEnum { + /** + * 护理提交节点 + */ + NURSE("NURSE"), + /** + * 电子病历提交节点 + */ + EMR("EMR"), + /** + * 重症提交节点 + */ + ICU("ICU"); + /** + * 节点code + */ + String code; + + HospitalSubmitNodeEnum(String code) { + this.code = code; + } + public String code(){ + return code; + } +} diff --git a/src/main/java/com/docus/server/message/feign/service/HospitalSubmitNodeServiceApi.java b/src/main/java/com/docus/server/message/feign/service/HospitalSubmitNodeServiceApi.java new file mode 100644 index 0000000..c73fb08 --- /dev/null +++ b/src/main/java/com/docus/server/message/feign/service/HospitalSubmitNodeServiceApi.java @@ -0,0 +1,45 @@ +package com.docus.server.message.feign.service; + +import com.docus.infrastructure.web.api.CommonResult; +import com.docus.server.message.feign.dto.HospitalSubmitNodeLogAddDTO; +import com.docus.server.message.feign.dto.HospitalSubmitNodeLogQrDTO; +import com.docus.server.message.feign.vo.HospitalSubmitNodeLogVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +/** + * 医院提交节点服务api + * + * @author 文永斌 + * @date 2023/9/5 + */ +@Api(tags = "医院提交节点服务API") +@FeignClient(name = "submitNode", url = "${docus.url.medicalrecord}") +public interface HospitalSubmitNodeServiceApi { + String PREFIX = "/basic/submitNode"; + + /** + * 提交节点,添加日志 + * @param submitNodeLogAddDTO 提交参数对象 + * @return 操作结果 + */ + @ApiOperation("提交节点,添加日志") + @RequestMapping(value = PREFIX + "/log/add", method = RequestMethod.POST) + CommonResult addLog(@RequestBody HospitalSubmitNodeLogAddDTO submitNodeLogAddDTO); + + /** + * 提交节点日志列表查询 + * @param submitNodeLogQrDTO 查询参数 + * @return 日志列表 + */ + @ApiOperation("提交节点日志列表查询") + @RequestMapping(value = PREFIX + "/log/list", method = RequestMethod.POST) + CommonResult> listLogs(@RequestBody HospitalSubmitNodeLogQrDTO submitNodeLogQrDTO); + +} diff --git a/src/main/java/com/docus/server/message/feign/vo/HospitalSubmitNodeLogVO.java b/src/main/java/com/docus/server/message/feign/vo/HospitalSubmitNodeLogVO.java new file mode 100644 index 0000000..66137fc --- /dev/null +++ b/src/main/java/com/docus/server/message/feign/vo/HospitalSubmitNodeLogVO.java @@ -0,0 +1,71 @@ +package com.docus.server.message.feign.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 医院提交节点日志时间线视图对象 + * + * @author 文永斌 + * @date 2023/9/5 + */ +@Data +public class HospitalSubmitNodeLogVO { + private String date; + private List logs; + + + @Data + @ApiModel("医院提交节点日志视图对象") + public static class LogVO { + /** + * 病案主键 + */ + @ApiModelProperty("病案主键") + private String patientId; + + /** + * 节点代码 + */ + @ApiModelProperty("节点代码") + private String nodeCode; + + /** + * 节点名称 + */ + @ApiModelProperty("节点名称") + private String nodeName; + /** + * 年月日,冗余创建时间,进行分组 + */ + @ApiModelProperty("年月日,冗余创建时间,进行分组") + private String monthDate; + + /** + * 创建人 + */ + @ApiModelProperty("创建人") + private String creater; + + /** + * 创建人名称 + */ + @ApiModelProperty("创建人名称") + private String createrName; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private String createTime; + + /** + * 日志内容 + */ + @ApiModelProperty("日志内容") + private String content; + } +} diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 004bdf2..0cafca5 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -78,6 +78,7 @@ docus: compensate-task-url: http://localhost:9295/ # 下载地址 down-url: http://localhost:9291/api/downplatform/report + medicalrecord: http://192.168.16.85:9102 dbtype: mysql