| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /**
- * 二维码相关类型定义
- */
- /**
- * 二维码数据格式
- * 用于定义二维码中包含的患者和检查信息
- */
- export interface QRCodeData {
- // 基础患者信息(必填)
- patient_id: string; // 患者ID
- patient_name: string; // 患者姓名
- patient_sex: string; // 性别: 'M', 'F', 'O'
-
- // 年龄信息(可选,如果提供则会覆盖 patient_dob)
- patient_age?: {
- number: number; // 数值
- unit: 'D' | 'M' | 'Y'; // 单位:天/月/年
- };
-
- // 出生日期(可选,如果提供 patient_age 则优先使用 age)
- patient_dob?: string; // ISO 8601 格式
-
- // 扩展信息(可选)
- accession_number?: string; // 检查号
- patient_size?: string; // 患者尺寸: 'Small', 'Medium', 'Large'
- weight?: number; // 体重(kg)
- thickness?: number; // 厚度(cm)
- length?: number; // 身高(cm)
- ref_physician?: string; // 医师
- operator_id?: string; // 操作员
- comment?: string; // 备注
-
- // 宠物专用字段(可选)
- owner_name?: string; // 宠物主人
- variety?: string; // 品种
- chip_number?: string; // 芯片号
- sex_neutered?: 'ALTERED' | 'UNALTERED'; // 绝育状态
-
- // 人医专用字段(可选)
- pregnancy_status?: 'NOT_PREGNANT' | 'POSSIBLY_PREGNANT' | 'DEFINITELY_PREGNANT' | 'UNKNOWN';
-
- // 体位信息(可选,如果存在则自动进入检查)
- views?: Array<{
- view_id: string; // 体位ID
- procedure_id: string; // 协议ID
- }>;
- }
- /**
- * 二维码扫描状态
- * 用于 Redux 状态管理
- */
- export interface QRCodeScanState {
- isScanning: boolean; // 是否正在扫描
- isProcessing: boolean; // 是否正在处理数据
- error: string | null; // 错误信息
- lastScanData: QRCodeData | null; // 最后扫描的数据
- autoRegisterPending: boolean; // 是否等待自动注册
- }
- /**
- * 数据验证结果
- */
- export interface ValidationResult {
- success: boolean; // 验证是否成功
- errors: string[]; // 错误列表
- warnings: string[]; // 警告列表
- }
|