Index: trunk/ippTools/share/chiptool_dropprocessedimfile_update.sql
===================================================================
--- trunk/ippTools/share/chiptool_dropprocessedimfile_update.sql	(revision 33602)
+++ trunk/ippTools/share/chiptool_dropprocessedimfile_update.sql	(revision 33617)
@@ -1,5 +1,5 @@
-UPDATE chipProcessedImfile 
-    SET quality = %d,
-        data_state = 'full',
-        magicked = 0,
-        fault = 0
+UPDATE chipProcessedImfile LEFT JOIN camRun USING(chip_id)
+    SET chipProcessedImfile.quality = %d,
+        chipProcessedImfile.data_state = 'full',
+        chipProcessedImfile.magicked = 0,
+        chipProcessedImfile.fault = 0
Index: trunk/ippTools/src/chiptool.c
===================================================================
--- trunk/ippTools/src/chiptool.c	(revision 33602)
+++ trunk/ippTools/src/chiptool.c	(revision 33617)
@@ -1015,5 +1015,9 @@
     PXOPT_COPY_S64(config->args, where, "-chip_id", "chipProcessedImfile.chip_id", "==");
     PXOPT_COPY_STR(config->args, where, "-class_id", "chipProcessedImfile.class_id", "==");
-    PXOPT_LOOKUP_S64(chip_id, config->args, "-chip_id", true, false);
+    PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "==");
+
+    PXOPT_LOOKUP_S64(cam_id, config->args, "-cam_id", false, false);
+    // if cam_id is not supplied chip_id is required
+    PXOPT_LOOKUP_S64(chip_id, config->args, "-chip_id", cam_id ? false : true, false);
     PXOPT_LOOKUP_S64(class_id, config->args, "-class_id", true, false);
     PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", true, false);
@@ -1026,5 +1030,5 @@
     if (psListLength(where->list) == 0) {
         // won't get here
-        psError(PXTOOLS_ERR_CONFIG, true, "-chip_id and -class_id are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "-chip_id (or -cam_id) and -class_id are required");
         return false;
     }
Index: trunk/ippTools/src/chiptoolConfig.c
===================================================================
--- trunk/ippTools/src/chiptoolConfig.c	(revision 33602)
+++ trunk/ippTools/src/chiptoolConfig.c	(revision 33617)
@@ -242,5 +242,6 @@
     // -dropprocessedimfile
     psMetadata *dropprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddS64(dropprocessedimfileArgs, PS_LIST_TAIL, "-chip_id",  0,            "search by chip ID (required)", 0);
+    psMetadataAddS64(dropprocessedimfileArgs, PS_LIST_TAIL, "-chip_id",  0,            "search by chip ID", 0);
+    psMetadataAddS64(dropprocessedimfileArgs, PS_LIST_TAIL, "-cam_id",  0,            "search by cam ID", 0);
     psMetadataAddStr(dropprocessedimfileArgs,  PS_LIST_TAIL, "-class_id",           0, "search by class ID (required)", NULL);
     psMetadataAddS16(dropprocessedimfileArgs, PS_LIST_TAIL, "-set_quality",  0,        "set quality (required)", 0);
