+/*
+ * \ingroup SQItem
+ * \brief canonical Writer
+ */
+void SQItem::Write(std::ofstream* fp, FileType filetype)
+{
+ int j;
+ uint16_t item[4] = { 0xfffe, 0xe000, 0xffff, 0xffff };
+ uint16_t itemt[4]= { 0xfffe, 0xe00d, 0xffff, 0xffff };
+
+ //we force the writting of an 'Item' Start Element
+ // because we want to write the Item as a 'no Length' item
+ for(j=0;j<4;++j)
+ {
+ binary_write( *fp, item[j]); // fffe e000 ffff ffff
+ }
+
+ for (ListDocEntry::iterator i = DocEntries.begin();
+ i != DocEntries.end();
+ ++i)
+ {
+ // we skip delimitors (start and end one) because
+ // we force them as 'no length'
+ if ( (*i)->GetGroup() == 0xfffe )
+ {
+ continue;
+ }
+
+ // Fix in order to make some MR PHILIPS images e-film readable
+ // see gdcmData/gdcm-MR-PHILIPS-16-Multi-Seq.dcm:
+ // we just *always* ignore spurious fffe|0000 tag !
+ if ( (*i)->GetGroup() == 0xfffe && (*i)->GetElement() == 0x0000 )
+ {
+ break; // FIXME : continue; ?!?
+ }
+
+ (*i)->Write(fp, filetype);
+ }
+
+ //we force the writting of an 'Item Delimitation' item
+ // because we wrote the Item as a 'no Length' item
+ for(j=0;j<4;++j)
+ {
+ binary_write( *fp, itemt[j]); // fffe e000 ffff ffff
+ }
+
+}
+