Files
xk-doctor-wx/api/reception.js

667 lines
16 KiB
JavaScript
Raw Permalink Normal View History

2026-03-06 13:59:22 +08:00
import {
req
} from '@/common/js/index.js';
import {
loadValid as loadTraditionalTcmValid,
save as saveTraditionalTcm,
DEFAULT_TTL_MS,
} from '@/subPackages/sub_workbench/prescription_v2/utils/traditionalTcmLocalCache.js';
2026-03-06 13:59:22 +08:00
// 门店维度患者列表(全渠道挂号 + 当前门店),其它页面如需可继续调用
2026-03-06 13:59:22 +08:00
export function getPatientList(data) {
return req.request({
url: '/newApi/doctor-reception-wx/patient-list',
method: 'GET',
data
})
}
/** 在线复诊患者列表(与 PC online-consultation/get-patient-list 一致type: 1当前 2历史可选 store_id */
export function getOnlineConsultationPatientListApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/online-consultation-patient-list',
method: 'GET',
data
})
}
2026-05-07 11:04:56 +08:00
// 获取正在接诊的患者列表
export function getAcceptingPatientList(data) {
return req.request({
url: '/newApi/doctor-reception-wx/accepting-patient-list',
method: 'GET',
data
})
}
2026-07-03 07:57:26 +08:00
/** 工作台看板统计 */
export function getWorkbenchStats(data) {
return req.request({
url: '/newApi/doctor-reception-wx/workbench-stats',
method: 'GET',
data
})
}
// 获取患者详情(挂号维度的就诊信息,不含处方列表)
2026-03-06 13:59:22 +08:00
export function getPatientItem(id) {
return req.request({
url: '/newApi/doctor-reception-wx/patient-item',
method: 'GET',
data: { id }
})
}
2026-07-03 07:57:26 +08:00
/** 医生应用特色方到开方区 */
export function applySpecialPrescriptionApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/apply-special-prescription',
method: 'POST',
data
})
}
/** 常用回复模板(与 PC online-consultation/get-quick-reply-list 同源) */
export function getQuickReplyListApi() {
return req.request({
url: '/newApi/doctor-reception-wx/get-quick-reply-list',
method: 'GET'
})
}
/** 本次挂号处方分页 */
export function getRegisterPrescriptionList(data) {
return req.request({
url: '/newApi/doctor-reception-wx/register-prescription-list',
method: 'GET',
data
})
}
/** 患者历史处方分页(可排除某次挂号) */
export function getPatientPrescriptionHistory(data) {
return req.request({
url: '/newApi/doctor-reception-wx/patient-prescription-history',
method: 'GET',
data
})
}
/** 撤回处方(待支付) */
export function withdrawPrescriptionWx(data) {
return req.request({
url: '/newApi/doctor-reception-wx/withdraw-prescription',
method: 'POST',
data
})
}
2026-03-06 13:59:22 +08:00
/**
* 根据患者ID获取患者信息
* @param {number} patientId - 患者ID
* @returns {Promise}
*/
export function getPatientInfoByPatientId(patientId) {
return req.request({
url: '/newApi/doctor-reception-wx/get-patient-info-by-patient-id',
method: 'GET',
data: { patient_id: patientId }
})
}
// 接诊
export function receptionApi(id) {
return req.request({
url: '/newApi/doctor-reception-wx/reception',
method: 'POST',
data: { id }
})
}
// 拒诊
export function refuseReceptionApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/refuse-reception',
method: 'POST',
data
})
}
// 获取拒诊原因列表
export function refuseReceptionListApi() {
return req.request({
url: '/newApi/doctor-reception-wx/refuse-reception-list',
method: 'GET'
})
}
// 结束问诊
export function endOfDiagnosisApi(id) {
return req.request({
url: '/newApi/doctor-reception-wx/end-of-diagnosis',
method: 'POST',
data: { id }
})
}
// 获取商品列表
export function getProductListDoctorReception(data) {
return req.request({
url: '/newApi/doctor-reception-wx/product-list',
method: 'GET',
data
})
}
/** 中药全局快捷克数(与药品无关,每次打开中药抽屉拉取) */
export function getChineseMedicineQuickGramsApi() {
return req.request({
url: '/newApi/doctor-reception-wx/chinese-medicine-quick-grams',
method: 'GET'
})
}
2026-03-06 13:59:22 +08:00
// 获取药品使用方式列表
export function getDrugUseList() {
return req.request({
url: '/newApi/doctor-reception-wx/drug-use-list',
method: 'GET'
})
}
// 获取药品使用方式及默认用法用量
export function getDrugUseWithDefault(drugId) {
return req.request({
url: '/newApi/doctor-reception-wx/drug-use-with-default',
method: 'GET',
data: { drug_id: drugId }
})
}
// 获取疾病列表
export function getDiseaseList(name, page = 1, pageSize = 20) {
return req.request({
url: '/newApi/doctor-reception-wx/disease-list',
// url: '/doctor-reception-wx/disease-list',
method: 'GET',
data: { name, page, page_size: pageSize }
})
}
// 获取医生的常用诊断列表
export function getMyDiseaseList() {
return req.request({
url: '/newApi/doctor-reception-wx/my-disease-list',
method: 'GET'
})
}
// 添加常用诊断
export function addMyDisease(diseaseId) {
return req.request({
url: '/newApi/doctor-reception-wx/add-my-disease',
method: 'POST',
data: { disease_id: diseaseId }
})
}
// 删除常用诊断
export function deleteMyDisease(id) {
return req.request({
url: '/newApi/doctor-reception-wx/delete-my-disease',
method: 'POST',
data: { id }
})
}
// 获取医嘱列表
export function getDoctorOrderList() {
return req.request({
url: '/newApi/doctor-reception-wx/doctor-order-list',
// url: '/doctor-reception-wx/doctor-order-list',
method: 'GET'
})
}
// 创建医嘱
export function createDoctorOrder(content) {
return req.request({
url: '/newApi/doctor-reception-wx/create-doctor-order',
method: 'POST',
data: { content }
})
}
// 删除医嘱
export function deleteDoctorOrder(id) {
return req.request({
url: '/newApi/doctor-reception-wx/delete-doctor-order',
method: 'POST',
data: { id }
})
}
// 添加西药处方
export function addWestPrescription(data) {
return req.request({
url: '/newApi/doctor-reception-wx/add-west-prescription',
method: 'POST',
data
})
}
/**
* 按药品查可选配送仓药店开方选仓
* PC 同源 admin JWT 接口医生小程序侧若无权限需后端另开 doctor 路由此处与 delivery-warehouse-drug 对齐
*/
export function getDeliveryWarehouseOptionsByDrugs(data) {
return req.request({
url: '/newApi/doctor-reception-wx/delivery-warehouse-options-by-drugs',
method: 'GET',
data
})
}
2026-03-06 13:59:22 +08:00
// 检查中药相冲
export function checkChineseMedicineConflictApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/check-chinese-medicine-conflict',
method: 'POST',
data
})
}
function parseTraditionalTcmResponse(inner) {
if (!inner || typeof inner !== 'object') return null;
const { diseases, method, syndrome, expires_at, expires_at_ms, cache_ttl_seconds } = inner;
if (!Array.isArray(diseases) || !Array.isArray(method) || !Array.isArray(syndrome)) {
return null;
}
let expiresAtMs;
if (typeof expires_at_ms === 'number' && expires_at_ms > Date.now()) {
expiresAtMs = expires_at_ms;
} else if (typeof expires_at === 'number' && expires_at > 0) {
expiresAtMs = expires_at * 1000;
} else {
const ttlSec =
typeof cache_ttl_seconds === 'number' && cache_ttl_seconds > 0
? cache_ttl_seconds
: DEFAULT_TTL_MS / 1000;
expiresAtMs = Date.now() + ttlSec * 1000;
}
return {
payload: { diseases, method, syndrome },
expiresAtMs,
};
}
/**
* 中医证候/治法/疾病术语表未过期读本地否则 GET doctor-reception-wx PC 同源数据 + 过期元数据
* @returns {Promise<{ diseases: array, method: array, syndrome: array }>}
*/
export function getTraditionalChineseMedicineJson() {
const cached = loadTraditionalTcmValid();
if (cached) {
return Promise.resolve(cached);
}
return req
.request({
url: '/newApi/doctor-reception-wx/traditional-chinese-medicine-all',
method: 'GET',
})
.then((res) => {
if (res && res.wakaryReqToReject) {
return Promise.reject(res);
}
const code = res && res.code;
if (code != null && code !== 0 && code !== 200) {
return Promise.reject(new Error((res && res.message) || 'traditional tcm api error'));
}
const inner = res && (res.result != null ? res.result : res.data);
const parsed = parseTraditionalTcmResponse(inner);
if (!parsed) {
return Promise.reject(new Error('traditional tcm invalid'));
}
saveTraditionalTcm(parsed.payload, parsed.expiresAtMs);
return parsed.payload;
});
}
2026-03-06 13:59:22 +08:00
// 获取我的诊所列表
export function getMyStoreListApi() {
return req.request({
url: '/newApi/doctor-reception-wx/get-my-store-list',
method: 'GET'
})
}
// 获取当前诊所类型
export function getCurrentStoreTypeApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/get-current-store-type',
method: 'GET',
data
})
}
/**
* 开方处方类型选项含默认选中可选 icon / icon_text
* 后端按 clinic_type 判断 default未传 icon 时前端不展示
*/
export function getPrescriptionTypeOptionsApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/prescription-type-options',
method: 'GET',
data: data || {}
})
}
2026-06-18 10:20:24 +08:00
// 订单百分比调价配置(开方前)
export function getPriceAdjustConfigApi(storeId) {
return req.request({
url: '/newApi/doctor-reception-wx/price-adjust-config',
method: 'GET',
data: storeId ? { store_id: storeId } : {}
})
}
2026-06-09 17:02:13 +08:00
// 接诊页匹配推广员传方
export function getSalespersonTransferByRegisterApi(registerId) {
return req.request({
url: '/newApi/transfer-prescription/get-salesperson-by-register',
method: 'GET',
data: { register_id: registerId }
})
}
2026-03-06 13:59:22 +08:00
// 切换诊所
export function switchStoreApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/switch-store',
method: 'POST',
data
})
}
// 获取处方详情(医生小程序 doctor-reception-wx 路由,与接诊接口同鉴权)
2026-03-06 13:59:22 +08:00
export function getPrescriptionInfoApi(id) {
return req.request({
url: '/newApi/doctor-reception-wx/prescription-detail',
2026-03-06 13:59:22 +08:00
method: 'GET',
data: { id }
})
}
// 获取加工规则列表
export function getProcessRuleList(data) {
return req.request({
url: '/newApi/doctor-reception-wx/process-rule-list',
method: 'GET',
data
})
}
// 获取煎煮方式列表
export function getUseWayList() {
return req.request({
url: '/newApi/doctor-reception-wx/drug-use-way-list',
method: 'GET'
})
}
// 获取常用方列表
export function getCommonPrescriptionListApi(storeId) {
return req.request({
url: '/newApi/common-prescription/list',
method: 'GET',
data: { store_id: storeId }
})
}
// 获取常用方详情
2026-05-07 14:25:26 +08:00
// 注意prescription_v2 选用常用方已改走 list与 PC 对齐,主表行 + 平行药品行一次返回),不再调用此接口
2026-03-06 13:59:22 +08:00
export function getCommonPrescriptionDetailApi(id, type) {
return req.request({
url: '/newApi/common-prescription/detail',
method: 'GET',
data: { id, type }
})
}
// 保存西药常用方
export function saveWestCommonPrescriptionApi(data) {
return req.request({
url: '/newApi/common-prescription/save-west',
method: 'POST',
data
})
}
// 保存中药常用方
export function saveChineseCommonPrescriptionApi(data) {
return req.request({
url: '/newApi/common-prescription/save-chinese',
method: 'POST',
data
})
}
// 保存颗粒药/保健食品常用方
export function saveGranularCommonPrescriptionApi(data) {
return req.request({
url: '/newApi/common-prescription/save-granular',
method: 'POST',
data
})
}
// 删除常用方
export function deleteCommonPrescriptionApi(data) {
return req.request({
url: '/newApi/common-prescription/delete',
method: 'POST',
data
})
}
2026-03-06 13:59:22 +08:00
// 获取公共医嘱列表
export function getDoctorOrderCommonList(data) {
return req.request({
url: '/newApi/doctor-reception-wx/common-list',
method: 'GET',
data
})
}
/** 根据挂号获取转诊处方信息(非转诊挂号时 result 为 null */
export function getTransferPrescriptionByRegisterApi(register_id) {
return req.request({
url: '/newApi/doctor-reception-wx/transfer-prescription-by-register',
method: 'GET',
data: { register_id }
})
}
/** 根据挂号与门店获取就诊经历药品列表(与 PC online-consultation/get-drugs-by-register-id 对齐) */
export function getDrugsByRegisterIdApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/get-drugs-by-register-id',
method: 'GET',
data: {
register_id: data.register_id,
store_id: data.store_id
}
})
}
/** 获取病历 */
export function getMedicalRecordApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/get-medical-record',
method: 'GET',
data
})
}
/** 保存病历 */
export function saveMedicalRecordApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/save-medical-record',
method: 'POST',
data
})
}
/** 清空病历 */
export function clearMedicalRecordApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/clear-medical-record',
method: 'POST',
data
})
}
2026-08-05 16:22:34 +08:00
/** 引用最近病历(兼容旧入口,优先用列表抽屉) */
export function latestMedicalRecordApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/latest-medical-record',
method: 'GET',
data
})
}
2026-08-05 16:22:34 +08:00
/** 按就诊人拉取病历列表(引用历史抽屉) */
export function listMedicalRecordByPatientApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/list-medical-record-by-patient',
method: 'GET',
data
})
}
/** 病历词条检索 */
export function searchMedicalRecordEntryApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/search-medical-record-entry',
method: 'GET',
data
})
}
/** AI 写病历(需先填主诉;返回草稿字段,不自动保存) */
export function aiGenerateMedicalRecordApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-generate-medical-record',
method: 'POST',
data
})
}
/** AI 功能门闸:醒目提示 + 是否已签署知情同意 */
export function aiFeatureGateApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-feature-gate',
method: 'GET',
data
})
}
/** AI 知情同意签署(按 VIP 功能码,签署一次即可) */
export function aiAgreeConsentApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-agree-consent',
method: 'POST',
data
})
}
/** AI 给处方(支持 use_entrusted_process / process_rule_id 等扩展字段) */
export function aiGeneratePrescriptionApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-generate-prescription',
method: 'POST',
data
})
}
/** 本挂号 AI 生成历史(轻量列表) */
export function aiListGenerationsApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-list-generations',
method: 'GET',
data
})
}
/** AI 生成详情(点选历史) */
export function aiGenerationDetailApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-generation-detail',
method: 'GET',
data
})
}
/** AI 处方药名模糊对照 */
export function aiMatchPrescriptionDrugsApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-match-prescription-drugs',
method: 'POST',
data
})
}
2026-08-07 14:18:39 +08:00
/** AI 出方:改选对照药品并写回 result_json标记 is_modified */
export function aiSavePrescriptionDrugSelectionApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/ai-save-prescription-drug-selection',
method: 'POST',
data
})
}
2026-08-08 14:53:12 +08:00
/** 金方列表VIPgolden_formulaxk-api业务在 result */
export function goldenFormulaListApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/golden-formula-list',
method: 'GET',
data
})
}
2026-08-08 14:53:12 +08:00
/** 金方来源下拉导入弹窗筛选用xk-api */
export function goldenFormulaSourceOptionApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/golden-formula-source-option',
method: 'GET',
data
})
}
/** 金方详情xk-api */
export function goldenFormulaDetailApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/golden-formula-detail',
method: 'GET',
data
})
}
2026-08-08 14:53:12 +08:00
/** 金方导入药名对照xk-api */
export function goldenFormulaApplyApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/golden-formula-apply',
method: 'POST',
data
})
}
2026-08-08 14:53:12 +08:00
/** 保存医生金方匹配选择xk-api */
export function goldenFormulaSaveMatchApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/golden-formula-save-match',
method: 'POST',
data
})
}