AutoMedinfo/backend/src/main/java/com/ipsen/medical/entity/ClinicalTrial.java

107 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ipsen.medical.entity;
import javax.persistence.*;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 临床试验实体
*/
@Data
@Entity
@Table(name = "clinical_trials",
uniqueConstraints = @UniqueConstraint(columnNames = {"inquiry_id", "nct_id"}))
public class ClinicalTrial {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "inquiry_id")
private Long inquiryId; // 关联的查询请求ID
@Column(name = "nct_id")
private String nctId; // NCT编号ClinicalTrials.gov的唯一标识
@Column(name = "study_title", columnDefinition = "TEXT")
private String studyTitle; // 研究标题
@Column(name = "brief_title")
private String briefTitle; // 简短标题
@Column(name = "official_title", columnDefinition = "TEXT")
private String officialTitle; // 官方标题
@Column(name = "overall_status")
private String overallStatus; // 研究状态
@Column(name = "start_date")
private String startDate; // 开始日期
@Column(name = "completion_date")
private String completionDate; // 完成日期
@Column(name = "study_type")
private String studyType; // 研究类型
@Column(name = "phase")
private String phase; // 研究阶段
@Column(name = "enrollment")
private Integer enrollment; // 入组人数
@Column(name = "conditions", columnDefinition = "TEXT")
private String conditions; // 适应症JSON数组
@Column(name = "interventions", columnDefinition = "TEXT")
private String interventions; // 干预措施JSON数组
@Column(name = "sponsor")
private String sponsor; // 主要研究者/机构
@Column(name = "collaborators", columnDefinition = "TEXT")
private String collaborators; // 合作者JSON数组
@Column(name = "locations", columnDefinition = "TEXT")
private String locations; // 研究地点JSON数组
@Column(name = "brief_summary", columnDefinition = "TEXT")
private String briefSummary; // 简要摘要
@Column(name = "detailed_description", columnDefinition = "TEXT")
private String detailedDescription; // 详细描述
@Column(name = "primary_outcome", columnDefinition = "TEXT")
private String primaryOutcome; // 主要终点
@Column(name = "secondary_outcome", columnDefinition = "TEXT")
private String secondaryOutcome; // 次要终点
@Column(name = "eligibility_criteria", columnDefinition = "TEXT")
private String eligibilityCriteria; // 入选标准
@Column(name = "url")
private String url; // ClinicalTrials.gov链接
@Column(name = "raw_data", columnDefinition = "LONGTEXT")
private String rawData; // 原始API返回数据JSON格式
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "updated_at")
private LocalDateTime updatedAt;
@PrePersist
protected void onCreate() {
createdAt = LocalDateTime.now();
}
@PreUpdate
protected void onUpdate() {
updatedAt = LocalDateTime.now();
}
}