02 — System Diagram

🔍 Open the Interactive Diagram Viewer — pan, zoom, per-area tabs, the full ERD and a focus mode.

Regenerate the viewer after any DSL, menu_config.yaml or diagram_config.yaml change: python scripts/build_diagram_viewer.py condition_monitoring.

flowchart TD
  AM[AnalysisMethod]
  P[MonitoringParameter]
  S[ParameterStandard]
  R[Result]
  V[ResultValue]
  ST[ConditionState]
  A[ConditionAlert]
  WP[WearPattern]
  WM[WearPatternMember]
  PE[PatternEvaluation]
  RE[ReliabilityEstimate]

  AM --> R
  AM --> S
  P --> S
  P --> V
  R --> V
  S --> V
  P --> ST
  R --> ST
  R --> A
  P --> A
  WP --> WM
  P --> WM
  R --> PE
  WP --> PE
  WP --> ST
  WP --> A

The unit, the maintenance group, the site and the SMCS code are named by network id (asset_cid, asset_group_cid, site_cid, smcs_cid); they are not foreign keys, because they belong to the Asset Register and Classification.

Where it sits in the network

sequenceDiagram
  participant L as Lab / instrument
  participant C as Condition Monitoring
  participant AR as Asset Register
  participant LC as Asset Lifecycle
  participant O as Orchestrator
  participant W as Work Management
  L->>C: condition.record_result
  C->>AR: asset.group_membership, asset.profile (direct, read-only)
  C->>LC: lifecycle.usage_at (direct, read-only)
  Note over C: rate every value; state; alerts
  C->>O: condition.urgent_reading (a value)
  C->>O: condition.pattern_detected (a pattern)
  C->>O: work.create_work_order (command)
  O->>W: deliver — a draft work order from the template
  W->>O: work.work_order_created
  O->>C: deliver — the alert learns its work order
  W->>O: work.work_closed
  O->>C: deliver — the alert is resolved
  C->>O: condition.alert_resolved
  AR->>O: asset.component_installed / removed
  O->>C: deliver — the trend restarts