Files
DP44/enriched-partialglm/Common/DTS.CommonCore/Interface/RegionOfInterest/RegionOfInterestChannels.md
2026-04-17 14:55:32 -04:00

5.4 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/RegionOfInterest/RegionOfInterestChannels/IRegionOfInterestChannelsView.cs
Common/DTS.CommonCore/Interface/RegionOfInterest/RegionOfInterestChannels/IRegionOfInterestChannelsViewModel.cs
2026-04-16T12:22:46.294400+00:00 zai-org/GLM-5-FP8 1 3255d2bc1a28f8fd

Documentation: RegionOfInterestChannels Module

1. Purpose

This module defines the View and ViewModel interfaces for managing Regions of Interest (ROI) channels within the DTS system. It follows a Model-View-ViewModel (MVVM) pattern, where IRegionOfInterestChannelsView represents the view contract and IRegionOfInterestChannelsViewModel defines the presentation logic for filtering, sorting, selecting, and validating ROI channel data. This module appears to be part of a larger test setup or data acquisition system where hardware channels are organized into regions of interest for monitoring or analysis.


2. Public Interface

IRegionOfInterestChannelsView

Declaration:

public interface IRegionOfInterestChannelsView : IBaseView { }

A marker interface extending IBaseView. No members are defined beyond the inherited contract.


IRegionOfInterestChannelsViewModel

Declaration:

public interface IRegionOfInterestChannelsViewModel : IBaseViewModel

Properties:

Name Type Description
View IRegionOfInterestChannelsView Gets or sets the associated view instance.
RegionsOfInterest BindingList<IRegionOfInterest> Gets or sets the collection of regions of interest being managed.
AllChannelSSNs string[] Gets an array of all channel SSNs (presumably Serial Numbers).
ISOViewMode IsoViewMode Gets or sets the current ISO view mode.

Methods:

Signature Description
void SetParent(object o) Sets a parent object reference (purpose unclear from source alone).
void SetGroups(ITestSetup testSetup, Dictionary<string, IDASHardware> serialNumberToHardware, IsoViewMode viewMode) Configures groups using a test setup, hardware lookup dictionary, and view mode.
void SetTest(string path, IsoViewMode viewMode) Sets a test context using a file path and view mode.
void Filter(object tag, string term) Filters channels based on a tag and search term.
void Filter(string term) Filters in (searches for) a term among all channels.
void Sort(object o, bool columnClick) Sorts the data; parameters suggest sorting by column interaction.
void SelectAll(int roiIndex, bool selection) Selects or deselects all items within a specific region of interest identified by roiIndex.
bool Validate(ref List<string> errors) Validates the current state; populates the errors list with validation messages and returns a boolean success indicator.

3. Invariants

  1. MVVM Contract: IRegionOfInterestChannelsViewModel must always have an associated IRegionOfInterestChannelsView via the View property.
  2. BindingList Usage: RegionsOfInterest uses BindingList<IRegionOfInterest>, implying the collection must support change notification for UI binding.
  3. Validation Contract: The Validate method must populate the errors list (passed by reference) when returning false.
  4. ROI Index Bounds: The roiIndex parameter in SelectAll must correspond to a valid index within RegionsOfInterest (not enforced at interface level, but implied).

4. Dependencies

This module depends on:

  • DTS.Common.Base — Provides IBaseView and IBaseViewModel base interfaces.
  • System.Collections.Generic — For List<T> and Dictionary<TKey, TValue>.
  • System.Collections.ObjectModel — For collection types.
  • System.ComponentModel — For BindingList<T>.
  • DTS.Common.Interface.DataRecorders — Provides IDASHardware.
  • DTS.Common.Interface.TestSetups.TestSetupsList — Provides ITestSetup.
  • DTS.Common.Enums — Provides IsoViewMode enum.

Referenced but not actively used (commented code):

  • DTS.Common.Interface.GroupsITestObject (in commented SetGroups overload).
  • DTS.Common.Interface.GroupTemplateITestObjectTemplate (in commented SetGroups overload).

Dependents:

  • Cannot be determined from these source files alone.

5. Gotchas

  1. Commented Method Signature: There is a commented-out overload of SetGroups:

    //void SetGroups(ITestObject[] groups, Dictionary<string, IDASHardware> hardwareLookup, ITestObjectTemplate[] groupTemplates);
    

    This suggests a refactoring occurred where the method signature changed to accept ITestSetup instead of individual arrays. The active SetGroups method has different semantics—callers should not assume the old signature is still supported.

  2. Ambiguous SetParent Purpose: The SetParent(object o) method accepts a generic object type without documentation. The intended parent type and usage context are unclear from the source alone.

  3. Ambiguous Sort Parameters: The Sort(object o, bool columnClick) method uses non-descriptive parameter names. The meaning of o and the columnClick flag's effect on sorting behavior are unclear from the source alone.

  4. SSN Terminology: AllChannelSSNs uses the abbreviation "SSN" without definition. This likely means "Serial Number" but should be confirmed against system documentation.