Files
digital-pilates/types/medication.ts
richarjiang bca6670390 Add Chinese translations for medication management and personal settings
- Introduced new translation files for medication, personal, and weight management in Chinese.
- Updated the main index file to include the new translation modules.
- Enhanced the medication type definitions to include 'ointment'.
- Refactored workout type labels to utilize i18n for better localization support.
- Improved sleep quality descriptions and recommendations with i18n integration.
2025-11-28 17:29:51 +08:00

155 lines
4.7 KiB
TypeScript
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.

/**
* 药物管理类型定义
*/
// 药物剂型
export type MedicationForm =
| 'capsule' // 胶囊
| 'pill' // 药片
| 'injection' // 注射
| 'spray' // 喷雾
| 'drop' // 滴剂
| 'syrup' // 糖浆
| 'other' // 其他
| 'ointment' // 软膏
// 服药状态
export type MedicationStatus =
| 'upcoming' // 待服用
| 'taken' // 已服用
| 'missed' // 已错过
| 'skipped'; // 已跳过
// 重复模式
export type RepeatPattern =
| 'daily' // 每日
| 'weekly' // 每周
| 'custom'; // 自定义
/**
* 药物基础信息
*/
export interface Medication {
id: string;
userId: string; // 用户ID由服务端返回
name: string; // 药物名称
photoUrl?: string | null; // 药物照片
form: MedicationForm; // 剂型
dosageValue: number; // 剂量值
dosageUnit: string; // 剂量单位
timesPerDay: number; // 每日次数
medicationTimes: string[]; // 服药时间列表 ['08:00', '20:00']
startDate: string; // 开始日期 ISO
endDate?: string | null; // 结束日期 ISO可选
expiryDate?: string | null; // 药品有效期 ISO可选
repeatPattern: RepeatPattern; // 重复模式
note?: string; // 备注
aiAnalysis?: string; // AI 分析结果Markdown 格式)
isActive: boolean; // 是否激活
deleted: boolean; // 是否已删除(软删除标记)
createdAt: string; // 创建时间
updatedAt: string; // 更新时间
}
/**
* 服药记录
*/
export interface MedicationRecord {
id: string;
medicationId: string; // 关联的药物ID
userId: string; // 用户ID由服务端返回
medication?: Medication; // 关联的药物信息(可选,用于展示)
scheduledTime: string; // 计划服药时间 ISO
actualTime?: string | null; // 实际服药时间 ISO
status: MedicationStatus; // 服药状态
note?: string; // 记录备注
deleted: boolean; // 是否已删除(软删除标记)
createdAt: string;
updatedAt: string;
}
/**
* 每日服药统计
*/
export interface DailyMedicationStats {
date: string; // 日期 'YYYY-MM-DD'
totalScheduled: number; // 计划总数
taken: number; // 已服用
missed: number; // 已错过
upcoming: number; // 待服用
completionRate: number; // 完成率 0-100
}
/**
* 用于展示的药物记录(组合了药物信息和服药记录)
*/
export interface MedicationDisplayItem {
id: string;
name: string;
dosage: string; // 格式化的剂量字符串,如 "1 粒胶囊"
scheduledTime: string; // 格式化的时间,如 "09:00"
frequency: string; // 频率描述,如 "每日"
status: MedicationStatus;
image?: any; // 图片资源
recordId?: string; // 服药记录ID用于更新状态
medicationId: string; // 药物ID
}
/**
* 药品 AI 分析 V2 结构化数据
*/
export interface MedicationAiAnalysisV2 {
suitableFor: string[]; // 适合人群
unsuitableFor: string[]; // 不适合人群/慎用
mainIngredients: string[]; // 主要成分
mainUsage: string; // 主要用途/功效
sideEffects: string[]; // 常见副作用
storageAdvice: string[]; // 储存建议
healthAdvice: string[]; // 健康建议/使用建议
}
/**
* AI 识别结果结构化数据
*/
export interface MedicationAiRecognitionResult {
name: string;
photoUrl?: string;
form?: MedicationForm;
dosageValue?: number;
dosageUnit?: string;
timesPerDay?: number;
medicationTimes?: string[];
startDate?: string;
endDate?: string | null;
expiryDate?: string | null;
note?: string;
suitableFor?: string[];
unsuitableFor?: string[];
mainIngredients?: string[];
mainUsage?: string;
sideEffects?: string[];
storageAdvice?: string[];
healthAdvice?: string[];
confidence?: number;
}
export type MedicationRecognitionStatus =
| 'pending'
| 'analyzing_product'
| 'analyzing_suitability'
| 'analyzing_ingredients'
| 'analyzing_effects'
| 'completed'
| 'failed';
export interface MedicationRecognitionTask {
taskId: string;
status: MedicationRecognitionStatus;
currentStep?: string;
progress?: number;
result?: MedicationAiRecognitionResult;
errorMessage?: string; // 识别失败时的错误信息
createdAt: string;
completedAt?: string;
}