Files
xk-doctor-wx/api/reception.js
2026-06-09 17:02:13 +08:00

445 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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';
// 门店维度患者列表(全渠道挂号 + 当前门店),其它页面如需可继续调用
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
})
}
// 获取正在接诊的患者列表
export function getAcceptingPatientList(data) {
return req.request({
url: '/newApi/doctor-reception-wx/accepting-patient-list',
method: 'GET',
data
})
}
// 获取患者详情(挂号维度的就诊信息,不含处方列表)
export function getPatientItem(id) {
return req.request({
url: '/newApi/doctor-reception-wx/patient-item',
method: 'GET',
data: { id }
})
}
/** 常用回复模板(与 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
})
}
/**
* 根据患者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'
})
}
// 获取药品使用方式列表
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
})
}
// 检查中药相冲
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;
});
}
// 获取我的诊所列表
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
})
}
// 接诊页匹配推广员传方
export function getSalespersonTransferByRegisterApi(registerId) {
return req.request({
url: '/newApi/transfer-prescription/get-salesperson-by-register',
method: 'GET',
data: { register_id: registerId }
})
}
// 切换诊所
export function switchStoreApi(data) {
return req.request({
url: '/newApi/doctor-reception-wx/switch-store',
method: 'POST',
data
})
}
// 获取处方详情(医生小程序 doctor-reception-wx 路由,与接诊接口同鉴权)
export function getPrescriptionInfoApi(id) {
return req.request({
url: '/newApi/doctor-reception-wx/prescription-detail',
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 }
})
}
// 获取常用方详情
// 注意prescription_v2 选用常用方已改走 list与 PC 对齐,主表行 + 平行药品行一次返回),不再调用此接口
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
})
}
// 获取公共医嘱列表
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
}
})
}