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

173 lines
4.4 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.
/**
* 用户管理 / 就诊人档案 API诊所管理员 / 平台超管)
*/
import { req } from '@/common/js/index.js';
import { unwrapClinicRes } from '@/api/clinicAdmin.js';
function getProfileContext() {
const mode = uni.getStorageSync('loginMode');
if (mode === 'clinic_admin') {
return {
prefix: '/newApi/clinic-admin-user-patient-profile',
headerKey: '_clinicAdmin',
};
}
return {
prefix: '/newApi/platform-admin-user-patient-profile',
headerKey: '_platformAdmin',
};
}
function profileRequest(options) {
const ctx = getProfileContext();
return req.request({
...options,
header: {
...(options.header || {}),
[ctx.headerKey]: '1',
},
}).then((res) => {
const data = unwrapClinicRes(res);
// code 可能是数字 0 或字符串 "0";勿用 === 导致 ok 为 false、列表被丢弃
const ok = !!(res && (
Number(res.code) === 0
|| (res.errcode != null && Number(res.errcode) !== -1)
));
return { res, data, ok };
});
}
/**
* 从 profile 接口包装中取出列表 items兼容 result/data/items 多层)
*/
export function pickProfileItems(wrap) {
const raw = (wrap && wrap.data) || null;
const body = wrap && wrap.res;
const fromBody = body && (body.result || body.data);
let payload = raw;
// unwrap 后若仍带着 code/result再剥一层
if (payload && payload.items == null && payload.result != null) {
payload = payload.result;
}
if (payload == null && fromBody) {
payload = fromBody;
}
if (Array.isArray(payload)) {
return payload;
}
if (payload && Array.isArray(payload.items)) {
return payload.items;
}
if (payload && Array.isArray(payload.list)) {
return payload.list;
}
return [];
}
export function getUserPatientList(params) {
const { prefix } = getProfileContext();
return profileRequest({ url: `${prefix}/list`, method: 'GET', data: params });
}
/** 会员管理:微信用户分页列表 */
export function getWxUserList(params) {
const { prefix } = getProfileContext();
return profileRequest({ url: `${prefix}/user-list`, method: 'GET', data: params });
}
/** 某微信用户下的就诊人列表 */
export function getPatientListByUser(userId) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/patient-list-by-user`,
method: 'GET',
data: { user_id: userId },
});
}
export function getUserPatientDetail(upId) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/detail`,
method: 'GET',
data: { up_id: upId },
});
}
export function getUserPatientRegisterList(upId, params) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/register-list`,
method: 'GET',
data: { up_id: upId, ...params },
});
}
/** 就诊人单次挂号详情(基本信息 + 选药 + 回答记录) */
export function getUserPatientRegisterDetail(registerId) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/register-detail`,
method: 'GET',
data: { register_id: registerId },
});
}
export function getUserPatientPrescriptionList(upId, params) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/prescription-list`,
method: 'GET',
data: { up_id: upId, ...params },
});
}
export function getUserPatientOrderList(upId, params) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/order-list`,
method: 'GET',
data: { up_id: upId, ...params },
});
}
/**
* 就诊人回访记录列表
* @param {number|string} upId 就诊人ID
* @param {object} params { pageSize }
*/
export function getPatientCallLogList(upId, params) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/call-log-list`,
method: 'GET',
data: { up_id: upId, ...(params || {}) },
});
}
/**
* 创建就诊人回访记录
* @param {number|string} upId 就诊人ID
* @param {object} payload { phone, call_at, result, tags, conclusion, remark, next_at }
*/
export function createPatientCallLog(upId, payload) {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/call-log-create`,
method: 'POST',
data: { up_id: upId, ...(payload || {}) },
});
}
/**
* 小程序回访字典(启用中的结果/标签 + 颜色)
* 返回结构:{ results: [{value,name,color}], tags: [...] }
*/
export function getPatientCallLogDict() {
const { prefix } = getProfileContext();
return profileRequest({
url: `${prefix}/call-log-dict`,
method: 'GET',
});
}