| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | -- -- A simple SQLITE3 database schema for modelling locally stored DICOM files -- -- Note: the semicolon at the end is necessary for the simple parser to separate--       the statements since the SQlite driver does not handle multiple--       commands per QSqlQuery::exec call!-- Note: be sure to update ctkDICOMDatabase and SchemaInfo Version --       whenever you make a change to this schema-- ;DROP TABLE IF EXISTS 'SchemaInfo' ;DROP TABLE IF EXISTS 'Images' ;DROP TABLE IF EXISTS 'Patients' ;DROP TABLE IF EXISTS 'Series' ;DROP TABLE IF EXISTS 'Studies' ;DROP TABLE IF EXISTS 'Directories' ;DROP INDEX IF EXISTS 'ImagesFilenameIndex' ;DROP INDEX IF EXISTS 'ImagesSeriesIndex' ;DROP INDEX IF EXISTS 'SeriesStudyIndex' ;DROP INDEX IF EXISTS 'StudiesPatientIndex' ;CREATE TABLE 'SchemaInfo' ( 'Version' VARCHAR(1024) NOT NULL );INSERT INTO 'SchemaInfo' VALUES('0.5.3');CREATE TABLE 'Images' (  'SOPInstanceUID' VARCHAR(64) NOT NULL,  'Filename' VARCHAR(1024) NOT NULL ,  'SeriesInstanceUID' VARCHAR(64) NOT NULL ,  'InsertTimestamp' VARCHAR(20) NOT NULL ,  PRIMARY KEY ('SOPInstanceUID') );CREATE TABLE 'Patients' (  'UID' INTEGER PRIMARY KEY AUTOINCREMENT,  'PatientsName' VARCHAR(255) NULL ,  'PatientID' VARCHAR(255) NULL ,  'PatientsBirthDate' DATE NULL ,  'PatientsBirthTime' TIME NULL ,  'PatientsSex' varchar(1) NULL ,  'PatientsAge' varchar(10) NULL ,  'PatientsComments' VARCHAR(255) NULL );CREATE TABLE 'Series' (  'SeriesInstanceUID' VARCHAR(64) NOT NULL ,  'StudyInstanceUID' VARCHAR(64) NOT NULL ,  'SeriesNumber' INT NULL ,  'SeriesDate' DATE NULL ,  'SeriesTime' VARCHAR(20) NULL ,  'SeriesDescription' VARCHAR(255) NULL ,  'Modality' VARCHAR(20) NULL ,  'BodyPartExamined' VARCHAR(255) NULL ,  'FrameOfReferenceUID' VARCHAR(64) NULL ,  'AcquisitionNumber' INT NULL ,  'ContrastAgent' VARCHAR(255) NULL ,  'ScanningSequence' VARCHAR(45) NULL ,  'EchoNumber' INT NULL ,  'TemporalPosition' INT NULL ,  PRIMARY KEY ('SeriesInstanceUID') );CREATE TABLE 'Studies' (  'StudyInstanceUID' VARCHAR(64) NOT NULL ,  'PatientsUID' INT NOT NULL ,  'StudyID' VARCHAR(255) NULL ,  'StudyDate' DATE NULL ,  'StudyTime' VARCHAR(20) NULL ,  'AccessionNumber' VARCHAR(255) NULL ,  'ModalitiesInStudy' VARCHAR(255) NULL ,  'InstitutionName' VARCHAR(255) NULL ,  'ReferringPhysician' VARCHAR(255) NULL ,  'PerformingPhysiciansName' VARCHAR(255) NULL ,  'StudyDescription' VARCHAR(255) NULL ,  PRIMARY KEY ('StudyInstanceUID') );CREATE UNIQUE INDEX IF NOT EXISTS 'ImagesFilenameIndex' ON 'Images' ('Filename');CREATE INDEX IF NOT EXISTS 'ImagesSeriesIndex' ON 'Images' ('SeriesInstanceUID');CREATE INDEX IF NOT EXISTS 'SeriesStudyIndex' ON 'Series' ('StudyInstanceUID');CREATE INDEX IF NOT EXISTS 'StudiesPatientIndex' ON 'Studies' ('PatientsUID');CREATE TABLE 'Directories' (  'Dirname' VARCHAR(1024) ,  PRIMARY KEY ('Dirname') );
 |