Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 7087)
+++ /trunk/ippTools/src/dettool.c	(revision 7088)
@@ -167,10 +167,39 @@
 
     // generate where query with just the exp_ids
+    psMetadata *where_exp_ids = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(detInputExp); i++) {
-    }
+        detInputExpRow *row = detInputExp->data[i];
+        if (!psMetadataAddStr(where_exp_ids, PS_LIST_TAIL, "exp_id", 0, "==",
+            row->exp_id)
+        ) {
+            psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
+            psFree(detInputExp);
+            psFree(where_exp_ids);
+            return false;
+        }
+    }
+    psFree(detInputExp);
 
     // select rawImfiles with matching exp_ids
+    psArray *rawImfiles =
+        rawImfileSelectRowObjects(config->dbh, where_exp_ids, 0);
+    psFree(where_exp_ids);
+    if (!rawImfiles) {
+        psError(PS_ERR_UNKNOWN, false, "no rawImfile rows found");
+        return false;
+    }
 
     // print imfile list
+    psMetadata *output = psMetadataAlloc();
+    for (long i = 0; i < psArrayLength(rawImfiles); i++) {
+        psMetadata *md = rawImfileMetadataFromObject(rawImfiles->data[i]);
+        psMetadataAddMetadata(
+            output, PS_LIST_TAIL, "rawImfile",  PS_META_DUPLICATE_OK, NULL, md);
+    }
+
+    psString str = psMetadataConfigFormat(output); 
+    psFree(output);
+    fprintf(stdout, "%s\n", str);
+    psFree(str);
 
     return true;
