private static IXRay3DAcquisitionSequenceItem[] GetAcquisitions(Frame frame, int[] acquisitionIndices) { var acquisitionModule = new XRay3DAcquisitionModule(frame.ParentImageSop); if (!acquisitionModule.HasValues()) return null; var acquisitionItems = acquisitionModule.XRay3DAcquisitionSequence; if (acquisitionItems == null) return null; // DICOM indexes are 1-based return acquisitionIndices != null && acquisitionIndices.Min() > 0 && acquisitionItems.Length >= acquisitionIndices.Max() ? acquisitionIndices.Select(i => acquisitionItems[i - 1]).ToArray() : null; }
private static IXRay3DAcquisitionSequenceItem[] GetAcquisitions(Frame frame, int[] acquisitionIndices) { var acquisitionModule = new XRay3DAcquisitionModule(frame.ParentImageSop); if (!acquisitionModule.HasValues()) return null; var acquisitionItems = acquisitionModule.XRay3DAcquisitionSequence; if (acquisitionItems == null) return null; // if acquisition indices are not specified, but the acquisition sequence exists and has exactly one item, assume everything came from that acquisition if (acquisitionIndices == null) return acquisitionItems.Length == 1 ? new[] {acquisitionItems[0]} : null; // DICOM indexes are 1-based return acquisitionIndices.Min() > 0 && acquisitionItems.Length >= acquisitionIndices.Max() ? acquisitionIndices.Select(i => acquisitionItems[i - 1]).ToArray() : null; }