提交 6733af3d authored 作者: luzhangjian's avatar luzhangjian

feat:对接云his

上级 312b9ca1
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author lc
* @date 2024/03/25
* @description
*/
@Data
public class AppPointRequestDTO implements Serializable {
/**
* 证件类型1:身份证类型,2:户口本
*/
@ApiModelProperty(value = "证件类型1:身份证类型,2:户口本")
private String cardType;
@ApiModelProperty(value = "社保卡信息串")
private String socialCardInfo;
@ApiModelProperty(value = "社保卡号")
private String socialCardNo;
/**
* 姓名
*/
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "卡识别码")
private String cardSn;
/**
* 备注
*/
@ApiModelProperty(value = "不填证件号原因备注")
private String patientRemark;
/**
* 门诊类型
*/
@ApiModelProperty(value = "门诊类型")
private String outpatientType;
/**
* 科室表主键id
*/
@ApiModelProperty(value = "科室表主键id")
private Integer deptId;
/**
* 出生日期
*/
@ApiModelProperty(value = "出生日期")
private String birthday;
/**
* 性别1:男,2:女
*/
@ApiModelProperty(value = "性别1:男,2:女")
private String sex;
/**
* 证件号
*/
@ApiModelProperty(value = "证件号")
private String cardNo;
/**
* 手机号
*/
@ApiModelProperty(value = "手机号")
private String phone;
/**
* 接诊医生表名称
*/
@ApiModelProperty(value = "接诊医生表名称")
private String doctorName;
/**
* 医保类型
*/
@ApiModelProperty(value = "医保类型")
private String medicalType;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 年龄
*/
@ApiModelProperty(value = "年龄")
private Integer age;
/**
* 接诊医生表主键id
*/
@ApiModelProperty(value = "接诊医生表主键id")
private Integer doctorId;
/**
* 科室表主键名称
*/
@ApiModelProperty(value = "科室表主键名称")
private String deptName;
/**
* 门诊类型【1:普通门诊 2:专家门诊】
*/
@ApiModelProperty(value = "门诊类型【1:普通门诊 2:专家门诊】")
private String outpatientTypeName;
/**
* 医院名字
*/
@ApiModelProperty(value = "医院名字")
private String hospitalName;
/**
* 门诊号
*/
@ApiModelProperty(value ="门诊号")
private String outpatientNo;
/**
* 就诊状态【1:候诊中,2就诊中,3已完成,4已取消】
*/
@ApiModelProperty(value ="就诊状态【1-10:候诊中,20-29诊中,30-40已完成,40-50已取消】")
private Integer status;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author lc
* @date 2024/03/25
* @description
*/
@Data
public class ArchivingRequestDTO implements Serializable {
@ApiModelProperty(value = "门诊号")
private String outpatientNo;
@ApiModelProperty(value = "当前操作人ID")
private Integer operatorId;
@ApiModelProperty(value ="当前操作人名称")
private String operatorName;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import lombok.Data;
import java.io.Serializable;
/**
* @author lc
* @date 2024/4/12 15:08
* @packageName com.ebaiyihui.onlineoutpatient.core.vo.nczk.cloudHis
* @description
*/
@Data
public class CheckRegFeeAndDocAndDeptInfoDto implements Serializable {
private String deptCode;
private String doctorCode;
private String deptName;
private String doctorName;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author lc
* @date 2024/03/27
* @description
*/
@Data
public class DiagnosticDetailReqDTO {
@ApiModelProperty(value = "【诊断传】诊断")
private String diagnosis;
@ApiModelProperty(value = "【诊断传】icd编码")
private String icdCode;
@ApiModelProperty(value = "【国家医保诊断传】国家医保诊断")
private String hsDiagnosis;
@ApiModelProperty(value = "【国家医保诊断传】国家医保诊断代码")
private String hsIcdCode;
@ApiModelProperty(value = "【门诊慢特病诊断传】门诊慢特病诊断")
private String cdDiagnosis;
@ApiModelProperty(value = "【门诊慢特病诊断传】门诊慢特病诊断代码")
private String cdIcdCode;
@ApiModelProperty(value = "是否疑似")
private Integer isSusiected;
@ApiModelProperty(value="诊断类型[1.中医 2.西医]")
private Integer diagnosticType;
@ApiModelProperty(value="区域医保名称")
private String regionalMedicalInsuranceName;
@ApiModelProperty(value="区域医保编码")
private String regionalMedicalInsuranceCode;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author lc
* @date 2024/03/27
* @packageName com.ebaiyihui.his.pojo.vo.appoint
* @description
*/
@Data
public class DiagnosticReqDTO {
@ApiModelProperty(value = "当前操作人ID【自动获取】")
private Integer operatorId;
@ApiModelProperty(value = "当前操作人名称【自动获取】")
private String operatorName;
@ApiModelProperty(value ="所属租户ID【自动获取】")
private Integer tenantId;
@ApiModelProperty(value = "门诊号")
private String outpatientNo;
@ApiModelProperty(value = "体温")
private BigDecimal temperature;
@ApiModelProperty(value = "脉率")
private String pulseRate;
@ApiModelProperty(value = "呼吸")
private String breathing;
@ApiModelProperty(value = "血压类型【1:起床1小时 2:午餐后 3:晚餐后 4:入睡前 5:其它】")
private String bloodPressureType;
@ApiModelProperty(value = "收缩压")
private String systolicPressure;
@ApiModelProperty(value = "舒张压")
private String diastolicPressure;
@ApiModelProperty(value = "身高")
private String height;
@ApiModelProperty(value = "体重")
private Double weight;
@ApiModelProperty(value = "【BMI的计算公式=体重(kg)÷身高÷身高 例如:55÷1.60÷1.60】【1:18.5-23.9正常范围 2:超过23.9肥胖 3:低于18.5体重低下")
private String bmi;
@ApiModelProperty(value = "血氧饱和度")
private String saturation;
@ApiModelProperty(value = "血糖日期")
private Date bloodData;
@ApiModelProperty(value = "血糖类型【1:空腹 2:早餐后 3:午餐前 4:午餐后 5:晚餐前 6:晚餐后 7:睡前】")
private String bloodType;
@ApiModelProperty(value = "血糖")
private String blood;
@ApiModelProperty(value = "附件地址")
private String attachmentAddress;
@ApiModelProperty(value = "处理意见")
private String handleOpinion;
@ApiModelProperty(value = "诊断")
private List<DiagnosticDetailReqDTO> diagnosis;
@ApiModelProperty(value = "慢特病类型")
private String cdType;
@ApiModelProperty(value = "体格检查")
private String physicalExam;
@ApiModelProperty(value = "辅助检查")
private String auxiliaryInspection;
@ApiModelProperty(value = "主诉")
private String chiefComplaint;
@ApiModelProperty(value = "现病史")
private String presentMedicalHistory;
@ApiModelProperty(value="叙述人【1.本人 2.其他】")
private Integer narrator;
@ApiModelProperty(value="叙述人关系id")
private Integer narratorRelationship;
@ApiModelProperty(value="叙述人关系名称")
private String narratorRelationshipName;
@ApiModelProperty(value="叙述人姓名")
private String narratorName;
@ApiModelProperty(value="叙述人身份证")
private String narratorCardNo;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value="叙述人phone")
private String narratorPhone;
@ApiModelProperty(value = "既往史")
private String medicalHistory;
@ApiModelProperty(value = "过敏史文本")
private String allergyHistoryText;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/**
* 收费单创建dto
*
* @author lc
* @date 2024/04/02
*/
@Data
public class FeeBillCreationDto {
@ApiModelProperty(value = "门诊号")
@NotBlank(message = "门诊号不能为空")
private String outpatientNo;
@ApiModelProperty(value = "总金额【最大金额,所有总数】")
private BigDecimal amount;
@ApiModelProperty(value = "应付总金额")
private BigDecimal totalAmount;
@ApiModelProperty(value = "处方号")
private String prescriptionNo;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "结算方式SettlementMethod")
private Integer settlementMethod;
@ApiModelProperty(value = "医保支付类型 ")
private Integer medicalInsuranceType;
@ApiModelProperty(value ="支付订单描述")
private String payOrderName;
@ApiModelProperty(value ="订单类型:10挂号费")
private Integer orderType;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 收费单创建dto
*
* @author lc
* @date 2024/04/02
*/
@Data
public class FeeBillCreationVo {
@ApiModelProperty(value ="交易单号")
private String transactionNumber;
@ApiModelProperty(value ="支付单号")
private String payOrderNo;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import lombok.Data;
/**
* @author lihuan
* @program byh-online-outpatient
* @description:
* @date 2020/06/03
*/
@Data
public class HisDeptAndDocCodeVo {
private String deptCode;
private String doctorCode;
private String deptName;
private String doctorName;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author:lc
* @Date:2024/03/25
* @Description
*/
@Data
public class MakeAnAppointmentRequestVO {
@ApiModelProperty(value = "id")
private String id;
/**
* 手机号
*/
@ApiModelProperty(value ="手机号")
private String phone;
/**
* 性别1:男,2:女
*/
@ApiModelProperty(value = "性别1:男,2:女")
private String sex;
/**
* 出生日期
*/
@ApiModelProperty(value = "出生日期")
private String birthday;
/**
* 年龄
*/
@ApiModelProperty(value = "年龄")
private Integer age;
/**
* 患者档案表主键id
*/
@ApiModelProperty(value ="患者id")
private Integer patientId;
/**
* 患者档案表名称
*/
@ApiModelProperty(value ="患者名称")
private String patientName;
/**
* 患者证件号
*/
@ApiModelProperty(value ="患者证件号")
private String patientCardNo;
/**
* 病历号
*/
@ApiModelProperty(value ="病历号")
private String medicalRecordNo;
/**
* 候诊号
*/
@ApiModelProperty(value ="候诊号")
private Integer waitNo;
/**
* 门诊号
*/
@ApiModelProperty(value ="门诊号")
private String outpatientNo;
/**
* 门诊类型【1:普通门诊 2:专家门诊】
*/
@ApiModelProperty(value ="门诊类型【1:普通门诊 2:专家门诊】")
private String outpatientType;
/**
* 门诊类型【1:普通门诊 2:专家门诊】
*/
@ApiModelProperty(value ="门诊类型名称")
private String outpatientTypeName;
/**
* 就诊状态
*/
@ApiModelProperty(value ="就诊状态")
private Integer status;
/**
* 医保类型
*/
@ApiModelProperty(value ="MedicalInsuranceTypeEnum")
private String medicalType;
/**
* 医保门诊类型11:普通门诊14:门诊慢特病
*/
@ApiModelProperty(value ="医保门诊类型")
private String medicalOutpatientType;
/**
* 就诊医生
*/
@ApiModelProperty(value ="就诊医生")
private String doctorName;
/**
* 就诊医生
*/
@ApiModelProperty(value ="就诊医生id")
private String doctorId;
@ApiModelProperty(value ="科室id")
private String deptId;
@ApiModelProperty(value ="科室名字")
private String deptName;
@ApiModelProperty(value ="登记时间")
private String regTime;
@ApiModelProperty(value = "诊断")
private String diagnosis;
/**
* 慢病名
*/
@ApiModelProperty(value = "慢病名")
private String chronicDisease;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author lyx
* @description outpatient_type
* @date 2023-12-04
*/
@Data
public class OutpatientTypeVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 所属租户ID
*/
@ApiModelProperty(value = "所属租户ID")
private Integer tenantId;
/**
* 0:删除/1:正常/2:停用
*/
@ApiModelProperty(value = "0:删除/1:正常/2:停用")
private String status;
/**
* 诊疗费
*/
@ApiModelProperty(value ="诊疗费")
private BigDecimal diagFee;
/**
* 挂号费
*/
@ApiModelProperty(value ="挂号费")
private BigDecimal regFee;
/**
*
*/
@ApiModelProperty(value = "门诊类型分类")
private String outpatientTypeClass;
/**
* 门诊类型自动生成唯一编码
*/
@ApiModelProperty(value ="门诊类型")
private String outpatientType;
/**
* 门诊类型名称
*/
@ApiModelProperty(value = "门诊类型名称")
private String outpatientTypeName;
/**
* 挂号类型1:普通,2:专家 查字典
*/
@ApiModelProperty(value = "挂号类型1:普通,2:专家")
private String regType;
/**
* 挂号费项目编码
*/
@ApiModelProperty(value = "挂号费项目医保编码")
private String regItemHsCode;
/**
* 关联科室id
*/
@ApiModelProperty(value = "关联科室id")
private String deptIds;
/**
* 关联科室名称
*/
@ApiModelProperty(value = "关联科室名称")
private String deptNames;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import lombok.Data;
/**
* @author lc
* @date 2024/3/27 15:09
* @packageName com.ebaiyihui.onlineoutpatient.core.vo.nczk.cloudHis
* @description
*/
@Data
public class PatientDynamicMedicalVo {
// private List <String> primaryDiagno;
private String auxiliaryExamination;
private String patientName;
private String patientAge;
private String mainSuit;
private String clinicDepartment;
private String patientSex;
private String handle;
private String clinicDate;
private String presentHistory;
private String physicalExamination;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 支付dto
*
* @author lc
* @date 2024/04/02
*/
@Data
public class PayDto {
@ApiModelProperty(value = "当前操作人ID【自动获取】")
private Integer operatorId;
@ApiModelProperty(value = "当前操作人名称【自动获取】")
private String operatorName;
@ApiModelProperty(value ="所属租户ID【自动获取】")
private Integer tenantId;
@ApiModelProperty(value = "项目编号[挂账]")
private String projectNo;
@ApiModelProperty(value ="病历号[挂账]")
private String medicalRecordNo;
@ApiModelProperty(value ="性别[挂账]")
private Integer patientSex;
@ApiModelProperty(value ="患者证件号[挂账]")
private String patientCardNo;
@ApiModelProperty(value ="手机号[挂账]")
private String phone;
@ApiModelProperty(value="支付单号")
private String payOrderNo;
@ApiModelProperty(value="总金额【最大金额,所有总数】")
private BigDecimal amount;
@ApiModelProperty(value="应付总金额")
private BigDecimal totalAmount;
@ApiModelProperty(value="挂账金额")
private BigDecimal pendingAmount;
@ApiModelProperty(value="支付类型 1.在线支付 2.线下支付")
private Integer paymentType;
@ApiModelProperty(value="支付方式 PaymentMethodEnum")
private Integer paymentMethod;
@ApiModelProperty(name = "用户付款码, 非必传")
private String authCode;
@ApiModelProperty(name = "来源:1线下 2线上")
private String source;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;
/**
* 退款dto
*
* @author mac
* @date 2024/04/08
*/
@Data
public class PayRefundDto {
@ApiModelProperty(value= "当前操作人ID【自动获取】")
private Integer operatorId;
@ApiModelProperty(value= "当前操作人名称【自动获取】")
private String operatorName;
@ApiModelProperty(value= "所属租户ID【自动获取】")
private Integer tenantId;
@ApiModelProperty(value="支付单号")
private String payOrderNo;
@ApiModelProperty(value="应退金额")
private BigDecimal refundableAmount;
@ApiModelProperty(value="退款金额")
@NotBlank(message = "退款金额")
private BigDecimal refundAmount;
@ApiModelProperty(value= "退款方式【1.原路退款】")
private Integer refundMethod;
@ApiModelProperty(value="退款原因")
private String reasonForRefund;
@ApiModelProperty(value="订单号List")
private List<String> orderNoList;
@ApiModelProperty(value="交易单号")
private String transactionNumber;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 退款详情
*
* @author lc
* @date 2024/04/09
*/
@Data
public class PayRefundVo {
@ApiModelProperty(value="创建时间")
private Date createTime;
@ApiModelProperty(value="支付单号")
private String payOrderNo;
@ApiModelProperty(value="支付订单描述")
private String payOrderName;
@ApiModelProperty(value="总金额")
private BigDecimal amount;
@ApiModelProperty(value="优惠金额")
private BigDecimal actualPreferentialPayment;
@ApiModelProperty(value="应付总金额")
private BigDecimal totalAmount;
@ApiModelProperty(value="实际支付金额")
private BigDecimal actualPayment;
@ApiModelProperty(value="退款金额")
private BigDecimal refundAmount;
@ApiModelProperty(value="支付状态 PaymentStatusEnum")
private Integer paymentStatus;
@ApiModelProperty(value="支付方式 PaymentMethodEnum")
private Integer paymentMethod;
@ApiModelProperty(value="支付类型 1.在线支付 2.线下支付")
private Integer paymentType;
@ApiModelProperty(value="备注")
private String remark;
@ApiModelProperty(value="姓名")
private String name;
@ApiModelProperty(value="交易单号")
private String transactionNumber;
}
package com.ebaiyihui.family.doctor.common.vo.cloudHis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 支付详情
*
* @author lc
* @date 2024/04/02
*/
@Data
public class PayVo {
@ApiModelProperty(value="创建时间")
private Date createTime;
@ApiModelProperty(value="支付单号")
private String payOrderNo;
@ApiModelProperty(value="支付订单描述")
private String payOrderName;
@ApiModelProperty(value="总金额")
private BigDecimal amount;
@ApiModelProperty(value="优惠金额")
private BigDecimal actualPreferentialPayment;
@ApiModelProperty(value="应付总金额")
private BigDecimal totalAmount;
@ApiModelProperty(value="实际支付金额")
private BigDecimal actualPayment;
@ApiModelProperty(value="退款金额")
private BigDecimal refundAmount;
@ApiModelProperty(value="支付状态 PaymentStatusEnum")
private Integer paymentStatus;
@ApiModelProperty(value="支付方式 PaymentMethodEnum")
private Integer paymentMethod;
@ApiModelProperty(value="支付类型 1.在线支付 2.线下支付")
private Integer paymentType;
@ApiModelProperty(value="备注")
private String remark;
@ApiModelProperty(value="姓名")
private String name;
@ApiModelProperty(value="交易单号")
private String transactionNumber;
@ApiModelProperty(value="操作类型[1.支付 2 退款]")
private Integer operationType;
}
...@@ -280,6 +280,16 @@ ...@@ -280,6 +280,16 @@
<!-- <artifactId>tyme4j</artifactId>--> <!-- <artifactId>tyme4j</artifactId>-->
<!-- <version>1.0.3</version>--> <!-- <version>1.0.3</version>-->
<!-- </dependency>--> <!-- </dependency>-->
<dependency>
<groupId>com.ebaiyihui</groupId>
<artifactId>byh-his-gateway-api</artifactId>
<version>${byh-his-gateway-api.version}</version>
</dependency>
<dependency>
<groupId>com.ebaiyihui</groupId>
<artifactId>byh-his-gateway-api</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies> </dependencies>
......
...@@ -31,4 +31,14 @@ public class ProjProperties { ...@@ -31,4 +31,14 @@ public class ProjProperties {
private String getMedicalUserFills; private String getMedicalUserFills;
// 南昌众康配置url
private String admissionRegistration;
private String admissionUpdate;
private String updateOutpatientMedicalRecords;
private String createOrderCharge;
private String payment;
private String archiving;
private String refund;
private String checkDocAndDeptAndRegFeeInfo;
} }
package com.ebaiyihui.family.doctor.server.service;
import com.ebaiyihui.family.doctor.common.vo.cloudHis.*;
import com.ebaiyihui.his.pojo.vo.base.FrontResponse;
public interface HisTemplateService {
// /**
// * 手动在h云his挂个号
// * @param appPointRequestDTO
// * @return
// */
// void registrationAndTreatment();
/**
* Description: 南昌众康医院 -登记挂号
*
*/
MakeAnAppointmentRequestVO admissionRegistration(AppPointRequestDTO appPointRequestDTO);
/**
* Description: 南昌众康医院 -更新挂号信息(接诊)
*
*/
FrontResponse<String> updateAppointment(AppPointRequestDTO appPointRequestDTO);
/**
* Description: 南昌众康医院 -保存诊断信息
*
*/
FrontResponse<String> saveDiagnostic(DiagnosticReqDTO diagnosticReqDTO);
/**
* Description: 南昌众康医院 -订单预支付
*
*/
FrontResponse<FeeBillCreationVo> createCharge(FeeBillCreationDto feeBillCreationDto);
/**
* Description: 南昌众康医院 -订单支付
*
*/
FrontResponse<PayVo> payment(PayDto payDto);
/**
* Description: 南昌众康医院 -病历归档
*
*/
FrontResponse<String> archiving(ArchivingRequestDTO archivingRequestDTO);
/**
* Description: 南昌众康医院 -复诊号退款
*
*/
FrontResponse<PayRefundVo> refund(PayRefundDto payRefundDto);
/**
* Description: 南昌众康医院 -查询挂号类型医生及部门信息
*
*/
FrontResponse<OutpatientTypeVo> checkDocAndDeptAndRegFeeInfo(HisDeptAndDocCodeVo hisDeptAndDocCode);
}
package com.ebaiyihui.family.doctor.server.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ebaiyihui.family.doctor.common.vo.cloudHis.*;
import com.ebaiyihui.family.doctor.server.common.constants.ProjProperties;
import com.ebaiyihui.family.doctor.server.service.HisTemplateService;
import com.ebaiyihui.family.doctor.server.util.HttpKit;
import com.ebaiyihui.his.pojo.vo.base.FrontRequest;
import com.ebaiyihui.his.pojo.vo.base.FrontResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class HisTemplateServiceImpl implements HisTemplateService {
@Autowired
private ProjProperties projProperties;
/**
* 手动在云his挂号并接诊
* @param appPointRequestDTO
* @return
*/
@Override
public MakeAnAppointmentRequestVO admissionRegistration(AppPointRequestDTO appPointRequestDTO) {
String url = projProperties.getAdmissionRegistration();
FrontRequest<AppPointRequestDTO> request = new FrontRequest<>();
request.setBody(appPointRequestDTO);
try {
log.info("云his=>>新增就诊信息请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse<MakeAnAppointmentRequestVO> frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>新增就诊信息返回值:{}" , JSONObject.toJSONString(frontResponse));
MakeAnAppointmentRequestVO makeAnAppointmentRequestVO = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
MakeAnAppointmentRequestVO.class);
log.info("云his=>新增就诊记录返回值:{}" , JSONObject.toJSONString(makeAnAppointmentRequestVO));
return makeAnAppointmentRequestVO;
} catch (Exception e) {
log.error("新增预约信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<String> updateAppointment(AppPointRequestDTO appPointRequestDTO) {
String url = projProperties.getAdmissionUpdate();
FrontRequest<AppPointRequestDTO> request = new FrontRequest<>();
request.setBody(appPointRequestDTO);
try {
log.info("云his=>>更新挂号信息请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>更新挂号信息返回值:{}" + JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return null;
}
String data = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
String.class);
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("更新挂号信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<String> saveDiagnostic(DiagnosticReqDTO diagnosticReqDTO) {
String url = projProperties.getUpdateOutpatientMedicalRecords();
FrontRequest<DiagnosticReqDTO> request = new FrontRequest<>();
request.setBody(diagnosticReqDTO);
try {
log.info("云his=>>保存诊断信息请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>保存诊断信息返回值:{}" + JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return null;
}
String data = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
String.class);
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("保存诊断信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<FeeBillCreationVo> createCharge(FeeBillCreationDto feeBillCreationDto) {
String url = projProperties.getCreateOrderCharge();
FrontRequest<FeeBillCreationDto> request = new FrontRequest<>();
request.setBody(feeBillCreationDto);
try {
log.info("云his=>>复诊订单预支付信息请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>复诊订单预支付信息返回值:{}" + JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return null;
}
FeeBillCreationVo data = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
FeeBillCreationVo.class);
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("复诊订单预支付信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<PayVo> payment(PayDto payDto) {
String url = projProperties.getPayment();
FrontRequest<PayDto> request = new FrontRequest<>();
request.setBody(payDto);
try {
log.info("云his=>复诊订单支付信息请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>复诊订单支付信息返回值:{}" + JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return null;
}
PayVo data = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
PayVo.class);
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("复诊订单支付信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<String> archiving(ArchivingRequestDTO archivingRequestDTO) {
String url = projProperties.getArchiving();
FrontRequest<ArchivingRequestDTO> request = new FrontRequest<>();
request.setBody(archivingRequestDTO);
try {
log.info("云his=>复诊病历归档请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>复诊病历归档信息返回值:{}" + JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return null;
}
String data = JSON.toJSONString(frontResponse.getBody());
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("复诊病历归档信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<PayRefundVo> refund(PayRefundDto payRefundDto) {
String url = projProperties.getRefund();
FrontRequest<PayRefundDto> request = new FrontRequest<>();
request.setBody(payRefundDto);
try {
log.info("云his=>复诊退款请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>复诊退款信息返回值:{}" + JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return null;
}
PayRefundVo data = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
PayRefundVo.class);
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("复诊退款信息异常:{}", e.getMessage());
}
return null;
}
@Override
public FrontResponse<OutpatientTypeVo> checkDocAndDeptAndRegFeeInfo(HisDeptAndDocCodeVo hisDeptAndDocCode) {
String url = projProperties.getCheckDocAndDeptAndRegFeeInfo();
FrontRequest<HisDeptAndDocCodeVo> request = new FrontRequest<>();
request.setBody(hisDeptAndDocCode);
try {
log.info("云his=>复诊挂号类型医生部门校验请求url:{},param:{}", url, JSON.toJSONString(request));
String result = HttpKit.jsonPost(url, JSON.toJSONString(request));
FrontResponse frontResponse = JSONObject.toJavaObject(JSONObject.parseObject(result), FrontResponse.class);
log.info("云his=>复诊挂号类型医生部门校验返回值:{}" , JSONObject.toJSONString(frontResponse));
if (!FrontResponse.SUCCESS_CODE.equals(frontResponse.getCode())) {
return FrontResponse.error(null, FrontResponse.FAILED_CODE, frontResponse.getMessage());
}
OutpatientTypeVo data = JSON.parseObject(JSON.toJSONString(frontResponse.getBody()),
OutpatientTypeVo.class);
return FrontResponse.success(null, data);
} catch (Exception e) {
log.error("复诊挂号类型医生部门校验异常:{}", e.getMessage());
return FrontResponse.error(null, FrontResponse.FAILED_CODE, "复诊挂号类型医生部门校验异常");
}
}
}
...@@ -78,8 +78,8 @@ public class MobileBenefitPackageServiceImpl implements MobileBenefitPackageServ ...@@ -78,8 +78,8 @@ public class MobileBenefitPackageServiceImpl implements MobileBenefitPackageServ
registerCardReqVO.setCredNo(map.get("card_no")); registerCardReqVO.setCredNo(map.get("card_no"));
registerCardReqVO.setCredTypeCode("01"); registerCardReqVO.setCredTypeCode("01");
registerCardReqVO.setCredTypeName("居民身份证"); registerCardReqVO.setCredTypeName("居民身份证");
registerCardReqVO.setCardTypeCode("1703"); registerCardReqVO.setCardTypeCode("1702");
registerCardReqVO.setCardTypeName("虚拟就诊卡"); registerCardReqVO.setCardTypeName("实体卡");
registerCardReqVO.setOrganCode("130188"); registerCardReqVO.setOrganCode("130188");
registerCardReqVO.setOrganName("南昌众康医院"); registerCardReqVO.setOrganName("南昌众康医院");
registerCardReqVO.setTel(map.get("mobile")); registerCardReqVO.setTel(map.get("mobile"));
......
...@@ -104,10 +104,10 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -104,10 +104,10 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
//自定义-病历 //自定义-病历
messageInfos.add(getInformCustomPerPatientParam(patientSignInfo, messageInfos.add(getInformCustomPerPatientParam(patientSignInfo,
getTreatmentCard(admissionId), IMInformConstants.CASE_DOCTOR_TYPE)); getTreatmentCard(admissionId), IMInformConstants.CASE_DOCTOR_TYPE));
PersonImInformReq parameter = new PersonImInformReq(); // PersonImInformReq parameter = new PersonImInformReq();
parameter.setMessageInfos(messageInfos); // parameter.setMessageInfos(messageInfos);
parameter.setAdmissionId(admissionId); // parameter.setAdmissionId(admissionId);
parameter.setBusiCode(IMInformConstants.IM_SYSTEM_BUSINESS_CODE); // parameter.setBusiCode(IMInformConstants.IM_SYSTEM_BUSINESS_CODE);
if (pushImInform(messageInfos, admissionId)) { if (pushImInform(messageInfos, admissionId)) {
log.info("IM INFORM COMPLETE 医生开具复诊病例推送卡片,admissionId:{}", admissionId); log.info("IM INFORM COMPLETE 医生开具复诊病例推送卡片,admissionId:{}", admissionId);
} }
...@@ -219,7 +219,6 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ ...@@ -219,7 +219,6 @@ public class PatientMedicalRecordServiceImpl implements PatientMedicalRecordServ
private TreatmentCard getTreatmentCard(String admissionId) { private TreatmentCard getTreatmentCard(String admissionId) {
TreatmentCard treatmentCard = new TreatmentCard(); TreatmentCard treatmentCard = new TreatmentCard();
// todo 病例信息
PatientCaseDetail medicalInfoByAdmId = getMedicalInfoByAdmId(admissionId); PatientCaseDetail medicalInfoByAdmId = getMedicalInfoByAdmId(admissionId);
if (null == medicalInfoByAdmId) { if (null == medicalInfoByAdmId) {
......
...@@ -73,4 +73,13 @@ projprops: ...@@ -73,4 +73,13 @@ projprops:
familyDoctorThirdClientId: 202305062345 familyDoctorThirdClientId: 202305062345
familyDoctorThirdClientSecret: test2020145634 familyDoctorThirdClientSecret: test2020145634
medicalInfoByAdmId: https://testapi.chinachdu.com//cloud/sysinfocloud/patientDynamicMedical/getMedicalInfoByAdmId medicalInfoByAdmId: https://testapi.chinachdu.com//cloud/sysinfocloud/patientDynamicMedical/getMedicalInfoByAdmId
getMedicalUserFills: https://testapi.chinachdu.com//cloud/sysinfocloud/patientDynamicMedical/getMedicalUserFills getMedicalUserFills: https://testapi.chinachdu.com//cloud/sysinfocloud/patientDynamicMedical/getMedicalUserFills
\ No newline at end of file #南昌众康配置url
admissionRegistration: https://his-dev.chinachdu.com/basic-api/sdk-service/appoint/admission/registration
admissionUpdate: https://his-dev.chinachdu.com/basic-api/sdk-service/appoint/admission/updateById
updateOutpatientMedicalRecords: https://his-dev.chinachdu.com/basic-api/sdk-service/diagnostic/updateOutpatientMedicalRecords
createOrderCharge: https://his-dev.chinachdu.com/basic-api/sdk-service/order/createCharge
payment: https://his-dev.chinachdu.com/basic-api/sdk-service/order/payment
archiving: https://his-dev.chinachdu.com/basic-api/sdk-service/appoint/register/archiving
refund: https://his-dev.chinachdu.com/basic-api/sdk-service/order/refund
checkDocAndDeptAndRegFeeInfo: https://his-dev.chinachdu.com/basic-api/sdk-service/appoint/checkDocAndDeptAndRegFeeInfo
\ No newline at end of file
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
<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> <sysinfocloud-client.version>0.0.3-SNAPSHOT</sysinfocloud-client.version>
<byh-his-gateway-api.version>0.0.2-SNAPSHOT</byh-his-gateway-api.version>
</properties> </properties>
<activation> <activation>
<activeByDefault>true</activeByDefault><!-- 默认激活该profile节点--> <activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
...@@ -57,6 +58,7 @@ ...@@ -57,6 +58,7 @@
<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> <sysinfocloud-client.version>0.0.3-SNAPSHOT</sysinfocloud-client.version>
<byh-his-gateway-api.version>0.0.2-SNAPSHOT</byh-his-gateway-api.version>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论