I am so glad you got time to try the new print scp implementation.
You are right regarding the presentation lut implementation, it is not implemented since I didn't find a print scu that support printing image boxes with presentation lut.
This missing implementation explains why you are getting the negative output. The submitted code is tried with e-Filme and many real world modalities in production deployments and it work ok since none of these installations uses prsentation lut.
To be able to help, please share the study images and give me pointer to the print scu application you used to be able to implement the presentation lut support.
Regards,
Hesham
public void Save(string filmBoxFolder){ var filmBoxDicomFile = string.Format(@"{0}\FilmBox.dcm", filmBoxFolder); var file = new DicomFile(this); file.Save(filmBoxDicomFile); var imageBoxFolderInfo = new System.IO.DirectoryInfo(string.Format(@"{0}\Images", filmBoxFolder)); imageBoxFolderInfo.Create(); for (int i = 0; i < this.BasicImageBoxes.Count; i++) { var imageBox = this.BasicImageBoxes[i]; imageBox.Save(string.Format(@"{0}\I{1:000000}", imageBoxFolderInfo.FullName, i + 1));
// New Dataset to have a readable image with DICOM Viewer (like Weasis, ImageJ...) DicomDataset ds = new DicomDataset(); _filmSession.CopyTo(ds); this.CopyTo(ds);
if (imageBox.ImageSequence!=null) imageBox.ImageSequence.CopyTo(ds);
// Optionnal informations to add (missing dicomtags?) ds.Add(DicomTag.AcquisitionDate, DateTime.Today.ToString("yyyyMMdd")); ds.Add(DicomTag.AcquisitionTime, DateTime.Now.ToString("HHmmss")); // Modality HC or SC? ds.Add(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage.UID); var test = new DicomFile(ds); test.Save(string.Format(@"{0}\I{1:000000}", imageBoxFolderInfo.FullName, i + 1)); }}