213 lines
8.8 KiB
SQL
213 lines
8.8 KiB
SQL
-- 医学信息支持系统数据库初始化脚本
|
||
-- Database: medical_info_system
|
||
|
||
CREATE DATABASE IF NOT EXISTS medical_info_system
|
||
DEFAULT CHARACTER SET utf8mb4
|
||
DEFAULT COLLATE utf8mb4_unicode_ci;
|
||
|
||
USE medical_info_system;
|
||
|
||
-- 用户表
|
||
CREATE TABLE IF NOT EXISTS users (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
username VARCHAR(50) NOT NULL UNIQUE,
|
||
password VARCHAR(255) NOT NULL,
|
||
full_name VARCHAR(100) NOT NULL,
|
||
email VARCHAR(100),
|
||
role VARCHAR(20) NOT NULL COMMENT 'ADMIN, MEDICAL_SPECIALIST, REVIEWER',
|
||
enabled BOOLEAN DEFAULT TRUE,
|
||
created_at DATETIME NOT NULL,
|
||
last_login_at DATETIME,
|
||
INDEX idx_username (username),
|
||
INDEX idx_role (role)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 查询请求表
|
||
CREATE TABLE IF NOT EXISTS inquiry_requests (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
request_number VARCHAR(50) NOT NULL UNIQUE,
|
||
customer_name VARCHAR(100) NOT NULL,
|
||
customer_email VARCHAR(100),
|
||
customer_title VARCHAR(100),
|
||
inquiry_content TEXT,
|
||
keywords TEXT COMMENT '提取的关键词(JSON格式)',
|
||
status VARCHAR(20) NOT NULL COMMENT 'PENDING, KEYWORD_EXTRACTED, SEARCHING, SEARCH_COMPLETED, UNDER_REVIEW, DOWNLOADING, COMPLETED, REJECTED',
|
||
search_results TEXT COMMENT '检索结果(JSON格式)',
|
||
response_content TEXT COMMENT '回复内容',
|
||
assigned_to VARCHAR(50),
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME,
|
||
completed_at DATETIME,
|
||
INDEX idx_request_number (request_number),
|
||
INDEX idx_status (status),
|
||
INDEX idx_customer_name (customer_name),
|
||
INDEX idx_assigned_to (assigned_to),
|
||
INDEX idx_created_at (created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 知识库表
|
||
CREATE TABLE IF NOT EXISTS knowledge_bases (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
name VARCHAR(100) NOT NULL,
|
||
type VARCHAR(20) NOT NULL COMMENT 'INTERNAL, PUBLIC, EXTENDED',
|
||
description TEXT,
|
||
data_source VARCHAR(255),
|
||
priority INT COMMENT '检索优先级(数字越小优先级越高)',
|
||
enabled BOOLEAN DEFAULT TRUE,
|
||
configuration TEXT COMMENT '配置信息(JSON格式)',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME,
|
||
INDEX idx_type (type),
|
||
INDEX idx_enabled (enabled),
|
||
INDEX idx_priority (priority)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 文献表
|
||
CREATE TABLE IF NOT EXISTS literatures (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
inquiry_request_id BIGINT,
|
||
title VARCHAR(500) NOT NULL,
|
||
authors VARCHAR(500),
|
||
journal VARCHAR(200),
|
||
publication_date VARCHAR(50),
|
||
doi VARCHAR(100),
|
||
pmid VARCHAR(50),
|
||
abstract_text TEXT,
|
||
source_database VARCHAR(50),
|
||
source_url VARCHAR(500),
|
||
file_path VARCHAR(500),
|
||
download_status VARCHAR(20) COMMENT 'PENDING, DOWNLOADING, COMPLETED, FAILED',
|
||
selected BOOLEAN DEFAULT FALSE,
|
||
created_at DATETIME NOT NULL,
|
||
downloaded_at DATETIME,
|
||
INDEX idx_inquiry_request_id (inquiry_request_id),
|
||
INDEX idx_download_status (download_status),
|
||
INDEX idx_selected (selected),
|
||
FOREIGN KEY (inquiry_request_id) REFERENCES inquiry_requests(id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 审核日志表
|
||
CREATE TABLE IF NOT EXISTS audit_logs (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
inquiry_request_id BIGINT,
|
||
user_id BIGINT,
|
||
action VARCHAR(20) NOT NULL COMMENT 'SUBMITTED, APPROVED, REJECTED, REVISION_REQUESTED, COMPLETED',
|
||
comments TEXT,
|
||
created_at DATETIME NOT NULL,
|
||
INDEX idx_inquiry_request_id (inquiry_request_id),
|
||
INDEX idx_user_id (user_id),
|
||
INDEX idx_created_at (created_at),
|
||
FOREIGN KEY (inquiry_request_id) REFERENCES inquiry_requests(id) ON DELETE CASCADE,
|
||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 药物表
|
||
CREATE TABLE IF NOT EXISTS drugs (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
drug_code VARCHAR(50) NOT NULL UNIQUE,
|
||
generic_name VARCHAR(200) NOT NULL,
|
||
trade_name VARCHAR(200),
|
||
active_ingredient VARCHAR(200),
|
||
description TEXT,
|
||
manufacturer VARCHAR(200),
|
||
approval_number VARCHAR(100),
|
||
indications TEXT,
|
||
dosage_and_administration TEXT,
|
||
contraindications TEXT,
|
||
therapeutic_class VARCHAR(100),
|
||
atc_code VARCHAR(20),
|
||
status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE' COMMENT 'ACTIVE, SUSPENDED, WITHDRAWN',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME,
|
||
INDEX idx_drug_code (drug_code),
|
||
INDEX idx_generic_name (generic_name),
|
||
INDEX idx_trade_name (trade_name),
|
||
INDEX idx_therapeutic_class (therapeutic_class),
|
||
INDEX idx_status (status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 药物安全信息表
|
||
CREATE TABLE IF NOT EXISTS drug_safety_infos (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
drug_id BIGINT NOT NULL,
|
||
source VARCHAR(30) NOT NULL COMMENT 'INTERNAL, LITERATURE, REGULATORY, SOCIAL_MEDIA, CLINICAL_TRIAL',
|
||
title VARCHAR(500) NOT NULL,
|
||
content TEXT,
|
||
category VARCHAR(50) NOT NULL COMMENT 'ADVERSE_REACTION, DRUG_INTERACTION, CONTRAINDICATION, etc.',
|
||
severity_level VARCHAR(20) COMMENT 'MILD, MODERATE, SEVERE, CRITICAL',
|
||
reference_url VARCHAR(500),
|
||
reference_document VARCHAR(500),
|
||
reported_by VARCHAR(100),
|
||
reported_at DATETIME,
|
||
additional_info TEXT COMMENT 'JSON格式的附加信息',
|
||
verified BOOLEAN DEFAULT FALSE,
|
||
verified_by VARCHAR(100),
|
||
verified_at DATETIME,
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME,
|
||
INDEX idx_drug_id (drug_id),
|
||
INDEX idx_source (source),
|
||
INDEX idx_category (category),
|
||
INDEX idx_severity_level (severity_level),
|
||
INDEX idx_verified (verified),
|
||
FOREIGN KEY (drug_id) REFERENCES drugs(id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 临床试验表
|
||
CREATE TABLE IF NOT EXISTS clinical_trials (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
inquiry_id BIGINT COMMENT '关联的查询请求ID',
|
||
nct_id VARCHAR(50) NOT NULL COMMENT 'ClinicalTrials.gov唯一标识',
|
||
study_title TEXT COMMENT '研究标题',
|
||
brief_title VARCHAR(500) COMMENT '简短标题',
|
||
official_title TEXT COMMENT '官方标题',
|
||
overall_status VARCHAR(50) COMMENT '研究状态',
|
||
start_date VARCHAR(50) COMMENT '开始日期',
|
||
completion_date VARCHAR(50) COMMENT '完成日期',
|
||
study_type VARCHAR(50) COMMENT '研究类型',
|
||
phase VARCHAR(50) COMMENT '研究阶段',
|
||
enrollment INT COMMENT '入组人数',
|
||
conditions TEXT COMMENT '适应症(JSON数组)',
|
||
interventions TEXT COMMENT '干预措施(JSON数组)',
|
||
sponsor VARCHAR(500) COMMENT '主要研究者/机构',
|
||
collaborators TEXT COMMENT '合作者(JSON数组)',
|
||
locations TEXT COMMENT '研究地点(JSON数组)',
|
||
brief_summary TEXT COMMENT '简要摘要',
|
||
detailed_description LONGTEXT COMMENT '详细描述',
|
||
primary_outcome TEXT COMMENT '主要终点',
|
||
secondary_outcome TEXT COMMENT '次要终点',
|
||
eligibility_criteria TEXT COMMENT '入选标准',
|
||
url VARCHAR(500) COMMENT 'ClinicalTrials.gov链接',
|
||
raw_data LONGTEXT COMMENT '原始API返回数据(JSON格式)',
|
||
created_at DATETIME NOT NULL,
|
||
updated_at DATETIME,
|
||
INDEX idx_inquiry_id (inquiry_id),
|
||
INDEX idx_nct_id (nct_id),
|
||
INDEX idx_overall_status (overall_status),
|
||
INDEX idx_phase (phase),
|
||
INDEX idx_created_at (created_at),
|
||
UNIQUE KEY uk_inquiry_nct (inquiry_id, nct_id),
|
||
FOREIGN KEY (inquiry_id) REFERENCES inquiry_requests(id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 插入默认管理员用户 (密码: admin123, 实际使用时应该加密)
|
||
INSERT INTO users (username, password, full_name, email, role, enabled, created_at)
|
||
VALUES ('admin', '$2a$10$rK8WpQYJzxJ8Y5X5YqFvRO5K7K5K7K5K7K5K7K5K7K5K7K5K7K5K7',
|
||
'系统管理员', 'admin@ipsen.com', 'ADMIN', TRUE, NOW())
|
||
ON DUPLICATE KEY UPDATE username=username;
|
||
|
||
-- 插入示例知识库配置
|
||
INSERT INTO knowledge_bases (name, type, description, data_source, priority, enabled, created_at)
|
||
VALUES
|
||
('企业研究数据库', 'INTERNAL', '益普生内部研究数据和历史回复', 'internal_db', 1, TRUE, NOW()),
|
||
('PubMed', 'PUBLIC', '美国国家医学图书馆公开数据库', 'https://pubmed.ncbi.nlm.nih.gov', 2, TRUE, NOW()),
|
||
('EMBASE', 'PUBLIC', 'Elsevier医学文献数据库', 'https://www.embase.com', 3, TRUE, NOW()),
|
||
('中国知网', 'PUBLIC', '中国学术期刊数据库', 'https://www.cnki.net', 4, TRUE, NOW()),
|
||
('ClinicalTrials.gov', 'PUBLIC', '临床试验注册数据库', 'https://clinicaltrials.gov', 5, TRUE, NOW()),
|
||
('疾病药物关联库', 'EXTENDED', '疾病与药物关联扩展数据', 'extended_db', 6, TRUE, NOW())
|
||
ON DUPLICATE KEY UPDATE name=name;
|
||
|
||
|
||
|
||
|