import request from '@/utils/request' // 中医诊单列表 export function tcmDiagnosisLists(params: any) { return request.get({ url: '/tcm.diagnosis/lists', params }) } /** 二诊只读病例详情(T1+T2):返回 appointment + diagnosis + 未服务天数(不含跟踪记录) */ export function diagnosisReadonlyDetail(params: { id: number }) { return request.get({ url: '/tcm.diagnosis/readonlyDetail', params }) } /** 跟踪信息(血糖血压 / 饮食 / 运动)按日期区间 lazy load — 由 TrackingMatrix 调用 */ export function diagnosisTrackingWindow(params: { id: number start_date?: string end_date?: string }) { return request.get({ url: '/tcm.diagnosis/trackingWindow', params }) } /** 新增跟踪备注(按天合并追加,仅文字) */ export function diagnosisAddTrackingNote(params: { diagnosis_id: number tracking_content: string }) { return request.post({ url: '/tcm.diagnosis/addTrackingNote', params }) } /** 拉取跟踪备注列表(note_date DESC) */ export function diagnosisTrackingNotes(params: { diagnosis_id: number }) { return request.get({ url: '/tcm.diagnosis/trackingNotes', params }) } // 医助理诊单统计(按部门、按人) export function assistantDiagnosisStats(params?: { start_time?: string end_time?: string days?: number }) { return request.get({ url: '/tcm.diagnosis/assistantDiagnosisStats', params }) } // 添加中医诊单 export function tcmDiagnosisAdd(params: any) { return request.post({ url: '/tcm.diagnosis/add', params }) } // 编辑中医诊单 export function tcmDiagnosisEdit(params: any) { return request.post({ url: '/tcm.diagnosis/edit', params }) } // 删除中医诊单 export function tcmDiagnosisDelete(params: any) { return request.post({ url: '/tcm.diagnosis/delete', params }) } // 中医诊单详情 export function tcmDiagnosisDetail(params: any) { return request.get({ url: '/tcm.diagnosis/detail', params }) } /** 诊单挂号 / 取消挂号 操作日志 */ export function tcmDiagnosisGuahaoLogList(params: { id: number }) { return request.get({ url: '/tcm.diagnosis/guahaoLogList', params }) } // 检查手机号是否重复 export function checkPhone(params: any) { return request.post({ url: '/tcm.diagnosis/checkPhone', params }) } // 检查身份证号是否重复 export function checkIdCard(params: any) { return request.post({ url: '/tcm.diagnosis/checkIdCard', params }) } // 补全身份证号(自动更新年龄) export function fillIdCard(params: { id: number; id_card: string }) { return request.post({ url: '/tcm.diagnosis/fillIdCard', params }) } // 指派医助 export function tcmDiagnosisAssign(params: any) { return request.post({ url: '/tcm.diagnosis/assign', params }) } export function tcmDiagnosisAssignLogList(params: { id: number }) { return request.get({ url: '/tcm.diagnosis/assignLogList', params }) } // 获取医助列表 export function getAssistants() { return request.get({ url: '/tcm.diagnosis/getAssistants' }) } // 获取医生列表 export function getDoctors() { return request.get({ url: '/tcm.diagnosis/getDoctors' }) } // ========== 血糖血压记录 ========== // 添加血糖血压记录 export function bloodRecordAdd(params: any) { return request.post({ url: '/tcm.bloodRecord/add', params }) } // 编辑血糖血压记录 export function bloodRecordEdit(params: any) { return request.post({ url: '/tcm.bloodRecord/edit', params }) } // 删除血糖血压记录 export function bloodRecordDelete(params: any) { return request.post({ url: '/tcm.bloodRecord/delete', params }) } // 血糖血压记录详情 export function bloodRecordDetail(params: any) { return request.get({ url: '/tcm.bloodRecord/detail', params }) } // 获取患者的血糖血压记录列表 export function getRecordsByPatient(params: any) { return request.get({ url: '/tcm.bloodRecord/getRecordsByPatient', params }) } // 获取血糖趋势图数据 export function getBloodSugarTrend(params: any) { return request.get({ url: '/tcm.bloodRecord/getBloodSugarTrend', params }) } // ========== 饮食记录 ========== // 添加饮食记录 export function dietRecordAdd(params: any) { return request.post({ url: '/tcm.dietRecord/add', params }) } // 编辑饮食记录 export function dietRecordEdit(params: any) { return request.post({ url: '/tcm.dietRecord/edit', params }) } // 删除饮食记录 export function dietRecordDelete(params: any) { return request.post({ url: '/tcm.dietRecord/delete', params }) } // 饮食记录详情 export function dietRecordDetail(params: any) { return request.get({ url: '/tcm.dietRecord/detail', params }) } // 获取患者的饮食记录列表 export function getDietRecordsByPatient(params: any) { return request.get({ url: '/tcm.dietRecord/getRecordsByPatient', params }) } // ========== 运动记录 ========== // 添加运动记录 export function exerciseRecordAdd(params: any) { return request.post({ url: '/tcm.exerciseRecord/add', params }) } // 编辑运动记录 export function exerciseRecordEdit(params: any) { return request.post({ url: '/tcm.exerciseRecord/edit', params }) } // 删除运动记录 export function exerciseRecordDelete(params: any) { return request.post({ url: '/tcm.exerciseRecord/delete', params }) } // 运动记录详情 export function exerciseRecordDetail(params: any) { return request.get({ url: '/tcm.exerciseRecord/detail', params }) } // 获取患者的运动记录列表 export function getExerciseRecordsByPatient(params: any) { return request.get({ url: '/tcm.exerciseRecord/getRecordsByPatient', params }) } // 获取运动趋势图数据 export function getExerciseTrend(params: any) { return request.get({ url: '/tcm.exerciseRecord/getExerciseTrend', params }) } // ========== 音视频通话 ========== // 获取通话签名(忽略取消令牌,避免 open + 会话切换 watch 重复请求互斥取消) export function getCallSignature(params: any) { return request.post( { url: '/tcm.diagnosis/getCallSignature', params }, { ignoreCancelToken: true, isOpenRetry: false } ) } // 发起通话 export function startCall(params: any) { return request.post({ url: '/tcm.diagnosis/startCall', params }) } // 结束通话(忽略取消令牌:idle / afterCalling 可能并发触发相同请求体) export function endCall(params: any) { return request.post( { url: '/tcm.diagnosis/endCall', params }, { ignoreCancelToken: true, isOpenRetry: false } ) } // 获取通话记录 export function getCallRecords(params: any) { return request.get({ url: '/tcm.diagnosis/getCallRecords', params }) } // 将 TRTC 房间号写入通话记录(与云端录制回调 room 关联) export function bindCallRoom(params: { diagnosis_id: number; room_id: string }) { return request.post({ url: '/tcm.diagnosis/bindCallRoom', params }) } /** 医生接通并绑定房间后:发起腾讯云云端混流录制 */ export function startCloudRecording(params: { diagnosis_id: number }) { return request.post({ url: '/tcm.diagnosis/startCloudRecording', params }) } /** 本地录制完成后,将已上传视频的访问地址写入通话记录(可显式传 call_record_id) */ export function attachLocalCallRecording(params: { diagnosis_id: number file_url: string call_record_id?: number }) { return request.post( { url: '/tcm.diagnosis/attachLocalCallRecording', params }, { ignoreCancelToken: true, isOpenRetry: false } ) } export function createManualCallRecord(params: { diagnosis_id: number }) { return request.post( { url: '/tcm.diagnosis/createManualCallRecord', params }, { ignoreCancelToken: true, isOpenRetry: false } ) } /** 医助旁观当前进行中的视频通话(进房参数,Web TRTC 只拉流) */ export function getAssistantWatchCallParams(params: { diagnosis_id: number }) { return request.get({ url: '/tcm.diagnosis/watchCall', params }) } // ========== 小程序分享 ========== // 生成小程序码 export function generateMiniProgramQrcode(params: any) { return request.post({ url: '/tcm.diagnosis/generateMiniProgramQrcode', params }) } // 生成订单小程序码 export function generateOrderQrcode(params: any) { return request.post({ url: '/tcm.diagnosis/generateOrderQrcode', params }) } // ========== IM / 企业微信聊天记录 ========== /** 腾讯云 IM 单聊漫游消息(诊单维度:患者 patient_* 与医生 doctor_*) */ export function getImChatMessages(params: { diagnosis_id: number; only_archived?: 0 | 1 }) { return request.get({ url: '/tcm.diagnosis/getImChatMessages', params }) } /** 触发后台异步同步:从腾讯云 IM 拉取诊单聊天记录入归档表,请求即返回 */ export function triggerImChatSync(data: { diagnosis_id: number }) { return request.post({ url: '/tcm.diagnosis/triggerImChatSync', data }) } // 获取企业微信聊天记录 export function getWechatChatRecords(params: any) { return request.get({ url: '/tcm.diagnosis/getWechatChatRecords', params }) } // 添加企业微信聊天记录 export function addWechatChatRecord(params: any) { return request.post({ url: '/tcm.diagnosis/addWechatChatRecord', params }) } // 删除企业微信聊天记录 export function deleteWechatChatRecord(params: any) { return request.post({ url: '/tcm.diagnosis/deleteWechatChatRecord', params }) } // 获取企业微信外部联系人信息 export function getWechatExternalContact(params: any) { return request.get({ url: '/tcm.diagnosis/getWechatExternalContact', params }) } // 获取会话内容存档开启的成员列表 export function getMsgAuditPermitUsers() { return request.get({ url: '/tcm.diagnosis/getMsgAuditPermitUsers' }) } // ========== 中医处方单 ========== // 处方列表 export function prescriptionLists(params: any) { return request.get({ url: '/tcm.prescription/lists', params }) } // 添加处方 export function prescriptionAdd(params: any) { return request.post({ url: '/tcm.prescription/add', params }) } // 编辑处方 export function prescriptionEdit(params: any) { return request.post({ url: '/tcm.prescription/edit', params }) } /** 仅修正处方笺患者姓名、手机号与性别(不改审核状态),写入业务订单日志表 */ export function prescriptionPatchPatient(params: { id: number patient_name: string phone: string gender: number }) { return request.post({ url: '/tcm.prescription/patchPatient', params }) } // 删除处方 export function prescriptionDelete(params: { id: number }) { return request.post({ url: '/tcm.prescription/delete', params }) } // 处方详情 export function prescriptionDetail(params: { id: number }) { return request.get({ url: '/tcm.prescription/detail', params }) } // 根据诊单获取处方列表 export function prescriptionListByDiagnosis(params: { diagnosis_id: number }) { return request.get({ url: '/tcm.prescription/listByDiagnosis', params }) } // 根据预约获取处方 export function prescriptionGetByAppointment(params: { appointment_id: number }) { return request.get({ url: '/tcm.prescription/getByAppointment', params }) } // 作废处方 export function prescriptionVoid(params: { id: number }) { return request.post({ url: '/tcm.prescription/void', params }) } /** 处方审核:action approve | reject(驳回同时作废处方) */ export function prescriptionAudit(params: { id: number action: 'approve' | 'reject' remark?: string }) { return request.post({ url: '/tcm.prescription/audit', params }) } // ========== 处方业务订单(履约单,非支付单 zyt_order) ========== export function prescriptionOrderCreate(params: Record) { return request.post({ url: '/tcm.prescriptionOrder/create', params }) } export function prescriptionOrderLists(params: any) { return request.get({ url: '/tcm.prescriptionOrder/lists', params }) } /** 处方业务订单导出(export=1 预估条数,export=2 下载 Excel) */ export function prescriptionOrderExport(params: any) { return request.get({ url: '/tcm.prescriptionOrder/export', params }) } /** * 诊单下可关联的支付单(已支付 zyt_order;已占用且未撤回的会排除;编辑时传 prescription_order_id 保留当前单已选)。 * 服务端仅返回创建时间在 2026-04-20(含)之后的支付单;编辑时本单已关联的旧单仍会出现在列表中。 */ export function prescriptionOrderPaidPayOrders(params: { diagnosis_id: number prescription_order_id?: number }) { return request.get({ url: '/tcm.prescriptionOrder/paidPayOrders', params }) } export function prescriptionOrderWithdraw(params: { id: number }) { return request.post({ url: '/tcm.prescriptionOrder/withdraw', params }) } /** 业务订单物流轨迹(快递100 + 顺丰/京东官网链接) */ export function prescriptionOrderLogisticsTrace(params: { id: number express_company?: string /** 顺丰等:收件电话(建议完整 11 位,与面单一致;至少后 4 位) */ phone_tail?: string }) { return request.get({ url: '/tcm.prescriptionOrder/logisticsTrace', params }) } /** 直接调用京东官方物流接口刷新轨迹并落库(绕过快递100缓存) */ export function prescriptionOrderLogisticsJdUpdate(params: { id: number }) { return request.post({ url: '/tcm.prescriptionOrder/logisticsJdUpdate', params }) } export function prescriptionOrderDetail(params: { id: number }) { return request.get({ url: '/tcm.prescriptionOrder/detail', params }) } export function prescriptionOrderEdit(params: Record) { return request.post({ url: '/tcm.prescriptionOrder/edit', params }) } /** 业务订单详情:仅修改关联处方的患者姓名与手机号 */ export function prescriptionOrderPatchPrescriptionPatient(params: { id: number patient_name: string phone: string }) { return request.post({ url: '/tcm.prescriptionOrder/patchPrescriptionPatient', params }) } export function prescriptionOrderAuditPrescription(params: { id: number action: 'approve' | 'reject' remark?: string }) { return request.post({ url: '/tcm.prescriptionOrder/auditPrescription', params }) } export function prescriptionOrderAuditPayment(params: { id: number action: 'approve' | 'reject' remark?: string }) { return request.post({ url: '/tcm.prescriptionOrder/auditPayment', params }) } /** 撤回处方审核 */ export function prescriptionOrderRevokeRxAudit(params: { id: number }) { return request.post({ url: '/tcm.prescriptionOrder/revokeRxAudit', params }) } /** 撤回支付单审核 */ export function prescriptionOrderRevokePayAudit(params: { id: number }) { return request.post({ url: '/tcm.prescriptionOrder/revokePayAudit', params }) } /** 确认发货:将 fulfillment_status 从 2(履约中)推进到 5(已发货) */ export function prescriptionOrderShip(params: { id: number ship_mode?: 'gancao' | 'direct' express_company: string tracking_number: string }) { return request.post({ url: '/tcm.prescriptionOrder/ship', params }) } /** 为「已发货」订单新增支付单并重置支付审核为待审核 */ export function prescriptionOrderAddPayOrder(params: { id: number order_type: number pay_amount: number pay_remark?: string completion_request?: number }) { return request.post({ url: '/tcm.prescriptionOrder/addPayOrder', params }) } /** 为「已发货」订单关联已有支付单并重置支付审核为待审核 */ export function prescriptionOrderLinkPayOrder(params: { id: number pay_order_id?: number pay_order_ids?: number[] completion_request?: number }) { return request.post({ url: '/tcm.prescriptionOrder/linkPayOrder', params }) } /** 已发货/已签收:仅提交完单申请(不新增/关联支付单) */ export function prescriptionOrderRequestCompletion(params: { id: number }) { return request.post({ url: '/tcm.prescriptionOrder/requestCompletion', params }) } /** 将「已发货/已签收」且支付审核通过的订单结案(3=已完成 或 7-12 业务状态;退款请走 refund 或完成弹窗选「退款」) */ export function prescriptionOrderComplete(params: { id: number; fulfillment_status: number }) { return request.post({ url: '/tcm.prescriptionOrder/complete', params }) } /** 业务订单退款(须填写原因;refund_amount 可选,不传则退满可退上限) */ export function prescriptionOrderRefund(params: { id: number; reason: string; refund_amount?: number }) { return request.post({ url: '/tcm.prescriptionOrder/refund', params }) } /** 甘草药管家:中药处方下单(服务端 CTM_PREVIEW → CTM_SUBMIT_RECIPEL) */ export function prescriptionOrderSubmitGancaoRecipel(params: { id: number }) { return request.post({ url: '/tcm.prescriptionOrder/submitGancaoRecipel', params }) } /** 甘草药管家:预下单测试(仅 CTM_PREVIEW,不提交订单) */ export function prescriptionOrderPreviewGancaoRecipel(params: { id: number dose_count?: number medication_days?: number }) { return request.post({ url: '/tcm.prescriptionOrder/previewGancaoRecipel', params }) } /** 订单操作日志 */ export function prescriptionOrderLogs(params: { id: number }) { return request.get({ url: '/tcm.prescriptionOrder/logs', params }) } /** 修改订单金额 */ export function prescriptionOrderUpdateAmount(params: { id: number; amount: number }) { return request.post({ url: '/tcm.prescriptionOrder/updateAmount', params }) } /** 设置发货类型:gancao 甘草药房 / direct 洛阳药房 */ export function prescriptionOrderSetShipMode(params: { id: number; ship_mode: 'gancao' | 'direct' }) { return request.post({ url: '/tcm.prescriptionOrder/setShipMode', params }) } // ========== 处方库 ========== // 处方库列表 export function prescriptionLibraryLists(params: any) { return request.get({ url: '/tcm.prescriptionLibrary/lists', params }) } // 添加处方库 export function prescriptionLibraryAdd(params: any) { return request.post({ url: '/tcm.prescriptionLibrary/add', params }) } // 编辑处方库 export function prescriptionLibraryEdit(params: any) { return request.post({ url: '/tcm.prescriptionLibrary/edit', params }) } // 删除处方库 export function prescriptionLibraryDelete(params: { id: number }) { return request.post({ url: '/tcm.prescriptionLibrary/delete', params }) } // 处方库详情 export function prescriptionLibraryDetail(params: { id: number }) { return request.get({ url: '/tcm.prescriptionLibrary/detail', params }) } // ========== 诊单待办事项(T5) ========== /** 待办列表(按 diagnosis_id) */ export function diagnosisTodoLists(params: { diagnosis_id: number page_no?: number page_size?: number status?: number creator_id?: number }) { return request.get({ url: '/tcm.diagnosisTodo/lists', params }) } /** 新增待办(remind_time 为 unix 秒级时间戳) */ export function diagnosisTodoAdd(params: { diagnosis_id: number content: string remind_time: number }) { return request.post({ url: '/tcm.diagnosisTodo/add', params }) } /** 取消待办(仅 status=0 / 创建人或超管) */ export function diagnosisTodoCancel(params: { id: number }) { return request.post({ url: '/tcm.diagnosisTodo/cancel', params }) } /** 待办详情 */ export function diagnosisTodoDetail(params: { id: number }) { return request.get({ url: '/tcm.diagnosisTodo/detail', params }) }