Index: trunk/ippToPsps/jython/scratchdb.py
===================================================================
--- trunk/ippToPsps/jython/scratchdb.py	(revision 31344)
+++ trunk/ippToPsps/jython/scratchdb.py	(revision 31344)
@@ -0,0 +1,141 @@
+#!/usr/bin/env jython
+
+import re
+import sys
+import os
+import logging
+
+from java.lang import *
+from java.sql import *
+
+from mysql import MySql
+
+'''
+Class for local scratch database connectivity
+'''
+class ScratchDb(MySql):
+
+    '''
+    Constructor
+    '''
+    def __init__(self, logger):
+        super(ScratchDb, self).__init__(logger,"localdatabase")
+
+    '''
+    Destructor
+    '''
+    def __del__(self):
+
+        self.logger.debug("ScratchDb destructor")
+
+    '''
+    Gets survey ID for this survey name
+    '''
+    def getSurveyID(self, name):
+     
+        sql = "SELECT surveyID FROM Survey WHERE name = '" + name + "'"
+        try:
+            rs = self.stmt.executeQuery(sql)
+            rs.first()
+            return rs.getInt(1)
+        except:
+            self.logger.exception("No survey ID found for this survey: '" + self.survey + "'")
+            return -1
+
+    '''
+    Gets DVO image flags
+    '''
+    def getDvoImageFlags(self, sourceID, imageID):
+
+        flags = 0
+
+        sql = "SELECT flags FROM dvoMeta WHERE sourceID = %s AND imageID = %s" % (sourceID, imageID)
+        try:
+            rs = self.stmt.executeQuery(sql)  
+            rs.first()
+            flags = rs.getInt(1)
+        except:
+            self.logger.exception("Unable to get flags from dvo table")
+
+        return flags
+
+    '''
+    Gets photcode (aka photoCalID from dvo table)
+    '''
+    def getPhotoCalID(self, sourceID, imageID):
+
+        photcode = -1
+
+        sql = "SELECT photcode FROM dvoMeta WHERE sourceID = %s AND imageID = %s" % (sourceID, imageID)
+        try:
+            rs = self.stmt.executeQuery(sql)  
+            rs.first()
+            photcode = rs.getInt(1)
+        except:
+            self.logger.exception("Unable to get photcode from dvo table")
+
+        return photcode
+
+    '''
+    Updates a table with filterID grabbed from Filter init table
+    '''
+    def updateFilterID(self, table, filter):
+
+        sql = "UPDATE "+table+" AS a, Filter AS b SET a.filterID=b.filterID WHERE b.filterType = '" + filter + "'"
+        self.stmt.execute(sql)
+
+    '''
+    Inserts a new sourceID/imageID combo into dvoMeta
+    '''
+    def insertNewDvoImage(self, sourceID, imageID):
+
+        sql = "INSERT INTO dvoMeta ( \
+               sourceID, \
+               imageID \
+               ) VALUES (\
+               " + str(sourceID) + ", \
+               " + str(imageID) + "    \
+               )"
+        self.stmt.execute(sql)
+
+
+    '''
+    Creates a table for for ID matching
+    '''
+    def createDvoTables(self):
+
+        self.logger.info("Creating DVO meta and detection tables")
+        sql = "DROP TABLE dvoMeta"
+        try: self.stmt.execute(sql)
+        except: pass
+        
+        sql = "DROP TABLE dvoDetection"
+        try: self.stmt.execute(sql)
+        except: pass
+
+        sql = "CREATE TABLE dvoMeta ( \
+               sourceID INT, \
+               imageID INT, \
+               flags INT, \
+               photcode INT, \
+               PRIMARY KEY (sourceID, imageID) \
+               )"
+
+        try: self.stmt.execute(sql)
+        except: 
+            self.logger.error("Unable to create DVO meta-data database table")
+
+        sql = "CREATE TABLE dvoDetection ( \
+               sourceID INT, \
+               imageID INT, \
+               ippDetectID BIGINT, \
+               detectID BIGINT, \
+               ippObjID BIGINT, \
+               objID BIGINT, \
+               flags INT, \
+               PRIMARY KEY (sourceID, imageID, ippDetectID) \
+               )"
+
+        try: self.stmt.execute(sql)
+        except: 
+            self.logger.error("Unable to create DVO detection database table")
