提交 4c88c682 authored 作者: luzhangjian's avatar luzhangjian

feat:病例详情

上级 aab0117a
......@@ -43,6 +43,23 @@
<artifactId>byh-card-service-client</artifactId>
<version>${card.version}</version>
</dependency>
</dependencies>
<dependency>
<groupId>com.ebaiyihui</groupId>
<artifactId>sysinfo-cloud-client</artifactId>
<version>${sysinfocloud-client.version}</version>
<exclusions>
<exclusion>
<groupId>com.ebaiyihui</groupId>
<artifactId>sysinfo-cloud-common</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.ebaiyihui</groupId>
<artifactId>sysinfo-cloud-common</artifactId>
<version>${sysinfocloud-client.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.ebaiyihui.family.doctor.common.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author odd$
* @description: $
* @param: $
* @return: $
* @date: $ $
*/
@Data
public class MedicalSortVo {
@ApiModelProperty("病例记录name")
private String titleContent;
@ApiModelProperty("病例记录值")
private Object value;
@ApiModelProperty("展示顺序")
private Integer sort;
@ApiModelProperty("模块类型")
private Integer inputType;
@ApiModelProperty("是否展示在病历卡片")
private Integer isCard;
@ApiModelProperty("展示信息类型")
private Integer titleType;
@ApiModelProperty("是否为空")
private Integer isNull;
@ApiModelProperty("数据key信息")
private String keywords;
}
package com.ebaiyihui.family.doctor.common.vo;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.PatientDynamicMedicalEntityVo;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class PatientCaseDetail extends PatientDynamicMedicalEntityVo {
/**
* 是否开具过处方
* 0 否
* 1 是
*/
private String isPrescription;
}
package com.ebaiyihui.family.doctor.common.vo;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
......
......@@ -26,4 +26,9 @@ public class ProjProperties {
private String familyDoctorThirdClientId;
private String familyDoctorThirdClientSecret;
private String medicalInfoByAdmId;
private String getMedicalUserFills;
}
package com.ebaiyihui.family.doctor.server.controller;
import com.ebaiyihui.family.doctor.common.dto.InsertPatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.InvalidMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.UpdatePatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.vo.InsertPatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.common.vo.PatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.common.vo.PatientCaseDetail;
import com.ebaiyihui.family.doctor.server.service.PatientMedicalRecordService;
import com.ebaiyihui.framework.response.BaseResponse;
import io.swagger.annotations.Api;
......@@ -64,6 +61,18 @@ public class PatientMedicalRecordController {
// }
// return patientMedicalRecordService.detailMedicalRecord(dto);
// }
/**
* 根据admID查询病例
* @param admId
* @return
*/
@PostMapping("/getMedicalInfoByAdmId")
@ApiOperation(value = "根据admID查询病例")
public BaseResponse<PatientCaseDetail> getMedicalInfoByAdmId(@RequestBody InvalidMedicalRecordDTO admId) {
PatientCaseDetail medicalInfoByAdmId = patientMedicalRecordService.getMedicalInfoByAdmId(admId.getAdmId());
return BaseResponse.success(medicalInfoByAdmId);
}
@ApiOperation(value = "推送病例卡片", notes = "医生开具复诊病例推送小卡片")
@RequestMapping(value = "/treatmentCard", method = RequestMethod.POST)
......@@ -74,9 +83,4 @@ public class PatientMedicalRecordController {
}
return patientMedicalRecordService.treatmentCard(param.getAdmId());
}
}
......@@ -5,6 +5,7 @@ import com.ebaiyihui.family.doctor.common.dto.InsertPatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.InvalidMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.UpdatePatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.vo.InsertPatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.common.vo.PatientCaseDetail;
import com.ebaiyihui.family.doctor.common.vo.PatientMedicalRecordVO;
import com.ebaiyihui.framework.response.BaseResponse;
......@@ -23,5 +24,7 @@ public interface PatientMedicalRecordService {
//
// BaseResponse<Object> insertOrUpdate(InsertPatientMedicalRecordDTO dto);
PatientCaseDetail getMedicalInfoByAdmId(String admId);
BaseResponse<Object> treatmentCard(String admId);
}
package com.ebaiyihui.family.doctor.server.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doctoruser.api.pojo.base.dto.doctor.QueryPersonnelInfoReq;
import com.doctoruser.api.pojo.base.vo.doctor.PersonnelInfo;
......@@ -11,32 +11,25 @@ import com.ebaiyihui.family.doctor.common.bo.Message;
import com.ebaiyihui.family.doctor.common.bo.MessageInfo;
import com.ebaiyihui.family.doctor.common.bo.PatientSignInfo;
import com.ebaiyihui.family.doctor.common.bo.PersonImInformReq;
import com.ebaiyihui.family.doctor.common.dto.InsertPatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.InvalidMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.UpdatePatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.vo.InsertPatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.common.vo.MedicalSortVo;
import com.ebaiyihui.family.doctor.common.vo.PatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.common.vo.TreatmentCard;
import com.ebaiyihui.family.doctor.common.vo.*;
import com.ebaiyihui.family.doctor.server.common.constants.IMInformConstants;
import com.ebaiyihui.family.doctor.server.entity.PatientEntity;
import com.ebaiyihui.family.doctor.server.entity.PatientMedicalRecordEntity;
import com.ebaiyihui.family.doctor.server.common.constants.ProjProperties;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.family.doctor.server.exception.BusinessException;
import com.ebaiyihui.family.doctor.server.feign.DoctorInfofeignClient;
import com.ebaiyihui.family.doctor.server.feign.IMPushMsgFeignClient;
import com.ebaiyihui.family.doctor.server.feign.UserApiFeignClient;
import com.ebaiyihui.family.doctor.server.mapper.PatientMapper;
import com.ebaiyihui.family.doctor.server.mapper.PatientMedicalRecordMapper;
import com.ebaiyihui.family.doctor.server.mapper.PatientSignMapper;
import com.ebaiyihui.family.doctor.server.service.PatientMedicalRecordService;
import com.ebaiyihui.family.doctor.server.service.RedisTemplateService;
import com.ebaiyihui.family.doctor.server.util.JsonUtil;
import com.ebaiyihui.family.doctor.server.util.UUIDUtil;
import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.framework.utils.HttpKit;
import com.ebaiyihui.imforward.client.vo.AccountVO;
import com.ebaiyihui.imforward.client.vo.PushSingleMsgDataVO;
import com.ebaiyihui.imforward.client.vo.PushSingleMsgReqVO;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortReqVo;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortVo;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.PatientDynamicMedicalEntityVo;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.PatientDynamicMedicalIdByAdmIdVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -52,9 +45,6 @@ import java.util.List;
@Slf4j
public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordService {
@Autowired
private PatientMedicalRecordMapper patientMedicalRecordMapper;
@Autowired
private PatientSignMapper patientSignMapper;
......@@ -67,6 +57,33 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
@Autowired
private IMPushMsgFeignClient imPushMsgFeignClient;
@Autowired
private ProjProperties projProperties;
@Override
public PatientCaseDetail getMedicalInfoByAdmId(String admId) {
log.info("根据就诊id查病例详情入参:{} ", admId);
try {
PatientDynamicMedicalIdByAdmIdVo patientDynamicMedicalIdByAdmIdVo = new PatientDynamicMedicalIdByAdmIdVo();
patientDynamicMedicalIdByAdmIdVo.setAdmId(admId);
log.info("查询病例详情URL:{}, ", projProperties.getMedicalInfoByAdmId());
String body = HttpKit.jsonPost(projProperties.getMedicalInfoByAdmId(), JSON.toJSONString(patientDynamicMedicalIdByAdmIdVo));
BaseResponse<PatientDynamicMedicalEntityVo> baseResponse = JSON.parseObject(body, BaseResponse.class);
if (baseResponse.getData() == null) {
return null;
}
PatientDynamicMedicalEntityVo patientDynamicMedicalEntityVo = JSON.parseObject(JSON.toJSONString(baseResponse.getData()), PatientDynamicMedicalEntityVo.class);
log.info("根据就诊id查病例详情返回值:{} ", patientDynamicMedicalEntityVo.toString());
PatientCaseDetail patientCaseDetail = new PatientCaseDetail();
//重新封装
BeanUtils.copyProperties(patientDynamicMedicalEntityVo, patientCaseDetail);
return patientCaseDetail;
} catch (Exception e) {
log.error("根据就诊id查病例详情调用失败{}", e.getMessage());
}
return null;
}
@Override
public BaseResponse<Object> treatmentCard(String admissionId) {
......@@ -164,21 +181,26 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
private TreatmentCard getTreatmentCard(String admissionId) {
TreatmentCard treatmentCard = new TreatmentCard();
PatientMedicalRecordEntity recordEntity = patientMedicalRecordMapper.getByAdmId(admissionId);
// todo 病例信息
PatientCaseDetail medicalInfoByAdmId = getMedicalInfoByAdmId(admissionId);
if (null == recordEntity) {
if (null == medicalInfoByAdmId) {
log.info("病例详情查询错误,查询为空");
return null;
}
List<MedicalSortVo> list = new ArrayList<>();
log.info("list:{}" + JSON.toJSONString(list));
list = getMedicalUserFills(medicalInfoByAdmId.getServType(), medicalInfoByAdmId.getMedicalDetail(), medicalInfoByAdmId.getHospitalId(), medicalInfoByAdmId.getDeptId());
log.info("list:{}", JSON.toJSONString(list));
if (CollectionUtils.isEmpty(list)) {
return null;
}
treatmentCard.setMedicalRecordId(recordEntity.getId());
treatmentCard.setMedicalRecordId(medicalInfoByAdmId.getXId());
treatmentCard.setMedicalUserFills(list);
log.info("caseHistory:{}" + treatmentCard.toString());
log.info("caseHistory:{}", treatmentCard);
return treatmentCard;
}
......@@ -245,14 +267,9 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
}
/**
* Discreption:封装推送参数
*
* @return:boolean
* @author:wwx
* @date:2021/11/24 16:19
* Description:封装推送参数
*/
private boolean pushImInform(List<MessageInfo> messageInfos, String admissionId) {
boolean flag = true;
PersonImInformReq parameter = new PersonImInformReq();
parameter.setMessageInfos(messageInfos);
......@@ -265,7 +282,7 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
/**
* 个人(单聊)系统消息推送
*
* @param param
* @param param param
* @return 是否推送成功
*/
private boolean personImInform(PersonImInformReq param) {
......@@ -289,10 +306,10 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
parameter.setUniqueId(param.getAdmissionId());
parameter.setMsgData(msgSingleDatas);
// 发送IM单人推送
log.info("推送入参:{}" + JSON.toJSONString(parameter));
log.info("推送入参:{}", JSON.toJSONString(parameter));
boolean pushFlag = pushSingleIm(parameter);
if (pushFlag != true) {
if (!pushFlag) {
log.info("IM INFORM ERROR : im 调用im系统推送失败");
return false;
}
......@@ -303,13 +320,37 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
* @param reqVO 请求参数
* @return boolean 发送结果
* @description: 发送IM单人推送
* @author fangyueguo
* @date 2019年02月19日
*/
private boolean pushSingleIm(PushSingleMsgReqVO reqVO) {
log.info("调用IM第三方reqVO:{}" + JSON.toJSONString(reqVO));
log.info("调用IM第三方reqVO:{}", JSON.toJSONString(reqVO));
BaseResponse<?> response = imPushMsgFeignClient.pushSingleMsg(reqVO);
log.info("发送IM单人推送:{}", response.toString());
return response.isSuccess();
}
public List<MedicalSortVo> getMedicalUserFills(Integer servType, String medicalDetail, String hospitalId, String deptId) {
try {
MedicalSortReqVo medicalSortReqVo = new MedicalSortReqVo();
medicalSortReqVo.setMedicalUserFills(medicalDetail);
medicalSortReqVo.setHospitalId(hospitalId);
medicalSortReqVo.setServType(servType);
if (servType == 5) {
medicalSortReqVo.setDeptId(deptId);
}
log.info("获取患者填写的病例入参==>{}", JSON.toJSONString(medicalSortReqVo));
String body = HttpKit.jsonPost(projProperties.getGetMedicalUserFills(), JSON.toJSONString(medicalSortReqVo));
BaseResponse<List<com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortVo>> baseResponse = JSONObject.toJavaObject(JSONObject.parseObject(body), BaseResponse.class);
List<com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortVo> medicalSortVos = JSON.parseArray(JSON.toJSONString(baseResponse.getData()), com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortVo.class);
log.info("获取患者填写的病例返回值: " + medicalSortVos.toString());
return medicalSortVos;
} catch (Exception e) {
log.error("获取患者填写的病例调用失败" + e.getMessage());
}
return null;
}
}
......@@ -72,3 +72,5 @@ projprops:
familyDoctorThirdUrl: http://47.100.107.19:30002/open-api/app
familyDoctorThirdClientId: 202305062345
familyDoctorThirdClientSecret: test2020145634
medicalInfoByAdmId: https://testapi.chinachdu.com//cloud/sysinfocloud/patientDynamicMedical/getMedicalInfoByAdmId
getMedicalUserFills: https://testapi.chinachdu.com//cloud/sysinfocloud/patientDynamicMedical/getMedicalUserFills
\ No newline at end of file
......@@ -33,6 +33,7 @@
<card.version>0.0.2-SNAPSHOT</card.version>
<doctoruser-api.version>0.0.3-SNAPSHOT</doctoruser-api.version>
<byh-im-forward.version>0.0.3-SNAPSHOT</byh-im-forward.version>
<sysinfocloud-client.version>0.0.3-SNAPSHOT</sysinfocloud-client.version>
</properties>
<activation>
<activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
......@@ -55,6 +56,7 @@
<card.version>1.0.0</card.version>
<doctoruser-api.version>1.0.0</doctoruser-api.version>
<byh-im-forward.version>1.0.0</byh-im-forward.version>
<sysinfocloud-client.version>0.0.3-SNAPSHOT</sysinfocloud-client.version>
</properties>
</profile>
</profiles>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论