syntax = "proto3"; package com.ywt.gapi.consult; //option java_generic_services = true; option java_multiple_files = true; option java_package = "com.ywt.gapi.consult"; option java_outer_classname = "ConsultProto"; //创建咨询订单请求 message CreateConsultingOrderRequest{ int32 userId = 1; string mobile = 2; string patientName = 3; int32 age = 4; int32 sex = 5; string desc = 6; string images = 7; int32 doctorId = 8; int32 recordId = 9; string idNo = 10; //身份证号 int32 userPatientId = 11; //对应user_patient表的id int32 terminal = 12; //当前终端 int32 shared = 13; //咨询内容是否可被分享查看,1-是 0-否 int32 consultType = 14; //咨询类型:1-咨询 2-复诊 int32 free = 15; // 免费问诊标识,0-非免费,1-免费问诊;版本:v2.7.0 三天免费问诊,v2.8.0 免费咨询排班等需求 int32 teamId = 16; bool mrVisible = 17; // 允许医生查看我的病历、检验检查等资料 int32 consultFee = 18; // 互联网医院v4.5.7(新冠线上门诊)新增咨询费用 int32 type = 19; // 订单类型,0-线上问诊,1-医生团队问诊(根据consult_order的team_id),2-新冠线上门诊,默认0 } //创建咨询订单响应 message CreateConsultingOrderResponse{ int32 code = 1; repeated string imageUrl = 2; string sessionId = 3; int32 orderId = 4; int32 orderType = 5; string msg = 6; } //订单支付成功通知消息 message PayConsultingCallbackRequest{ string orderNo = 1; int32 orderId = 2; int32 payType = 3; //1: 微信; 2: 管理员线下收费 string custom = 4; //回发创建单时设置的自定义数据 int32 bizId = 5; string paymentNo = 6; //订单中心支付流水号 int32 userId = 7;//用户id string prepayId = 8; //本次支付微信 prepay_id int32 terminal = 9; //发起支付终端 string openid = 10; //完成微信支付的微信用户 openid int32 paymentChannel = 11; string oneTimeCustom = 12;//本次操作自定义数据 } //订单支付成功通知响应消息 message PayConsultingCallbackResponse{ int32 code = 1; string info = 2; } //咨询订单接诊/退诊请求 message ArrangeConsultingRequest{ int32 doctorId = 1; //医生Id int32 orderId = 2; //订单Id int32 isArranged = 3; //1-接诊 0-退诊 } //咨询订单接诊/退诊响应 message ArrangeConsultingResponse{ int32 code = 1; string msg = 2; int32 patientId = 3; } message CancelConsultingRequest{ int32 orderId = 1; int32 userId = 2; } message CancelConsultingResponse{ int32 code = 1; string msg = 2; } //咨询订单退款回调 message RefundConsultingCallbackRequest{ int32 amount = 1; //已退金额 int32 bizId = 2; int32 orderId = 3; string orderNo = 4; string refundNo = 5; //退款单号 int32 refundStatus = 6; //退款状态 1: 退款成功,2: 退款异常,3: 退款关闭 string custom = 7; //回发 custom 数据 } message RefundConsultingCallbackResponse{ int32 code = 1; string msg = 2; } //线上咨询排班 message ConsultingSchedule{ int32 scheduleId = 1; int32 doctorId = 2; int64 createTime = 3; int32 datePeriod = 4; int32 repeated = 5; int32 week = 6; int64 scheduleDate = 7; } //线上咨询排班列表 message GetConsultingScheduleListRequest{ int32 doctorId = 1; } message GetConsultingScheduleListResponse{ int32 code = 1; string msg = 2; repeated ConsultingSchedule schedule = 3; } //设置线上咨询排班 message SetConsultingScheduleRequest{ int32 doctorId = 1; int32 repeated = 2; string serviceDate = 3; int32 datePeriod = 4; } message SetConsultingScheduleResponse{ int32 code = 1; string msg = 2; } //取消线上排班 message CancelConsultingScheduleRequest{ int32 doctorId = 1; int32 scheduleId = 2; } message CancelConsultingScheduleResponse{ int32 code = 1; string msg = 2; } // 咨询订单定义类 message ConsultOrder{ int32 orderId = 1; int32 consultId = 2; string orderTitle = 3; int32 orderType = 4; string orderNo = 5; string patientName = 6; int32 patientSex = 7; string strPatientSex = 8; string hospitalName = 9; string doctorName = 10; string deptName = 11; int64 createTime = 12; int32 orderAmount = 13; string strOrderAmount = 14; string statusName = 15; int32 doctorId = 16; int32 paymentStatus = 17; int32 userId = 18; string patientMobile = 19; int32 patientAge = 20; string description = 21; int32 hospitalId = 22; int32 deptId = 23; string sessionId = 24; int32 status = 25; int32 patientId = 26; string idNo = 27; int32 extStatus = 28; int64 acceptTime = 29; int32 teamId = 30;// 团队 id int32 teamOperateDocId = 31;// 团队操作医生 id string teamOperateDocName = 32; string address = 33; int64 payTime = 34; int32 typeInt = 35; // 订单类型(数字),0-线上问诊,1-医生团队问诊(根据consult_order的team_id),2-新冠线上门诊,默认0 string typeStr = 36; // 订单类型(文字),0-线上问诊,1-医生团队问诊(根据consult_order的team_id),2-新冠线上门诊,默认0 } // 得到咨询订单列表 message GetConsultOrderListRequest{ int32 userId = 1; int32 pageIndex = 2; int32 pageSize = 3; int32 hospitalId = 4; } message GetConsultOrderListResponse{ int32 code = 1; string msg = 2; repeated ConsultOrder consult = 3; int32 count = 4; int32 totalPages = 5; } //获取咨询订单详情请求 message GetConsultOrderRequest{ int32 orderId = 1; int32 userId = 2; } //获取咨询订单详情响应 message GetConsultOrderResponse{ int32 code = 1; string msg = 2; ConsultOrder consult = 3; //咨询订单详情 repeated string imageUrl = 4; //订单图片链接 } message GetLatestAcceptedConsultOrderRequest { int32 doctorId = 1; int32 userId = 2; } message GetLatestAcceptedConsultOrderResponse { int32 code = 1; string info = 2; ConsultOrder consultOrder = 3; } message GetFreeConsultDoctorListRequest { int32 pageIndex = 1; int32 pageSize = 2; string keyword = 3; int32 hospitalId = 4; int32 dayOfWeek = 5;//星期几 int32 terminal = 6; } message FreeConsultDoctorInfo { int32 id = 1; int32 doctorId = 2; string doctorName = 3; string hospitalIds = 4; int32 weight = 5; int32 monday = 6; int32 tuesday = 7; int32 wednesday = 8; int32 thursday = 9; int32 friday = 10; int32 saturday = 11; int32 sunday = 12; string title = 13; string hospitalName = 14; string deptName = 15; string avatar = 16; string specialty= 17; bool negReception = 18; string negReceptionHint = 19; int32 consultFee = 20; // 咨询费:分 string consultFeeStr = 21; // 咨询费:元 } message GetFreeConsultDoctorListResponse { int32 code = 1; string info = 2; repeated FreeConsultDoctorInfo doctorInfo = 3; int32 count = 4; int32 totalPages = 5; } message GetFreeConsultDoctorRequest { int32 hospitalId = 1; int32 doctorId = 2; int32 terminal = 3; } message GetFreeConsultDoctorResponse { int32 code = 1; string info = 2; FreeConsultDoctorInfo doctorInfo = 3; } // 发送病历消息请求 message SendMedRecordRequest { int32 terminal = 1; string content = 2; int32 orderId = 3;// 咨询或随访订单 id int32 fromUserId = 4; string fromUserName = 5; int32 toUserId = 6; string toUserName = 7; string sessionId = 8; int32 bizType = 9;// 业务类型 int32 medRecordId = 10;// 在院病历 id int32 medRecordType = 11;// 在院病历类型:1-检验报告;2-检查报告;3-门诊病历 int32 messageType = 12;// 消息类型 string idCard = 13; } // 发送病历消息响应 message SendMedRecordResponse { int32 code = 1; string info = 2; } message SendDocScheduleRequest { int32 terminal = 1; string content = 2; int32 orderId = 3;// 咨询或随访订单 id int32 fromUserId = 4; string fromUserName = 5; int32 toUserId = 6; string toUserName = 7; string sessionId = 8; int32 bizType = 9;// 业务类型 int32 doctorId = 10;// 排班的医生 id,如果不指定,就默认当前发送消息的医生 int32 messageType = 11;// 消息类型 } //咨询业务逻辑类 // 对应 rpc 项目的 ConsultingServiceImpl 类 service ConsultingService{ //创建咨询订单 rpc createConsultingOrder(CreateConsultingOrderRequest) returns (CreateConsultingOrderResponse); //订单支付成功通知 rpc payConsultingCallback(PayConsultingCallbackRequest) returns (PayConsultingCallbackResponse); //咨询订单接诊/退诊 rpc arrangeConsulting(ArrangeConsultingRequest) returns (ArrangeConsultingResponse); //取消咨询订单 rpc cancelConsulting(CancelConsultingRequest) returns (CancelConsultingResponse); //咨询订单退款回调 rpc refundConsultingCallback(RefundConsultingCallbackRequest) returns (RefundConsultingCallbackResponse); //线上咨询排班列表 rpc getConsultingScheduleList(GetConsultingScheduleListRequest) returns (GetConsultingScheduleListResponse); //设置线上咨询排班 rpc setConsultingSchedule(SetConsultingScheduleRequest) returns (SetConsultingScheduleResponse); //取消线上排班 rpc cancelConsultingSchedule(CancelConsultingScheduleRequest) returns (CancelConsultingScheduleResponse); // 得到咨询订单列表 rpc getConsultOrderList(GetConsultOrderListRequest) returns (GetConsultOrderListResponse); //获取咨询订单详情 rpc getConsultOrder(GetConsultOrderRequest) returns (GetConsultOrderResponse); // 获取最近一次已接诊的咨询订单 rpc getLatestAcceptedConsultOrder(GetLatestAcceptedConsultOrderRequest) returns (GetLatestAcceptedConsultOrderResponse); // 获取免费问诊医生列表 rpc getFreeConsultDoctorList(GetFreeConsultDoctorListRequest) returns (GetFreeConsultDoctorListResponse); rpc getFreeConsultDoctor(GetFreeConsultDoctorRequest) returns (GetFreeConsultDoctorResponse); // 发送在院病历(包括检验结果、检查结果、门诊病历) rpc sendMedRecord(SendMedRecordRequest) returns (SendMedRecordResponse); // 发送线下出诊排班 rpc sendDocSchedule(SendDocScheduleRequest) returns (SendMedRecordResponse); }