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;
		}