/**
 * Phase 3: 批处理模式 - 临床研究信息提取模板
 * 
 * 提取临床研究的8个核心字段：
 * 1. 研究目的
 * 2. 研究设计
 * 3. 研究对象
 * 4. 样本量（text类型，保留原文描述）
 * 5. 干预组
 * 6. 对照组
 * 7. 结果及数据
 * 8. 牛津评级（提供详细标准）
 */

export interface TemplateField {
  key: string;
  label: string;
  type: 'text' | 'longtext' | 'number';
  description?: string;
}

export interface BatchTemplate {
  id: string;
  name: string;
  description: string;
  outputFields: TemplateField[];
  systemPrompt: string;
  userPrompt: string;
}

export const CLINICAL_RESEARCH_TEMPLATE: BatchTemplate = {
  id: 'clinical_research',
  name: '临床研究信息提取',
  description: '提取研究目的、设计、对象、样本量、干预、对照、结果、证据等级',
  
  outputFields: [
    { 
      key: 'research_purpose', 
      label: '研究目的', 
      type: 'text',
      description: '研究想要解决的问题或验证的假设'
    },
    { 
      key: 'research_design', 
      label: '研究设计', 
      type: 'text',
      description: '研究类型（RCT、队列研究等）'
    },
    { 
      key: 'research_subjects', 
      label: '研究对象', 
      type: 'text',
      description: '纳入/排除标准、人群特征'
    },
    { 
      key: 'sample_size', 
      label: '样本量', 
      type: 'text', // ✅ text类型，保留原文描述
      description: '实际纳入的受试者人数'
    },
    { 
      key: 'intervention_group', 
      label: '干预组', 
      type: 'text',
      description: '实验组的干预措施'
    },
    { 
      key: 'control_group', 
      label: '对照组', 
      type: 'text',
      description: '对照组的情况'
    },
    { 
      key: 'results_data', 
      label: '结果及数据', 
      type: 'longtext',
      description: '主要结局指标的具体数据'
    },
    { 
      key: 'oxford_level', 
      label: '牛津评级', 
      type: 'text',
      description: '证据等级(1a-5)'
    },
  ],
  
  systemPrompt: `你是一个专业的临床研究数据提取助手。
你的任务是从临床研究文献中提取结构化信息。
你的回答必须严格遵循JSON格式，不要有任何额外的文字说明。`,
  
  userPrompt: `请仔细阅读这篇临床研究文献，提取以下信息：

1. **研究目的**：本研究想要解决什么问题或验证什么假设？用1-2句话概括。

2. **研究设计**：研究类型，如随机对照试验(RCT)、队列研究、病例对照研究、横断面研究、系统评价/Meta分析等。

3. **研究对象**：描述纳入标准、排除标准、人群特征（年龄、性别、疾病状态等）。

4. **样本量**：实际纳入的受试者人数，保留原文描述（如"干预组156人，对照组152人，共308人"）。

5. **干预组**：实验组接受的治疗或干预措施，包括药物名称、剂量、给药方式、疗程等。

6. **对照组**：对照组的情况，如安慰剂、标准治疗、空白对照等。

7. **结果及数据**：主要结局指标的具体数据、统计结果、P值、置信区间等。包括基线数据对比和终点数据对比。

8. **牛津评级**：根据研究设计判断证据等级，参考以下标准：
   - **1a**：系统评价/Meta分析（多个RCT的汇总分析）
   - **1b**：单个随机对照试验(RCT)
   - **2a**：设计良好的对照研究（无随机化）
   - **2b**：设计良好的准实验研究（队列研究、病例对照研究）
   - **3a**：描述性研究（横断面研究、病例系列）
   - **3b**：个案报告（单一病例）
   - **4**：专家意见、共识声明
   - **5**：基础研究（动物实验、体外研究）

请严格按照以下JSON格式输出，不要有任何额外说明或前言：
{
  "research_purpose": "...",
  "research_design": "...",
  "research_subjects": "...",
  "sample_size": "...",
  "intervention_group": "...",
  "control_group": "...",
  "results_data": "...",
  "oxford_level": "..."
}`,
};

// 导出所有预设模板
export const PRESET_TEMPLATES: Record<string, BatchTemplate> = {
  [CLINICAL_RESEARCH_TEMPLATE.id]: CLINICAL_RESEARCH_TEMPLATE,
};

// 获取模板
export function getTemplate(templateId: string): BatchTemplate | null {
  return PRESET_TEMPLATES[templateId] || null;
}

// 获取所有模板列表
export function getAllTemplates(): BatchTemplate[] {
  return Object.values(PRESET_TEMPLATES);
}









