- os << "META" << std::endl;
- // warning : META doesn't behave exactly like a Objet
- for (ListDocEntry::iterator i = DocEntries.begin();
- i != DocEntries.end();
- ++i)
- {
- (*i)->SetPrintLevel(PrintLevel);
- (*i)->Print();
- os << std::endl;
+ // 'File Meta Information Version'
+
+ uint8_t fmiv[2] = {0x02,0x00};
+ // FIXME : the following doesn't make the job (?!?)
+ //SetEntryBinArea(fmiv, 0x0002,0x0001, 2);
+ DataEntry *e00002_0001 = GetDataEntry(0x0002,0x0001);
+ e00002_0001->CopyBinArea(fmiv, 2);
+
+ // 'Media Storage SOP Instance UID'
+ DataEntry *e00002_0003 = GetDataEntry(0x0002,0x0003);
+ e00002_0003->SetString(Util::CreateUniqueUID());
+
+ // 'Implementation Class UID'
+ DataEntry *e00002_0012 = GetDataEntry(0x0002,0x0012);
+ e00002_0012->SetString(Util::CreateUniqueUID());
+
+ // Entry : 0002|0000 = group length -> recalculated
+ DataEntry *e0000 = GetDataEntry(0x0002,0x0000);
+ std::ostringstream sLen;
+ sLen << ComputeGroup0002Length( );
+ e0000->SetString(sLen.str());
+
+ for (ListDocEntry::iterator i = DocEntries.begin();
+ i!= DocEntries.end();
+ ++i)
+ {
+ // true : we are in MetaElements
+ (*i)->WriteContent(fp, filetype, true, false);