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

feat:病例详情

上级 aab0117a
...@@ -43,6 +43,23 @@ ...@@ -43,6 +43,23 @@
<artifactId>byh-card-service-client</artifactId> <artifactId>byh-card-service-client</artifactId>
<version>${card.version}</version> <version>${card.version}</version>
</dependency> </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> </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; package com.ebaiyihui.family.doctor.common.vo;
import com.ebaiyihui.sysinfocloudcommon.vo.medical.MedicalSortVo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
......
...@@ -26,4 +26,9 @@ public class ProjProperties { ...@@ -26,4 +26,9 @@ public class ProjProperties {
private String familyDoctorThirdClientId; private String familyDoctorThirdClientId;
private String familyDoctorThirdClientSecret; private String familyDoctorThirdClientSecret;
private String medicalInfoByAdmId;
private String getMedicalUserFills;
} }
package com.ebaiyihui.family.doctor.server.controller; 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.InvalidMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.UpdatePatientMedicalRecordDTO; import com.ebaiyihui.family.doctor.common.vo.PatientCaseDetail;
import com.ebaiyihui.family.doctor.common.vo.InsertPatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.common.vo.PatientMedicalRecordVO;
import com.ebaiyihui.family.doctor.server.service.PatientMedicalRecordService; import com.ebaiyihui.family.doctor.server.service.PatientMedicalRecordService;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -64,6 +61,18 @@ public class PatientMedicalRecordController { ...@@ -64,6 +61,18 @@ public class PatientMedicalRecordController {
// } // }
// return patientMedicalRecordService.detailMedicalRecord(dto); // 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 = "医生开具复诊病例推送小卡片") @ApiOperation(value = "推送病例卡片", notes = "医生开具复诊病例推送小卡片")
@RequestMapping(value = "/treatmentCard", method = RequestMethod.POST) @RequestMapping(value = "/treatmentCard", method = RequestMethod.POST)
...@@ -74,9 +83,4 @@ public class PatientMedicalRecordController { ...@@ -74,9 +83,4 @@ public class PatientMedicalRecordController {
} }
return patientMedicalRecordService.treatmentCard(param.getAdmId()); return patientMedicalRecordService.treatmentCard(param.getAdmId());
} }
} }
...@@ -5,6 +5,7 @@ import com.ebaiyihui.family.doctor.common.dto.InsertPatientMedicalRecordDTO; ...@@ -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.InvalidMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.dto.UpdatePatientMedicalRecordDTO; import com.ebaiyihui.family.doctor.common.dto.UpdatePatientMedicalRecordDTO;
import com.ebaiyihui.family.doctor.common.vo.InsertPatientMedicalRecordVO; 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.family.doctor.common.vo.PatientMedicalRecordVO;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
...@@ -23,5 +24,7 @@ public interface PatientMedicalRecordService { ...@@ -23,5 +24,7 @@ public interface PatientMedicalRecordService {
// //
// BaseResponse<Object> insertOrUpdate(InsertPatientMedicalRecordDTO dto); // BaseResponse<Object> insertOrUpdate(InsertPatientMedicalRecordDTO dto);
PatientCaseDetail getMedicalInfoByAdmId(String admId);
BaseResponse<Object> treatmentCard(String admId); BaseResponse<Object> treatmentCard(String admId);
} }
package com.ebaiyihui.family.doctor.server.service.impl; package com.ebaiyihui.family.doctor.server.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doctoruser.api.pojo.base.dto.doctor.QueryPersonnelInfoReq; import com.doctoruser.api.pojo.base.dto.doctor.QueryPersonnelInfoReq;
import com.doctoruser.api.pojo.base.vo.doctor.PersonnelInfo; import com.doctoruser.api.pojo.base.vo.doctor.PersonnelInfo;
...@@ -11,32 +11,25 @@ import com.ebaiyihui.family.doctor.common.bo.Message; ...@@ -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.MessageInfo;
import com.ebaiyihui.family.doctor.common.bo.PatientSignInfo; import com.ebaiyihui.family.doctor.common.bo.PatientSignInfo;
import com.ebaiyihui.family.doctor.common.bo.PersonImInformReq; import com.ebaiyihui.family.doctor.common.bo.PersonImInformReq;
import com.ebaiyihui.family.doctor.common.dto.InsertPatientMedicalRecordDTO; import com.ebaiyihui.family.doctor.common.vo.*;
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.server.common.constants.IMInformConstants; import com.ebaiyihui.family.doctor.server.common.constants.IMInformConstants;
import com.ebaiyihui.family.doctor.server.entity.PatientEntity; import com.ebaiyihui.family.doctor.server.common.constants.ProjProperties;
import com.ebaiyihui.family.doctor.server.entity.PatientMedicalRecordEntity;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity; 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.DoctorInfofeignClient;
import com.ebaiyihui.family.doctor.server.feign.IMPushMsgFeignClient; import com.ebaiyihui.family.doctor.server.feign.IMPushMsgFeignClient;
import com.ebaiyihui.family.doctor.server.feign.UserApiFeignClient; 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.mapper.PatientSignMapper;
import com.ebaiyihui.family.doctor.server.service.PatientMedicalRecordService; 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.JsonUtil;
import com.ebaiyihui.family.doctor.server.util.UUIDUtil;
import com.ebaiyihui.framework.response.BaseResponse; 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.AccountVO;
import com.ebaiyihui.imforward.client.vo.PushSingleMsgDataVO; import com.ebaiyihui.imforward.client.vo.PushSingleMsgDataVO;
import com.ebaiyihui.imforward.client.vo.PushSingleMsgReqVO; 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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -52,9 +45,6 @@ import java.util.List; ...@@ -52,9 +45,6 @@ import java.util.List;
@Slf4j @Slf4j
public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordService { public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordService {
@Autowired
private PatientMedicalRecordMapper patientMedicalRecordMapper;
@Autowired @Autowired
private PatientSignMapper patientSignMapper; private PatientSignMapper patientSignMapper;
...@@ -67,6 +57,33 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -67,6 +57,33 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
@Autowired @Autowired
private IMPushMsgFeignClient imPushMsgFeignClient; 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 @Override
public BaseResponse<Object> treatmentCard(String admissionId) { public BaseResponse<Object> treatmentCard(String admissionId) {
...@@ -164,21 +181,26 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -164,21 +181,26 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
private TreatmentCard getTreatmentCard(String admissionId) { private TreatmentCard getTreatmentCard(String admissionId) {
TreatmentCard treatmentCard = new TreatmentCard(); TreatmentCard treatmentCard = new TreatmentCard();
PatientMedicalRecordEntity recordEntity = patientMedicalRecordMapper.getByAdmId(admissionId); // todo 病例信息
PatientCaseDetail medicalInfoByAdmId = getMedicalInfoByAdmId(admissionId);
if (null == recordEntity) { if (null == medicalInfoByAdmId) {
log.info("病例详情查询错误,查询为空"); log.info("病例详情查询错误,查询为空");
return null; return null;
} }
List<MedicalSortVo> list = new ArrayList<>(); 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)) { if (CollectionUtils.isEmpty(list)) {
return null; return null;
} }
treatmentCard.setMedicalRecordId(recordEntity.getId()); treatmentCard.setMedicalRecordId(medicalInfoByAdmId.getXId());
treatmentCard.setMedicalUserFills(list); treatmentCard.setMedicalUserFills(list);
log.info("caseHistory:{}" + treatmentCard.toString()); log.info("caseHistory:{}", treatmentCard);
return treatmentCard; return treatmentCard;
} }
...@@ -245,14 +267,9 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -245,14 +267,9 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
} }
/** /**
* Discreption:封装推送参数 * Description:封装推送参数
*
* @return:boolean
* @author:wwx
* @date:2021/11/24 16:19
*/ */
private boolean pushImInform(List<MessageInfo> messageInfos, String admissionId) { private boolean pushImInform(List<MessageInfo> messageInfos, String admissionId) {
boolean flag = true; boolean flag = true;
PersonImInformReq parameter = new PersonImInformReq(); PersonImInformReq parameter = new PersonImInformReq();
parameter.setMessageInfos(messageInfos); parameter.setMessageInfos(messageInfos);
...@@ -265,7 +282,7 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -265,7 +282,7 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
/** /**
* 个人(单聊)系统消息推送 * 个人(单聊)系统消息推送
* *
* @param param * @param param param
* @return 是否推送成功 * @return 是否推送成功
*/ */
private boolean personImInform(PersonImInformReq param) { private boolean personImInform(PersonImInformReq param) {
...@@ -289,10 +306,10 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -289,10 +306,10 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
parameter.setUniqueId(param.getAdmissionId()); parameter.setUniqueId(param.getAdmissionId());
parameter.setMsgData(msgSingleDatas); parameter.setMsgData(msgSingleDatas);
// 发送IM单人推送 // 发送IM单人推送
log.info("推送入参:{}" + JSON.toJSONString(parameter)); log.info("推送入参:{}", JSON.toJSONString(parameter));
boolean pushFlag = pushSingleIm(parameter); boolean pushFlag = pushSingleIm(parameter);
if (pushFlag != true) { if (!pushFlag) {
log.info("IM INFORM ERROR : im 调用im系统推送失败"); log.info("IM INFORM ERROR : im 调用im系统推送失败");
return false; return false;
} }
...@@ -303,13 +320,37 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -303,13 +320,37 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
* @param reqVO 请求参数 * @param reqVO 请求参数
* @return boolean 发送结果 * @return boolean 发送结果
* @description: 发送IM单人推送 * @description: 发送IM单人推送
* @author fangyueguo
* @date 2019年02月19日
*/ */
private boolean pushSingleIm(PushSingleMsgReqVO reqVO) { private boolean pushSingleIm(PushSingleMsgReqVO reqVO) {
log.info("调用IM第三方reqVO:{}" + JSON.toJSONString(reqVO)); log.info("调用IM第三方reqVO:{}", JSON.toJSONString(reqVO));
BaseResponse<?> response = imPushMsgFeignClient.pushSingleMsg(reqVO); BaseResponse<?> response = imPushMsgFeignClient.pushSingleMsg(reqVO);
log.info("发送IM单人推送:{}", response.toString()); log.info("发送IM单人推送:{}", response.toString());
return response.isSuccess(); 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;
}
} }
...@@ -71,4 +71,6 @@ projprops: ...@@ -71,4 +71,6 @@ projprops:
baseAddress: https://testapi.chinachdu.com/ baseAddress: https://testapi.chinachdu.com/
familyDoctorThirdUrl: http://47.100.107.19:30002/open-api/app familyDoctorThirdUrl: http://47.100.107.19:30002/open-api/app
familyDoctorThirdClientId: 202305062345 familyDoctorThirdClientId: 202305062345
familyDoctorThirdClientSecret: test2020145634 familyDoctorThirdClientSecret: test2020145634
\ No newline at end of file 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 @@ ...@@ -33,6 +33,7 @@
<card.version>0.0.2-SNAPSHOT</card.version> <card.version>0.0.2-SNAPSHOT</card.version>
<doctoruser-api.version>0.0.3-SNAPSHOT</doctoruser-api.version> <doctoruser-api.version>0.0.3-SNAPSHOT</doctoruser-api.version>
<byh-im-forward.version>0.0.3-SNAPSHOT</byh-im-forward.version> <byh-im-forward.version>0.0.3-SNAPSHOT</byh-im-forward.version>
<sysinfocloud-client.version>0.0.3-SNAPSHOT</sysinfocloud-client.version>
</properties> </properties>
<activation> <activation>
<activeByDefault>true</activeByDefault><!-- 默认激活该profile节点--> <activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
...@@ -55,6 +56,7 @@ ...@@ -55,6 +56,7 @@
<card.version>1.0.0</card.version> <card.version>1.0.0</card.version>
<doctoruser-api.version>1.0.0</doctoruser-api.version> <doctoruser-api.version>1.0.0</doctoruser-api.version>
<byh-im-forward.version>1.0.0</byh-im-forward.version> <byh-im-forward.version>1.0.0</byh-im-forward.version>
<sysinfocloud-client.version>0.0.3-SNAPSHOT</sysinfocloud-client.version>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论