- refactor(web): PatientDetail.tsx 拆分为 4 个子组件(737→334行) - refactor(web): 提取 usePaginatedData hook 消除重复分页状态 - feat(db): patient.id_number varchar(20)→varchar(255) 容纳加密值 - test(health): 添加预约模块集成测试(创建/列表/租户隔离) - test(plugin): 添加 6 个 SQL 注入 sanitize 测试 - fix(miniprogram): 7 个 service 文件 URL 构建规范化(params 对象) - fix(miniprogram): 跨平台字段名对齐(birth_date/start_time/end_time)
43 lines
907 B
TypeScript
43 lines
907 B
TypeScript
import { api } from './request';
|
|
|
|
export interface Patient {
|
|
id: string;
|
|
name: string;
|
|
gender?: string;
|
|
birth_date?: string;
|
|
phone?: string;
|
|
id_number?: string;
|
|
relation?: string;
|
|
version: number;
|
|
}
|
|
|
|
export async function listPatients() {
|
|
return api.get<{ data: Patient[]; total: number }>('/health/patients', {
|
|
page: 1,
|
|
page_size: 100,
|
|
});
|
|
}
|
|
|
|
export async function createPatient(data: {
|
|
name: string;
|
|
gender?: string;
|
|
birth_date?: string;
|
|
phone?: string;
|
|
id_number?: string;
|
|
}) {
|
|
return api.post<Patient>('/health/patients', data);
|
|
}
|
|
|
|
export interface PatientUpdateInput {
|
|
name?: string;
|
|
gender?: string;
|
|
birth_date?: string;
|
|
phone?: string;
|
|
id_number?: string;
|
|
relation?: string;
|
|
}
|
|
|
|
export async function updatePatient(id: string, data: PatientUpdateInput, version: number) {
|
|
return api.put<Patient>(`/health/patients/${id}`, { ...data, version });
|
|
}
|