chore: initialize medical consultation agent demo
This commit is contained in:
@@ -0,0 +1,516 @@
|
||||
CREATE DATABASE IF NOT EXISTS `medical_consultation_agent`
|
||||
DEFAULT CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
USE `medical_consultation_agent`;
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
DROP TABLE IF EXISTS `audit_logs`;
|
||||
DROP TABLE IF EXISTS `user_learning_profiles`;
|
||||
DROP TABLE IF EXISTS `training_record`;
|
||||
DROP TABLE IF EXISTS `scoring_rule`;
|
||||
DROP TABLE IF EXISTS `teaching_case`;
|
||||
DROP TABLE IF EXISTS `traditional_case`;
|
||||
DROP TABLE IF EXISTS `case_base`;
|
||||
DROP TABLE IF EXISTS `rubric_templates`;
|
||||
DROP TABLE IF EXISTS `prompt_templates`;
|
||||
DROP TABLE IF EXISTS `knowledge_chunks`;
|
||||
DROP TABLE IF EXISTS `knowledge_documents`;
|
||||
DROP TABLE IF EXISTS `knowledge_sources`;
|
||||
DROP TABLE IF EXISTS `evaluation_report_exports`;
|
||||
DROP TABLE IF EXISTS `evaluation_records`;
|
||||
DROP TABLE IF EXISTS `session_submissions`;
|
||||
DROP TABLE IF EXISTS `session_orders`;
|
||||
DROP TABLE IF EXISTS `session_runtime_messages`;
|
||||
DROP TABLE IF EXISTS `training_sessions`;
|
||||
DROP TABLE IF EXISTS `case_exam_items`;
|
||||
DROP TABLE IF EXISTS `cases`;
|
||||
DROP TABLE IF EXISTS `users`;
|
||||
DROP TABLE IF EXISTS `departments`;
|
||||
|
||||
CREATE TABLE `departments` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '科室ID',
|
||||
`name` varchar(100) NOT NULL COMMENT '科室名称',
|
||||
`code` varchar(50) NOT NULL COMMENT '科室编码',
|
||||
`parent_id` int(11) DEFAULT NULL COMMENT '父级科室ID',
|
||||
`sort_order` int(11) DEFAULT 0 COMMENT '排序',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否激活',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_department_code` (`code`),
|
||||
KEY `idx_department_parent` (`parent_id`),
|
||||
CONSTRAINT `fk_department_parent` FOREIGN KEY (`parent_id`) REFERENCES `departments` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='科室表';
|
||||
|
||||
CREATE TABLE `users` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '内部占位用户ID',
|
||||
`external_user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`display_name` varchar(100) DEFAULT NULL COMMENT '展示名',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_external_user_id` (`external_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='宿主用户引用占位表';
|
||||
|
||||
CREATE TABLE `case_base` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '源库病例主表ID',
|
||||
`title` varchar(255) NOT NULL COMMENT '病例标题',
|
||||
`case_type` varchar(30) NOT NULL COMMENT '病例分类/训练类别',
|
||||
`difficulty` varchar(20) NOT NULL DEFAULT 'medium' COMMENT '难度',
|
||||
`difficulty_score` int DEFAULT NULL COMMENT '难度分值',
|
||||
`chief_complaint` longtext NOT NULL COMMENT '主诉',
|
||||
`description` longtext NOT NULL COMMENT '病例描述',
|
||||
`patient_age` int DEFAULT NULL COMMENT '患者年龄',
|
||||
`patient_gender` varchar(10) NOT NULL COMMENT '患者性别',
|
||||
`tags` varchar(500) NOT NULL DEFAULT '' COMMENT '标签',
|
||||
`symptom_tags` json NOT NULL COMMENT '症状标签',
|
||||
`disease_tags` json NOT NULL COMMENT '疾病标签',
|
||||
`competency_tags` json NOT NULL COMMENT '能力标签',
|
||||
`guideline_tags` json NOT NULL COMMENT '指南标签',
|
||||
`knowledge_points` json NOT NULL COMMENT '知识点',
|
||||
`icd_codes` varchar(500) NOT NULL DEFAULT '' COMMENT 'ICD编码',
|
||||
`estimated_minutes` int DEFAULT NULL COMMENT '预计训练时长',
|
||||
`osce_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否OSCE',
|
||||
`rag_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用指南检索',
|
||||
`ai_prompt_template` longtext NOT NULL COMMENT 'AI病人提示词模板引用',
|
||||
`multimodal_assets` json NOT NULL COMMENT '多模态资源',
|
||||
`vector_status` smallint NOT NULL DEFAULT 0 COMMENT '向量状态',
|
||||
`publish_status` smallint NOT NULL DEFAULT 1 COMMENT '发布状态',
|
||||
`status` smallint NOT NULL DEFAULT 1 COMMENT '业务状态',
|
||||
`created_by_id` bigint DEFAULT NULL COMMENT '创建人ID',
|
||||
`department_id` bigint DEFAULT NULL COMMENT '科室ID',
|
||||
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
|
||||
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_case_base_department` (`department_id`),
|
||||
KEY `idx_case_base_case_type` (`case_type`),
|
||||
KEY `idx_case_base_status` (`status`, `publish_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='源库病例主表';
|
||||
|
||||
CREATE TABLE `traditional_case` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '传统病例ID',
|
||||
`standard_diagnosis` longtext NOT NULL COMMENT '标准诊断',
|
||||
`standard_treatment` longtext NOT NULL COMMENT '标准治疗',
|
||||
`guideline_reference` longtext NOT NULL COMMENT '指南参考',
|
||||
`case_id` bigint NOT NULL COMMENT '病例主表ID',
|
||||
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
|
||||
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_traditional_case_id` (`case_id`),
|
||||
CONSTRAINT `fk_traditional_case_base` FOREIGN KEY (`case_id`) REFERENCES `case_base` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='传统病例扩展表';
|
||||
|
||||
CREATE TABLE `teaching_case` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '教学互动病例ID',
|
||||
`teaching_goal` longtext NOT NULL COMMENT '教学目标',
|
||||
`discussion_questions` longtext NOT NULL COMMENT '讨论问题',
|
||||
`teacher_guide` longtext NOT NULL COMMENT '教师引导',
|
||||
`scoring_focus` longtext NOT NULL COMMENT '评分重点',
|
||||
`case_id` bigint NOT NULL COMMENT '病例主表ID',
|
||||
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
|
||||
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_teaching_case_id` (`case_id`),
|
||||
CONSTRAINT `fk_teaching_case_base` FOREIGN KEY (`case_id`) REFERENCES `case_base` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='教学互动病例扩展表';
|
||||
|
||||
CREATE TABLE `scoring_rule` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评分规则ID',
|
||||
`dimension` varchar(50) NOT NULL COMMENT '评分维度',
|
||||
`competency_dimension` varchar(50) NOT NULL COMMENT '能力维度',
|
||||
`score_weight` decimal(5,2) NOT NULL COMMENT '分值/权重',
|
||||
`ai_auto_score` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否AI自动评分',
|
||||
`osce_dimension` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否OSCE维度',
|
||||
`scoring_standard` longtext NOT NULL COMMENT '评分标准',
|
||||
`rubric_json` json NOT NULL COMMENT '结构化评分细则',
|
||||
`case_id` bigint NOT NULL COMMENT '病例主表ID',
|
||||
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
|
||||
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_scoring_rule_case_dimension` (`case_id`, `dimension`, `competency_dimension`),
|
||||
KEY `idx_scoring_rule_case` (`case_id`),
|
||||
CONSTRAINT `fk_scoring_rule_case_base` FOREIGN KEY (`case_id`) REFERENCES `case_base` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='源库评分规则表';
|
||||
|
||||
CREATE TABLE `cases` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '病例ID',
|
||||
`source_case_id` bigint DEFAULT NULL COMMENT '源库病例ID,对应 case_base.id',
|
||||
`case_code` varchar(64) NOT NULL COMMENT '病例编码',
|
||||
`department_id` int(11) NOT NULL COMMENT '所属科室ID',
|
||||
`title` varchar(100) NOT NULL COMMENT '病例标题',
|
||||
`difficulty` enum('easy','medium','hard') DEFAULT 'medium' COMMENT '难度',
|
||||
`patient_name` varchar(50) DEFAULT NULL COMMENT '患者姓名',
|
||||
`patient_age` int(11) DEFAULT NULL COMMENT '患者年龄',
|
||||
`patient_gender` enum('male','female') DEFAULT NULL COMMENT '患者性别',
|
||||
`patient_occupation` varchar(50) DEFAULT NULL COMMENT '职业',
|
||||
`chief_complaint` text COMMENT '主诉',
|
||||
`present_illness` text COMMENT '现病史',
|
||||
`past_history` text COMMENT '既往史',
|
||||
`personal_history` text COMMENT '个人史',
|
||||
`family_history` text COMMENT '家族史',
|
||||
`physical_exam` json DEFAULT NULL COMMENT '体格检查数据',
|
||||
`auxiliary_exam` json DEFAULT NULL COMMENT '辅助检查数据',
|
||||
`diagnosis_primary` text COMMENT '主要诊断',
|
||||
`diagnosis_differential` json DEFAULT NULL COMMENT '鉴别诊断列表',
|
||||
`diagnosis_basis` text COMMENT '诊断依据',
|
||||
`treatment_plan` json DEFAULT NULL COMMENT '治疗方案',
|
||||
`consultation_config` json DEFAULT NULL COMMENT '会诊配置',
|
||||
`inquiry_options` json DEFAULT NULL COMMENT '问诊选项(互动模式)',
|
||||
`knowledge_videos` json DEFAULT NULL COMMENT '知识点视频(互动模式)',
|
||||
`quiz_questions` json DEFAULT NULL COMMENT '教学题库(互动模式)',
|
||||
`key_symptoms` json DEFAULT NULL COMMENT '关键症状',
|
||||
`key_exams` json DEFAULT NULL COMMENT '关键检查',
|
||||
`key_points` json DEFAULT NULL COMMENT '考核要点',
|
||||
`evidence_reasoning_chain` json DEFAULT NULL COMMENT '诊断循证思维链',
|
||||
`assessment_config` json DEFAULT NULL COMMENT '评分与考核配置',
|
||||
`ai_patient_profile` json DEFAULT NULL COMMENT 'AI病人人设',
|
||||
`patient_opening` text COMMENT 'AI病人开场白',
|
||||
`hidden_patient_info` json DEFAULT NULL COMMENT '问到才回答的隐藏信息',
|
||||
`has_teaching_video` tinyint(1) DEFAULT 0 COMMENT '是否有教学视频',
|
||||
`has_knowledge_points` tinyint(1) DEFAULT 0 COMMENT '是否有知识点',
|
||||
`has_quiz` tinyint(1) DEFAULT 0 COMMENT '是否有教学题库',
|
||||
`source_pdf_name` varchar(255) DEFAULT NULL COMMENT '来源PDF名称',
|
||||
`supported_training_type` enum('case_analysis','diagnosis_treatment','consultation') DEFAULT 'case_analysis' COMMENT '支持的训练类别(单选)',
|
||||
`supported_mode` enum('free_chat','interactive') DEFAULT 'free_chat' COMMENT '支持的交互模式(单选)',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否激活',
|
||||
`created_by` int(11) DEFAULT NULL COMMENT '创建人ID',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_case_code` (`case_code`),
|
||||
KEY `idx_department_id` (`department_id`),
|
||||
KEY `idx_difficulty` (`difficulty`),
|
||||
KEY `idx_is_active` (`is_active`),
|
||||
KEY `idx_created_by` (`created_by`),
|
||||
KEY `idx_training_type` (`supported_training_type`),
|
||||
KEY `idx_mode` (`supported_mode`),
|
||||
KEY `idx_cases_source_case` (`source_case_id`),
|
||||
CONSTRAINT `fk_case_department` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_case_creator` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='病例表';
|
||||
|
||||
CREATE TABLE `case_exam_items` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '检查项目ID',
|
||||
`case_id` int(11) NOT NULL COMMENT '病例ID',
|
||||
`source_case_id` bigint DEFAULT NULL COMMENT '源库病例ID,用于后续从 case_base 直接读取检查项目',
|
||||
`item_code` varchar(64) NOT NULL COMMENT '项目编码',
|
||||
`item_name` varchar(128) NOT NULL COMMENT '项目名称',
|
||||
`item_type` enum('lab','imaging','physical_exam','vital_sign','other') NOT NULL COMMENT '项目类型',
|
||||
`category` varchar(64) DEFAULT NULL COMMENT '分类',
|
||||
`result_text` text NOT NULL COMMENT '结果文本',
|
||||
`result_structured` json DEFAULT NULL COMMENT '结构化结果',
|
||||
`is_key` tinyint(1) DEFAULT 0 COMMENT '是否关键检查',
|
||||
`is_abnormal` tinyint(1) DEFAULT 0 COMMENT '是否异常',
|
||||
`score_weight` decimal(5,2) DEFAULT 0.00 COMMENT '评分权重',
|
||||
`display_order` int(11) DEFAULT 0 COMMENT '展示顺序',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_case_item_code` (`case_id`,`item_code`),
|
||||
KEY `idx_exam_case_type` (`case_id`,`item_type`),
|
||||
KEY `idx_case_exam_source_case` (`source_case_id`),
|
||||
CONSTRAINT `fk_exam_case` FOREIGN KEY (`case_id`) REFERENCES `cases` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='病例检查检验项目表';
|
||||
|
||||
CREATE TABLE `training_sessions` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会话ID',
|
||||
`session_code` varchar(64) NOT NULL COMMENT '会话编码',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`tenant_id` varchar(128) DEFAULT NULL COMMENT '租户或项目ID',
|
||||
`class_id` varchar(128) DEFAULT NULL COMMENT '班级或课程ID',
|
||||
`entry_scene` varchar(64) DEFAULT NULL COMMENT '入口场景',
|
||||
`case_id` int(11) NOT NULL COMMENT '病例ID',
|
||||
`source_case_id` bigint DEFAULT NULL COMMENT '源库病例ID,保留 case_id 兼容旧运行表',
|
||||
`training_type` enum('case_analysis','diagnosis_treatment','consultation') NOT NULL COMMENT '训练类别',
|
||||
`mode` enum('novice','practice','teaching') NOT NULL COMMENT '训练模式',
|
||||
`score_type` enum('percentage','five_point') NOT NULL DEFAULT 'percentage' COMMENT '分数输出类型',
|
||||
`status` enum('created','inquiry','diagnosis','treatment','evaluating','completed','aborted') NOT NULL DEFAULT 'created' COMMENT '会话状态',
|
||||
`started_at` datetime DEFAULT NULL COMMENT '开始时间',
|
||||
`inquiry_completed_at` datetime DEFAULT NULL COMMENT '问诊完成时间',
|
||||
`completed_at` datetime DEFAULT NULL COMMENT '完成时间',
|
||||
`memory_key` varchar(128) DEFAULT NULL COMMENT '短期memory key',
|
||||
`metadata` json DEFAULT NULL COMMENT '扩展数据',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_session_code` (`session_code`),
|
||||
KEY `idx_session_user_status` (`user_id`,`status`),
|
||||
KEY `idx_session_case` (`case_id`),
|
||||
KEY `idx_session_created` (`created_at`),
|
||||
KEY `idx_training_sessions_source_case` (`source_case_id`),
|
||||
CONSTRAINT `fk_session_case` FOREIGN KEY (`case_id`) REFERENCES `cases` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='训练会话表';
|
||||
|
||||
CREATE TABLE `session_runtime_messages` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短期消息ID',
|
||||
`session_id` int(11) NOT NULL COMMENT '会话ID',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`role` enum('doctor','patient','system','tool') NOT NULL COMMENT '角色',
|
||||
`content` text NOT NULL COMMENT '消息内容',
|
||||
`content_structured` json DEFAULT NULL COMMENT '结构化内容',
|
||||
`sequence_no` int(11) NOT NULL COMMENT '会话内序号',
|
||||
`expires_at` datetime DEFAULT NULL COMMENT '过期时间',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_runtime_session_seq` (`session_id`,`sequence_no`),
|
||||
KEY `idx_runtime_expires` (`expires_at`),
|
||||
CONSTRAINT `fk_runtime_session` FOREIGN KEY (`session_id`) REFERENCES `training_sessions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短期会话消息调试表';
|
||||
|
||||
CREATE TABLE `session_orders` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '申请ID',
|
||||
`session_id` int(11) NOT NULL COMMENT '会话ID',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`case_exam_item_id` int(11) NOT NULL COMMENT '病例检查项目ID',
|
||||
`item_code` varchar(64) NOT NULL COMMENT '项目编码',
|
||||
`item_name` varchar(128) NOT NULL COMMENT '项目名称',
|
||||
`item_type` varchar(32) NOT NULL COMMENT '项目类型',
|
||||
`result_text` text NOT NULL COMMENT '结果文本',
|
||||
`result_structured` json DEFAULT NULL COMMENT '结构化结果',
|
||||
`is_key` tinyint(1) DEFAULT 0 COMMENT '是否关键检查',
|
||||
`is_abnormal` tinyint(1) DEFAULT 0 COMMENT '是否异常',
|
||||
`ordered_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_order_session` (`session_id`),
|
||||
KEY `idx_order_user_session` (`user_id`,`session_id`),
|
||||
CONSTRAINT `fk_order_session` FOREIGN KEY (`session_id`) REFERENCES `training_sessions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_order_exam_item` FOREIGN KEY (`case_exam_item_id`) REFERENCES `case_exam_items` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会话检查检验申请表';
|
||||
|
||||
CREATE TABLE `session_submissions` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '提交ID',
|
||||
`session_id` int(11) NOT NULL COMMENT '会话ID',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`primary_diagnosis` text COMMENT '主要诊断',
|
||||
`differential_diagnoses` json DEFAULT NULL COMMENT '鉴别诊断',
|
||||
`diagnosis_basis` text COMMENT '诊断依据',
|
||||
`treatment_principle` text COMMENT '治疗原则',
|
||||
`treatment_measures` text COMMENT '治疗措施',
|
||||
`risk_plan` text COMMENT '风险预案',
|
||||
`communication` text COMMENT '沟通告知与健康教育',
|
||||
`follow_up` text COMMENT '随访计划',
|
||||
`diagnosis_submitted_at` datetime DEFAULT NULL COMMENT '诊断提交时间',
|
||||
`treatment_submitted_at` datetime DEFAULT NULL COMMENT '治疗提交时间',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_submission_session` (`session_id`),
|
||||
KEY `idx_submission_user` (`user_id`),
|
||||
CONSTRAINT `fk_submission_session` FOREIGN KEY (`session_id`) REFERENCES `training_sessions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会话诊断治疗提交表';
|
||||
|
||||
CREATE TABLE `knowledge_sources` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '知识来源ID',
|
||||
`source_code` varchar(64) NOT NULL COMMENT '来源编码',
|
||||
`source_name` varchar(255) NOT NULL COMMENT '来源名称',
|
||||
`source_type` enum('national_standard','department_expert','exam_requirement','clinical_guideline','humanistic_care','other') NOT NULL COMMENT '来源类型',
|
||||
`authority_level` int(11) DEFAULT 1 COMMENT '权威等级',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否启用',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_source_code` (`source_code`),
|
||||
KEY `idx_source_type` (`source_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识来源表';
|
||||
|
||||
CREATE TABLE `knowledge_documents` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '知识文档ID',
|
||||
`source_id` int(11) NOT NULL COMMENT '来源ID',
|
||||
`department_id` int(11) DEFAULT NULL COMMENT '科室ID',
|
||||
`title` varchar(255) NOT NULL COMMENT '文档标题',
|
||||
`task_type` varchar(64) DEFAULT NULL COMMENT '任务类型',
|
||||
`summary` text COMMENT '摘要',
|
||||
`file_path` varchar(512) DEFAULT NULL COMMENT '文件路径',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否启用',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_doc_source` (`source_id`),
|
||||
KEY `idx_doc_department_task` (`department_id`,`task_type`),
|
||||
CONSTRAINT `fk_doc_source` FOREIGN KEY (`source_id`) REFERENCES `knowledge_sources` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_doc_department` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识文档表';
|
||||
|
||||
CREATE TABLE `knowledge_chunks` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '知识片段ID',
|
||||
`document_id` int(11) NOT NULL COMMENT '文档ID',
|
||||
`department_id` int(11) DEFAULT NULL COMMENT '科室ID',
|
||||
`task_type` varchar(64) DEFAULT NULL COMMENT '任务类型',
|
||||
`chunk_text` text NOT NULL COMMENT '片段内容',
|
||||
`keywords` json DEFAULT NULL COMMENT '关键词',
|
||||
`weight` decimal(5,2) DEFAULT 1.00 COMMENT '权重',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否启用',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_chunk_doc` (`document_id`),
|
||||
KEY `idx_chunk_department_task` (`department_id`,`task_type`),
|
||||
FULLTEXT KEY `ft_chunk_text` (`chunk_text`),
|
||||
CONSTRAINT `fk_chunk_doc` FOREIGN KEY (`document_id`) REFERENCES `knowledge_documents` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_chunk_department` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识片段表';
|
||||
|
||||
CREATE TABLE `evaluation_records` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评价记录ID',
|
||||
`evaluation_code` varchar(64) NOT NULL COMMENT '评价记录编码',
|
||||
`session_id` int(11) NOT NULL COMMENT '会话ID',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`tenant_id` varchar(128) DEFAULT NULL COMMENT '租户或项目ID',
|
||||
`case_id` int(11) NOT NULL COMMENT '病例ID',
|
||||
`source_case_id` bigint DEFAULT NULL COMMENT '源库病例ID,保留 case_id 兼容旧报告表',
|
||||
`training_type` varchar(64) NOT NULL COMMENT '训练类别',
|
||||
`mode` varchar(64) NOT NULL COMMENT '训练模式',
|
||||
`score_type` enum('percentage','five_point') NOT NULL COMMENT '分数类型',
|
||||
`total_score` decimal(6,2) NOT NULL COMMENT '总分',
|
||||
`dimension_scores` json NOT NULL COMMENT '维度评分',
|
||||
`errors` json DEFAULT NULL COMMENT '错误分析',
|
||||
`improvement_plan` json DEFAULT NULL COMMENT '改进方案',
|
||||
`evidence_summary` json DEFAULT NULL COMMENT '评分依据摘要',
|
||||
`guideline_refs` json DEFAULT NULL COMMENT '参考指南来源',
|
||||
`overall_comment` text COMMENT '总体评价',
|
||||
`llm_model` varchar(100) DEFAULT NULL COMMENT 'LLM模型',
|
||||
`latency_metrics` json DEFAULT NULL COMMENT '耗时指标',
|
||||
`pdf_file_path` varchar(512) DEFAULT NULL COMMENT 'PDF报告路径',
|
||||
`status` enum('generated','exported','failed') DEFAULT 'generated' COMMENT '状态',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_evaluation_code` (`evaluation_code`),
|
||||
UNIQUE KEY `uk_evaluation_session` (`session_id`),
|
||||
KEY `idx_eval_user_created` (`user_id`,`created_at`),
|
||||
KEY `idx_eval_case` (`case_id`),
|
||||
KEY `idx_eval_source_case` (`source_case_id`),
|
||||
CONSTRAINT `fk_eval_session` FOREIGN KEY (`session_id`) REFERENCES `training_sessions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_eval_case` FOREIGN KEY (`case_id`) REFERENCES `cases` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI评价记录表';
|
||||
|
||||
CREATE TABLE `evaluation_report_exports` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '导出记录ID',
|
||||
`evaluation_id` int(11) NOT NULL COMMENT '评价记录ID',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`file_path` varchar(512) NOT NULL COMMENT 'PDF文件路径',
|
||||
`file_name` varchar(255) NOT NULL COMMENT 'PDF文件名',
|
||||
`score_type` enum('percentage','five_point') NOT NULL COMMENT '分数类型',
|
||||
`export_status` enum('success','failed') DEFAULT 'success' COMMENT '导出状态',
|
||||
`exported_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '导出时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_export_eval` (`evaluation_id`),
|
||||
KEY `idx_export_user` (`user_id`,`exported_at`),
|
||||
CONSTRAINT `fk_export_eval` FOREIGN KEY (`evaluation_id`) REFERENCES `evaluation_records` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评价报告PDF导出记录表';
|
||||
|
||||
CREATE TABLE `prompt_templates` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '提示词模板ID',
|
||||
`template_code` varchar(64) NOT NULL COMMENT '模板编码',
|
||||
`agent_type` enum('patient','scoring','report','polish','hint','knowledge') NOT NULL COMMENT 'Agent类型',
|
||||
`scene` varchar(64) NOT NULL COMMENT '场景',
|
||||
`version_no` varchar(32) NOT NULL COMMENT '版本',
|
||||
`model_type` enum('fast','reason') NOT NULL COMMENT '模型类型',
|
||||
`output_format` enum('text','json') NOT NULL COMMENT '输出格式',
|
||||
`file_path` varchar(512) NOT NULL COMMENT 'Markdown文件路径',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否启用',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_prompt_code_version` (`template_code`,`version_no`),
|
||||
KEY `idx_prompt_agent_scene` (`agent_type`,`scene`,`is_active`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='提示词模板元数据表';
|
||||
|
||||
CREATE TABLE `rubric_templates` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评分规则ID',
|
||||
`rubric_code` varchar(64) NOT NULL COMMENT '规则编码',
|
||||
`rubric_name` varchar(128) NOT NULL COMMENT '规则名称',
|
||||
`version_no` varchar(32) NOT NULL COMMENT '版本',
|
||||
`department_id` int(11) DEFAULT NULL COMMENT '科室ID',
|
||||
`training_type` varchar(64) NOT NULL COMMENT '训练类别',
|
||||
`score_type` enum('percentage','five_point') NOT NULL COMMENT '分数类型',
|
||||
`dimensions` json NOT NULL COMMENT '评分维度',
|
||||
`is_active` tinyint(1) DEFAULT 1 COMMENT '是否启用',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_rubric_code_version` (`rubric_code`,`version_no`),
|
||||
KEY `idx_rubric_department_type` (`department_id`,`training_type`,`score_type`),
|
||||
CONSTRAINT `fk_rubric_department` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评分规则表';
|
||||
|
||||
CREATE TABLE `training_record` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '训练记录ID',
|
||||
`training_mode` varchar(50) NOT NULL COMMENT '训练模式:practice/teaching',
|
||||
`case_type` varchar(30) NOT NULL COMMENT '病例分类',
|
||||
`start_time` datetime(6) NOT NULL COMMENT '开始时间',
|
||||
`end_time` datetime(6) DEFAULT NULL COMMENT '结束时间',
|
||||
`duration_seconds` int DEFAULT NULL COMMENT '训练耗时秒',
|
||||
`total_score` decimal(5,2) DEFAULT NULL COMMENT '总分',
|
||||
`ai_score` decimal(5,2) DEFAULT NULL COMMENT 'AI评分',
|
||||
`teacher_score` decimal(5,2) DEFAULT NULL COMMENT '教师评分',
|
||||
`evaluation_level` varchar(20) NOT NULL DEFAULT '' COMMENT '评价等级',
|
||||
`status` varchar(30) NOT NULL COMMENT '记录状态',
|
||||
`feedback` longtext NOT NULL COMMENT '总体反馈',
|
||||
`thinking_chain` longtext NOT NULL COMMENT '评价证据链摘要',
|
||||
`diagnosis_path` longtext NOT NULL COMMENT '诊断路径摘要',
|
||||
`wrong_points` json NOT NULL COMMENT '错误点',
|
||||
`missed_questions` json NOT NULL COMMENT '遗漏问题',
|
||||
`recommendation_result` json NOT NULL COMMENT '改进建议',
|
||||
`ai_feedback_structured` json NOT NULL COMMENT 'AI结构化反馈',
|
||||
`osce_station_score` json NOT NULL COMMENT 'OSCE评分',
|
||||
`interruption_count` int NOT NULL DEFAULT 0 COMMENT '中断次数',
|
||||
`emotion_analysis` json NOT NULL COMMENT '情绪分析',
|
||||
`prompt_version` varchar(50) NOT NULL DEFAULT 'v1' COMMENT '提示词版本',
|
||||
`rag_context_version` varchar(50) NOT NULL DEFAULT 'none' COMMENT '指南检索版本',
|
||||
`case_id` bigint NOT NULL COMMENT '病例ID,对应 case_base.id',
|
||||
`teacher_id` bigint DEFAULT NULL COMMENT '教师ID',
|
||||
`user_id` bigint DEFAULT NULL COMMENT '源系统数字用户ID;宿主传字符串时为空',
|
||||
`external_user_id` varchar(128) NOT NULL COMMENT '宿主系统传入的 user_id',
|
||||
`session_id` bigint DEFAULT NULL COMMENT '本系统训练会话ID',
|
||||
`evaluation_record_id` bigint DEFAULT NULL COMMENT '兼容评价记录ID',
|
||||
`score_type` varchar(20) NOT NULL DEFAULT 'percentage' COMMENT '分数类型',
|
||||
`pdf_file_path` varchar(512) DEFAULT NULL COMMENT 'PDF报告路径',
|
||||
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
|
||||
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_training_record_session` (`session_id`),
|
||||
KEY `idx_training_record_external_user` (`external_user_id`, `created_at`),
|
||||
KEY `idx_training_record_case` (`case_id`),
|
||||
KEY `idx_training_record_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='源库训练记录表';
|
||||
|
||||
CREATE TABLE `user_learning_profiles` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学习档案ID',
|
||||
`user_id` varchar(128) NOT NULL COMMENT '宿主系统用户ID',
|
||||
`tenant_id` varchar(128) DEFAULT NULL COMMENT '租户或项目ID',
|
||||
`total_evaluations` int(11) DEFAULT 0 COMMENT '评价次数',
|
||||
`avg_score_percentage` decimal(6,2) DEFAULT NULL COMMENT '百分制平均分',
|
||||
`avg_score_five_point` decimal(4,2) DEFAULT NULL COMMENT '五分制平均分',
|
||||
`weak_dimensions` json DEFAULT NULL COMMENT '薄弱维度',
|
||||
`last_evaluation_id` int(11) DEFAULT NULL COMMENT '最近评价记录ID',
|
||||
`last_trained_at` datetime DEFAULT NULL COMMENT '最近训练时间',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_profile_user_tenant` (`user_id`,`tenant_id`),
|
||||
KEY `idx_profile_last_trained` (`last_trained_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户学习档案表';
|
||||
|
||||
CREATE TABLE `audit_logs` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '审计日志ID',
|
||||
`user_id` varchar(128) DEFAULT NULL COMMENT '宿主系统用户ID',
|
||||
`tenant_id` varchar(128) DEFAULT NULL COMMENT '租户或项目ID',
|
||||
`session_id` int(11) DEFAULT NULL COMMENT '会话ID',
|
||||
`action` varchar(64) NOT NULL COMMENT '动作',
|
||||
`resource_type` varchar(64) NOT NULL COMMENT '资源类型',
|
||||
`resource_id` varchar(128) DEFAULT NULL COMMENT '资源ID',
|
||||
`request_id` varchar(128) DEFAULT NULL COMMENT '请求ID',
|
||||
`ip_address` varchar(64) DEFAULT NULL COMMENT 'IP地址',
|
||||
`user_agent` varchar(512) DEFAULT NULL COMMENT 'User-Agent',
|
||||
`metadata` json DEFAULT NULL COMMENT '元数据',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_audit_user_created` (`user_id`,`created_at`),
|
||||
KEY `idx_audit_session` (`session_id`),
|
||||
KEY `idx_audit_action_created` (`action`,`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审计日志表';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@@ -0,0 +1,197 @@
|
||||
USE `medical_consultation_agent`;
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO `departments` (`id`, `name`, `code`, `parent_id`, `sort_order`, `is_active`)
|
||||
VALUES (1, '儿科', 'PEDIATRICS', NULL, 1, 1)
|
||||
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `is_active` = VALUES(`is_active`);
|
||||
|
||||
INSERT INTO `users` (`id`, `external_user_id`, `display_name`)
|
||||
VALUES (1, 'system_seed', '系统种子数据')
|
||||
ON DUPLICATE KEY UPDATE `display_name` = VALUES(`display_name`);
|
||||
|
||||
INSERT INTO `cases` (
|
||||
`id`,
|
||||
`case_code`,
|
||||
`department_id`,
|
||||
`title`,
|
||||
`difficulty`,
|
||||
`patient_name`,
|
||||
`patient_age`,
|
||||
`patient_gender`,
|
||||
`patient_occupation`,
|
||||
`chief_complaint`,
|
||||
`present_illness`,
|
||||
`past_history`,
|
||||
`personal_history`,
|
||||
`family_history`,
|
||||
`physical_exam`,
|
||||
`auxiliary_exam`,
|
||||
`diagnosis_primary`,
|
||||
`diagnosis_differential`,
|
||||
`diagnosis_basis`,
|
||||
`treatment_plan`,
|
||||
`consultation_config`,
|
||||
`inquiry_options`,
|
||||
`knowledge_videos`,
|
||||
`quiz_questions`,
|
||||
`key_symptoms`,
|
||||
`key_exams`,
|
||||
`key_points`,
|
||||
`evidence_reasoning_chain`,
|
||||
`assessment_config`,
|
||||
`ai_patient_profile`,
|
||||
`patient_opening`,
|
||||
`hidden_patient_info`,
|
||||
`has_teaching_video`,
|
||||
`has_knowledge_points`,
|
||||
`has_quiz`,
|
||||
`source_pdf_name`,
|
||||
`supported_training_type`,
|
||||
`supported_mode`,
|
||||
`is_active`,
|
||||
`created_by`
|
||||
) VALUES (
|
||||
1,
|
||||
'PED_PNEUMONIA_001',
|
||||
1,
|
||||
'支气管肺炎 - 6岁男性患儿',
|
||||
'medium',
|
||||
'王**',
|
||||
6,
|
||||
'male',
|
||||
'学龄前儿童',
|
||||
'发热、咳嗽4天,喘息1天。',
|
||||
'患儿4天前出现发热,体温最高39.2℃,伴阵发性咳嗽,夜间明显。1天前出现喘息及精神稍差,在社区门诊口服退热药后体温反复。无惊厥,无呕吐腹泻。',
|
||||
'既往体健,出生足月,疫苗接种基本完整;有湿疹病史,无明确哮喘诊断史;无药物过敏史。',
|
||||
'与父母同住,近期幼儿园同班多人有上呼吸道感染;被动吸烟暴露。',
|
||||
'母亲有过敏性鼻炎史,否认家族遗传代谢病史。',
|
||||
JSON_OBJECT(
|
||||
'general', JSON_OBJECT('temperature','38.7℃','pulse','126次/分','respiration','30次/分','blood_pressure','96/60mmHg','mental_status','精神稍差','nasal_flaring','轻度鼻翼煽动'),
|
||||
'lung', '双肺呼吸音粗,可闻及散在湿啰音及少量哮鸣音',
|
||||
'heart', '心音有力',
|
||||
'abdomen', '腹软,无压痛,肝脾未触及肿大,肠鸣音正常',
|
||||
'neuro', '神经系统查体未见定位体征'
|
||||
),
|
||||
JSON_ARRAY(
|
||||
JSON_OBJECT('name','血常规','result','WBC 12.4×10^9/L,中性粒细胞72%','is_abnormal',true,'is_key',false),
|
||||
JSON_OBJECT('name','CRP','result','32 mg/L','is_abnormal',true,'is_key',false),
|
||||
JSON_OBJECT('name','胸片','result','双下肺纹理增多,右下肺片状模糊影','is_abnormal',true,'is_key',true),
|
||||
JSON_OBJECT('name','肺炎支原体抗体IgM','result','弱阳性','is_abnormal',true,'is_key',false),
|
||||
JSON_OBJECT('name','血氧饱和度','result','室内空气 SpO2 94%','is_abnormal',true,'is_key',true)
|
||||
),
|
||||
'支气管肺炎',
|
||||
JSON_ARRAY('毛细支气管炎','支气管哮喘急性发作','肺结核'),
|
||||
'患儿发热咳嗽伴喘息,肺部听诊有湿啰音,胸片示右下肺片状模糊影,炎症指标升高,符合支气管肺炎诊断。',
|
||||
JSON_OBJECT(
|
||||
'principle', JSON_ARRAY('抗感染','止咳平喘','改善氧合','严密观察病情变化'),
|
||||
'measures', JSON_ARRAY('根据病情和病原学选择抗感染治疗','必要时雾化吸入缓解喘息','监测体温、呼吸、血氧饱和度','评估是否住院观察'),
|
||||
'risk_plan', JSON_ARRAY('关注低氧','关注呼吸困难加重','关注持续高热','关注精神反应差'),
|
||||
'communication', JSON_ARRAY('向家属说明病情','说明观察指标','说明用药注意事项','说明复诊指征')
|
||||
),
|
||||
JSON_OBJECT(),
|
||||
JSON_ARRAY(),
|
||||
JSON_ARRAY(),
|
||||
JSON_ARRAY(
|
||||
JSON_OBJECT('question','该患儿的首要诊断是?','type','single','answer','支气管肺炎'),
|
||||
JSON_OBJECT('question','本病例关键检查包括哪些?','type','multiple','answer',JSON_ARRAY('肺部湿啰音','胸片异常','血氧饱和度下降'))
|
||||
),
|
||||
JSON_ARRAY('发热','咳嗽','喘息'),
|
||||
JSON_ARRAY('肺部湿啰音','胸片异常','血氧饱和度下降'),
|
||||
JSON_ARRAY('问诊完整性','儿科查体规范','关键症状识别','诊断准确性','治疗计划合理性'),
|
||||
JSON_OBJECT(
|
||||
'clinical_prediction_rule','根据患儿症状(发热、咳嗽、喘息)及体征(肺部湿啰音),结合实验室炎症指标升高和胸部影像学典型新发浸润影,符合儿童支气管肺炎临床诊断标准,参考《儿童社区获得性肺炎诊疗规范(2019年版)》。',
|
||||
'severity_assessment', JSON_ARRAY(
|
||||
'问题识别:判断患儿是否为重症肺炎,以决定治疗地点。',
|
||||
'证据检索与整合:检索儿童肺炎严重程度评估工具,结合儿童CURB-65改良标准或WHO儿童肺炎分级。',
|
||||
'应用评分:本例呼吸30次/分、SpO2 94%、无意识障碍、血压正常,尚未达到重症肺炎阈值。',
|
||||
'决策:判断为非重症肺炎,因血氧偏低和喘息存在,纳入住院观察和严密随访讨论。'
|
||||
)
|
||||
),
|
||||
JSON_OBJECT(
|
||||
'score_dimensions', JSON_ARRAY('信息获取','分析推理','处置决策','沟通人文','临床整合'),
|
||||
'must_cover', JSON_ARRAY('发热持续时间','咳嗽特点','喘息出现时间','精神食欲睡眠','疫苗接种','过敏史','既往喘息史','肺部听诊','胸片','血氧饱和度')
|
||||
),
|
||||
JSON_OBJECT(
|
||||
'role','患儿家属',
|
||||
'personality','担心、焦虑,但配合问诊',
|
||||
'speech_style','以家长口吻回答,描述孩子症状,回答简洁',
|
||||
'visible_info', JSON_ARRAY('发热咳嗽4天','喘息1天','精神稍差'),
|
||||
'rules', JSON_ARRAY('只回答病例内事实','不主动给出诊断','不一次性泄露所有隐藏信息')
|
||||
),
|
||||
'家长:医生,孩子发烧咳嗽好几天了,昨天开始喘得厉害,精神也不太好。',
|
||||
JSON_ARRAY('近期幼儿园同班多人上呼吸道感染','被动吸烟暴露','母亲有过敏性鼻炎史','有湿疹病史','无明确哮喘诊断史'),
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
'儿科 病例样例(SOAP+循证).pdf',
|
||||
'diagnosis_treatment',
|
||||
'free_chat',
|
||||
1,
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`title` = VALUES(`title`),
|
||||
`updated_at` = CURRENT_TIMESTAMP;
|
||||
|
||||
INSERT INTO `case_exam_items` (`case_id`, `item_code`, `item_name`, `item_type`, `category`, `result_text`, `result_structured`, `is_key`, `is_abnormal`, `score_weight`, `display_order`)
|
||||
VALUES
|
||||
(1, 'blood_routine', '血常规', 'lab', '炎症指标', 'WBC 12.4×10^9/L,中性粒细胞72%。', JSON_OBJECT('WBC','12.4×10^9/L','neutrophil_percent','72%'), 0, 1, 3.00, 1),
|
||||
(1, 'crp', 'CRP', 'lab', '炎症指标', 'CRP 32 mg/L。', JSON_OBJECT('CRP','32 mg/L'), 0, 1, 2.00, 2),
|
||||
(1, 'chest_xray', '胸片', 'imaging', '影像学', '双下肺纹理增多,右下肺片状模糊影。', JSON_OBJECT('finding','右下肺片状模糊影'), 1, 1, 5.00, 3),
|
||||
(1, 'mp_igm', '肺炎支原体抗体IgM', 'lab', '病原学', '肺炎支原体抗体IgM 弱阳性。', JSON_OBJECT('mp_igm','弱阳性'), 0, 1, 2.00, 4),
|
||||
(1, 'spo2', '血氧饱和度', 'vital_sign', '生命体征', '室内空气 SpO2 94%。', JSON_OBJECT('SpO2','94%','condition','室内空气'), 1, 1, 5.00, 5)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`result_text` = VALUES(`result_text`),
|
||||
`result_structured` = VALUES(`result_structured`);
|
||||
|
||||
INSERT INTO `knowledge_sources` (`id`, `source_code`, `source_name`, `source_type`, `authority_level`, `is_active`)
|
||||
VALUES
|
||||
(1, 'CAP_2019', '儿童社区获得性肺炎诊疗规范(2019年版)', 'clinical_guideline', 5, 1),
|
||||
(2, 'HUMANISTIC_CARE', '卫健委人文关怀与医患沟通要求', 'humanistic_care', 4, 1),
|
||||
(3, 'PED_EXAM_REQ', '儿科期末考试问诊与诊疗评分要求', 'exam_requirement', 3, 1)
|
||||
ON DUPLICATE KEY UPDATE `source_name` = VALUES(`source_name`);
|
||||
|
||||
INSERT INTO `knowledge_documents` (`id`, `source_id`, `department_id`, `title`, `task_type`, `summary`, `is_active`)
|
||||
VALUES
|
||||
(1, 1, 1, '儿童社区获得性肺炎诊疗规范(2019年版)评分参考', 'diagnosis_treatment', '儿童肺炎诊断、严重程度评估和治疗原则参考。', 1),
|
||||
(2, 2, 1, '儿科场景人文关怀评分参考', 'diagnosis_treatment', '儿童患者家属沟通、病情告知和健康教育评分参考。', 1),
|
||||
(3, 3, 1, '儿科问诊考试评分要求', 'diagnosis_treatment', '儿科病史采集、查体、诊断依据和治疗计划评分参考。', 1)
|
||||
ON DUPLICATE KEY UPDATE `summary` = VALUES(`summary`);
|
||||
|
||||
INSERT INTO `knowledge_chunks` (`document_id`, `department_id`, `task_type`, `chunk_text`, `keywords`, `weight`, `is_active`)
|
||||
VALUES
|
||||
(1, 1, 'diagnosis_treatment', '儿童支气管肺炎诊断需结合发热、咳嗽、喘息等症状,肺部湿啰音等体征,炎症指标升高以及胸部影像学新发浸润影。', JSON_ARRAY('支气管肺炎','发热','咳嗽','喘息','胸片'), 5.00, 1),
|
||||
(1, 1, 'diagnosis_treatment', '儿童肺炎严重程度评估关注呼吸频率、血氧饱和度、意识状态、血压和全身情况。SpO2 94%属于需要密切观察的临界表现。', JSON_ARRAY('严重程度','SpO2','呼吸频率','血氧'), 4.50, 1),
|
||||
(2, 1, 'diagnosis_treatment', '儿科沟通需面向家属解释病情、观察指标、用药注意事项、复诊指征,并回应家属焦虑。', JSON_ARRAY('人文关怀','家属沟通','健康教育'), 4.00, 1),
|
||||
(3, 1, 'diagnosis_treatment', '儿科病例考核重点包括问诊完整性、儿科查体规范、关键症状识别、诊断准确性、治疗计划合理性。', JSON_ARRAY('考核','问诊完整性','治疗计划'), 4.00, 1);
|
||||
|
||||
INSERT INTO `prompt_templates` (`template_code`, `agent_type`, `scene`, `version_no`, `model_type`, `output_format`, `file_path`, `is_active`)
|
||||
VALUES
|
||||
('patient_free_chat', 'patient', 'free_chat', 'v1', 'fast', 'text', 'backend/app/prompts/patient/free_chat.md', 1),
|
||||
('patient_practice', 'patient', 'practice', 'v1', 'fast', 'text', 'backend/app/prompts/patient/practice.md', 1),
|
||||
('patient_novice', 'patient', 'novice', 'v1', 'fast', 'text', 'backend/app/prompts/patient/novice.md', 1),
|
||||
('patient_teaching', 'patient', 'teaching', 'v1', 'fast', 'text', 'backend/app/prompts/patient/teaching.md', 1),
|
||||
('scoring_default_percentage', 'scoring', 'default_percentage', 'v1', 'reason', 'json', 'backend/app/prompts/scoring/default_percentage.md', 1),
|
||||
('scoring_default_five_point', 'scoring', 'default_five_point', 'v1', 'reason', 'json', 'backend/app/prompts/scoring/default_five_point.md', 1),
|
||||
('scoring_pediatrics_pneumonia', 'scoring', 'pediatrics_pneumonia', 'v1', 'reason', 'json', 'backend/app/prompts/scoring/pediatrics_pneumonia.md', 1),
|
||||
('report_evaluation', 'report', 'evaluation_report', 'v1', 'fast', 'json', 'backend/app/prompts/report/evaluation_report.md', 1),
|
||||
('novice_hint', 'hint', 'novice', 'v1', 'fast', 'text', 'backend/app/prompts/hint/novice_hint.md', 1),
|
||||
('doctor_question_polish', 'polish', 'doctor_question', 'v1', 'fast', 'text', 'backend/app/prompts/polish/doctor_question_polish.md', 1),
|
||||
('guideline_search_query', 'knowledge', 'guideline_search', 'v1', 'fast', 'json', 'backend/app/prompts/knowledge/guideline_search_query.md', 1)
|
||||
ON DUPLICATE KEY UPDATE `file_path` = VALUES(`file_path`);
|
||||
|
||||
INSERT INTO `rubric_templates` (`rubric_code`, `rubric_name`, `version_no`, `department_id`, `training_type`, `score_type`, `dimensions`, `is_active`)
|
||||
VALUES
|
||||
('PED_DIAG_TX_PERCENTAGE', '儿科诊疗训练百分制评分规则', 'v1', 1, 'diagnosis_treatment', 'percentage',
|
||||
JSON_ARRAY(
|
||||
JSON_OBJECT('dimension','信息获取','max_score',25,'items',JSON_ARRAY('问诊完整性','查体针对性','辅助检查')),
|
||||
JSON_OBJECT('dimension','分析推理','max_score',25,'items',JSON_ARRAY('病例归纳','诊断准确性','鉴别诊断')),
|
||||
JSON_OBJECT('dimension','处置决策','max_score',20,'items',JSON_ARRAY('检查计划','治疗方案','风险预案')),
|
||||
JSON_OBJECT('dimension','沟通人文','max_score',15,'items',JSON_ARRAY('信息告知','共情回应','共识达成')),
|
||||
JSON_OBJECT('dimension','临床整合','max_score',15,'items',JSON_ARRAY('时间管理','流程连贯','整体思维'))
|
||||
), 1),
|
||||
('PED_DIAG_TX_FIVE_POINT', '儿科诊疗训练五分制评分规则', 'v1', 1, 'diagnosis_treatment', 'five_point',
|
||||
JSON_ARRAY(
|
||||
JSON_OBJECT('dimension','综合表现','max_score',5,'conversion','percentage / 20')
|
||||
), 1)
|
||||
ON DUPLICATE KEY UPDATE `dimensions` = VALUES(`dimensions`);
|
||||
Reference in New Issue
Block a user