diff OrthancServer/PrepareDatabase2.sql @ 183:baada606da3c

databasewrapper
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 12 Nov 2012 14:52:30 +0100
parents 2dece1526c06
children ccbc2cf64a0d
line wrap: on
line diff
--- a/OrthancServer/PrepareDatabase2.sql	Mon Nov 12 10:36:58 2012 +0100
+++ b/OrthancServer/PrepareDatabase2.sql	Mon Nov 12 14:52:30 2012 +0100
@@ -29,14 +29,39 @@
        id INTEGER REFERENCES Resources(internalId) ON DELETE CASCADE,
        name TEXT,
        uuid TEXT,
+       compressedSize INTEGER,
        uncompressedSize INTEGER,
        compressionType INTEGER,
        PRIMARY KEY(id, name)
        );              
 
+CREATE TABLE Changes(
+       seq INTEGER PRIMARY KEY AUTOINCREMENT,
+       changeType INTEGER,
+       publicId TEXT,
+       resourceType INTEGER,
+       date TEXT
+       );
+
+CREATE TABLE ExportedInstances(
+       seq INTEGER PRIMARY KEY AUTOINCREMENT,
+       remoteModality TEXT,
+       publicId TEXT,
+       patientId TEXT,
+       studyInstanceUid TEXT,
+       seriesInstanceUid TEXT,
+       sopInstanceUid TEXT,
+       date TEXT
+       ); 
+
 CREATE INDEX ChildrenIndex ON Resources(parentId);
 CREATE INDEX PublicIndex ON Resources(publicId);
 
+CREATE INDEX MainDicomTagsIndex1 ON MainDicomTags(id);
+CREATE INDEX MainDicomTagsIndex2 ON MainDicomTags(tagGroup, tagElement);
+CREATE INDEX MainDicomTagsIndexValues ON MainDicomTags(value COLLATE BINARY);
+
+CREATE INDEX ChangesIndex ON Changes(publicId);
 
 CREATE TRIGGER AttachedFileDeleted
 AFTER DELETE ON AttachedFiles
@@ -47,13 +72,14 @@
 CREATE TRIGGER ResourceDeleted
 AFTER DELETE ON Resources
 BEGIN
-  SELECT SignalResourceDeleted(old.resourceType, old.parentId);
+  SELECT SignalRemainingAncestor(parent.publicId, parent.resourceType) 
+    FROM Resources AS parent WHERE internalId = old.parentId;
 END;
 
-
--- -- Delete a resource when its unique child is deleted  TODO TODO
--- CREATE TRIGGER ResourceRemovedUpward
--- AFTER DELETE ON Resources
--- FOR EACH ROW
---   WHEN (SELECT COUNT(*) FROM ParentRelationship WHERE parent = old.
--- END;
+-- Delete a parent resource when its unique child is deleted 
+CREATE TRIGGER ResourceDeletedParentCleaning
+AFTER DELETE ON Resources
+FOR EACH ROW WHEN (SELECT COUNT(*) FROM Resources WHERE parentId = old.parentId) = 0
+BEGIN
+  DELETE FROM Resources WHERE internalId = old.parentId;
+END;