Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions src/types/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@ export interface Study {
clinicalTrials?: Array<ClinicalTrial>
funding?: Array<FundingResource>
intellectualProperties?: Array<IntellectualProperty>
biospecimens?: Array<Biospecimen>
}
}

Expand Down Expand Up @@ -456,6 +457,60 @@ export interface IntellectualProperty {
tags?: string[]
}

export enum BioSpecimenType {
BLOOD = 'BLOOD',
PLASMA = 'PLASMA',
SERUM = 'SERUM',
TISSUE = 'TISSUE',
SALIVA = 'SALIVA',
CSF = 'CSF',
PBMC = 'PBMC',
TUMOR = 'TUMOR',
NORMAL_ADJACENT = 'NORMAL_ADJACENT',
}

export enum BioSpecimenPreservationMethod {
FFPE = 'FFPE',
FRESH_FROZEN = 'FRESH_FROZEN',
CRYO_PRESERVED = 'CRYO_PRESERVED',
RNA_LATER = 'RNA_LATER',
FORMALIN_FIXED = 'FORMALIN_FIXED',
}

export enum PostMortemIntervalUnit {
HOURS = 'HOURS',
MINUTES = 'MINUTES',
DAYS = 'DAYS',
WEEKS = 'WEEKS',
}

export enum Sex {
FEMALE = 'FEMALE',
MALE = 'MALE',
UNKNOWN = 'UNKNOWN',
NOT_REPORTED = 'NOT_REPORTED',
}

export interface Biospecimen {
biospecimenId: string
studyId: string
donorId: string
specimenType: BioSpecimenType
preservationMethod: BioSpecimenPreservationMethod
preservationDetails?: string
dateOfCollection?: string
postMortemInterval?: { value: number, unit: PostMortemIntervalUnit }
sex?: Sex
age?: number
race?: string
countryOfOrigin?: string // {domain}/api-docs/ISO-3166-countries.json e.g. "United States of America (the)"
extractedDiagnoses?: string[] // diseaseSpecificUse e.g. "Alzheimer's disease", "Parkinson's disease"
pathology?: string
organization: string // e.g. institution/biobank/provider
sourceSite?: string // e.g. clinic/hospital/collection site
optionalDataUse?: string // structured policy (same pattern as dataset Data Use, if supported) OR free-text for MVP
}

export interface StudyProperty {
key: string
value: string
Expand Down
Loading