审计后续 H1: 补齐小程序端透析功能,对接后端 12 个 API 路由。 新增内容: - 患者端: 透析记录列表/详情 + 透析处方列表/详情(只读,4 页面) - 医护端: 透析记录列表/详情/创建 + 处方列表/详情/创建(6 页面) - Service 层: dialysis.ts(患者端只读)+ doctor/dialysis.ts(医护端 CRUD) - 集成入口: 医生工作台快捷操作 + 患者"我的"菜单 + 路由注册 - 基础设施: api.delete 扩展支持 data 参数(后端 delete 需要 version)
93 lines
2.4 KiB
TypeScript
93 lines
2.4 KiB
TypeScript
import { api } from './request';
|
|
|
|
// ── Types ─────────────────────────────────────────────
|
|
|
|
export interface DialysisRecord {
|
|
id: string;
|
|
patient_id: string;
|
|
dialysis_date: string;
|
|
start_time?: string;
|
|
end_time?: string;
|
|
dry_weight?: number;
|
|
pre_weight?: number;
|
|
post_weight?: number;
|
|
pre_bp_systolic?: number;
|
|
pre_bp_diastolic?: number;
|
|
post_bp_systolic?: number;
|
|
post_bp_diastolic?: number;
|
|
pre_heart_rate?: number;
|
|
post_heart_rate?: number;
|
|
ultrafiltration_volume?: number;
|
|
dialysis_duration?: number;
|
|
blood_flow_rate?: number;
|
|
dialysis_type: string;
|
|
symptoms?: Record<string, unknown>;
|
|
complication_notes?: string;
|
|
status: string;
|
|
reviewed_by?: string;
|
|
reviewed_at?: string;
|
|
created_at: string;
|
|
updated_at: string;
|
|
version: number;
|
|
}
|
|
|
|
export interface DialysisPrescription {
|
|
id: string;
|
|
patient_id: string;
|
|
dialyzer_model?: string;
|
|
membrane_area?: number;
|
|
dialysate_potassium?: number;
|
|
dialysate_calcium?: number;
|
|
dialysate_bicarbonate?: number;
|
|
anticoagulation_type?: string;
|
|
anticoagulation_dose?: string;
|
|
target_ultrafiltration_ml?: number;
|
|
target_dry_weight?: number;
|
|
blood_flow_rate?: number;
|
|
dialysate_flow_rate?: number;
|
|
frequency_per_week?: number;
|
|
duration_minutes?: number;
|
|
vascular_access_type?: string;
|
|
vascular_access_location?: string;
|
|
effective_from?: string;
|
|
effective_to?: string;
|
|
status: string;
|
|
prescribed_by?: string;
|
|
notes?: string;
|
|
created_at: string;
|
|
updated_at: string;
|
|
version: number;
|
|
}
|
|
|
|
// ── Patient-facing API (read-only) ────────────────────
|
|
|
|
export async function listDialysisRecords(
|
|
patientId: string,
|
|
params?: { page?: number; page_size?: number },
|
|
) {
|
|
return api.get<{ data: DialysisRecord[]; total: number }>(
|
|
`/health/patients/${patientId}/dialysis-records`,
|
|
params,
|
|
);
|
|
}
|
|
|
|
export async function getDialysisRecord(id: string) {
|
|
return api.get<DialysisRecord>(`/health/dialysis-records/${id}`);
|
|
}
|
|
|
|
export async function listDialysisPrescriptions(params?: {
|
|
patient_id?: string;
|
|
status?: string;
|
|
page?: number;
|
|
page_size?: number;
|
|
}) {
|
|
return api.get<{ data: DialysisPrescription[]; total: number }>(
|
|
'/health/dialysis-prescriptions',
|
|
params,
|
|
);
|
|
}
|
|
|
|
export async function getDialysisPrescription(id: string) {
|
|
return api.get<DialysisPrescription>(`/health/dialysis-prescriptions/${id}`);
|
|
}
|