Index: trunk/psModules/src/camera/pmFPAWrite.c
===================================================================
--- trunk/psModules/src/camera/pmFPAWrite.c	(revision 13841)
+++ trunk/psModules/src/camera/pmFPAWrite.c	(revision 15094)
@@ -57,18 +57,27 @@
         }
     }
-    if (chip) {
-        const char *chipNameHdr = psMetadataLookupStr(&mdok, fileData, "CHIP.NAME");
-        if (mdok && chipNameHdr && strlen(chipNameHdr) > 0) {
-            const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME");
-            psMetadataAddStr(hdu->header, PS_LIST_TAIL, chipNameHdr, PS_META_REPLACE, "Chip name", chipName);
-        }
-    }
-    if (cell) {
-        const char *cellNameHdr = psMetadataLookupStr(&mdok, fileData, "CELL.NAME");
-        if (mdok && cellNameHdr && strlen(cellNameHdr) > 0) {
-            const char *cellName = psMetadataLookupStr(NULL, cell->concepts, "CELL.NAME");
-            psMetadataAddStr(hdu->header, PS_LIST_TAIL, cellNameHdr, PS_META_REPLACE, "Cell name", cellName);
-        }
-    }
+
+    if (chip || cell) {
+        const char *rule = psMetadataLookupStr(NULL, fileData, "CONTENT.RULE"); // How to define the CONTENT
+        if (!rule) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to find CONTENT.RULE in FILE in camera format.");
+            return false;
+        }
+
+        pmFPAview *view = pmFPAViewGenerate(fpa, chip, cell, NULL); // View for fpa, chip, cell
+        psString *content = pmFPANameFromRule(rule, fpa, view); // Content of this file, specified by the rule
+        psFree(view);
+
+        const char *contentKey = psMetadataLookupStr(NULL, fileData, "CONTENT"); // The CONTENT header keyword
+        if (!contentKey) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to find CONTENT in FILE in the camera format.");
+            psFree(content);
+            return false;
+        }
+
+        psMetadataAddStr(hdu->header, PS_LIST_END, contentKey, PS_META_REPLACE, "Content of file", content);
+        psFree(content);                // Drop reference
+    }
+
     return true;
 }
