124 lines
5.0 KiB
SQL
124 lines
5.0 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;
|
||
|
||
-- 插入默认管理员用户 (密码: 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;
|
||
|
||
|
||
|
||
|