import 'mock_rpc.dart';
import 'package:fis_measure/interfaces/process/items/item_metas.dart';
import 'package:fis_measure/interfaces/process/items/terms.dart';
import 'package:fis_measure/interfaces/process/items/types.dart';
import 'package:vid/us/vid_us_unit.dart';

abstract class MockMeasureItems {
  static final pisaMrRadius = MeasureItemInfo(
    description: "MR Radius",
    itemMeta: ItemMeta(
      "MR Radius",
      measureType: MeasureTypes.Distance,
      description: "PISA MR Radius",
      outputs: [
        ItemOutputMeta(MeasureTerms.Distance, "Distance", VidUsUnit.cm),
      ],
    ),
  );

  static final modifiedSimpsonDisc = MeasureItemInfo(
    description: MeasureTerms.ModifiedSimpsonDisc,
    itemMeta: ItemMeta(
      MeasureTerms.ModifiedSimpsonDisc,
      measureType: MeasureTypes.LvSimpson,
      description: MeasureTerms.ModifiedSimpsonDisc,
      outputs: [
        ItemOutputMeta(MeasureTerms.LVEDV, "LVEDV", VidUsUnit.mm),
        ItemOutputMeta(MeasureTerms.LVESV, "LVESV", VidUsUnit.mm),
        ItemOutputMeta(MeasureTerms.SV, "SV", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.EF, "EF", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.SI, "SI", VidUsUnit.mlm2),
        ItemOutputMeta(MeasureTerms.LVEDVI, "LVEDVI", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.LVESVI, "LVESVI", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.CO, "CO", VidUsUnit.Lmin),
        ItemOutputMeta(MeasureTerms.CI, "CI", VidUsUnit.Lminm2),
      ],
      childItems: [
        ItemMeta(
          "A2C LVEdV",
          description: MeasureTerms.LVEDV,
          measureType: MeasureTypes.SimpsonPath,
          outputs: [
            ItemOutputMeta("LvEdv", "LvEdv", VidUsUnit.None),
            ItemOutputMeta("Area", "A2C LVAd", VidUsUnit.cm2),
            ItemOutputMeta("L", "A2C LVAL", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          "A2C LVEsV",
          description: MeasureTerms.LVESV,
          measureType: MeasureTypes.SimpsonPath,
          outputs: [
            ItemOutputMeta("LvEsv", "LvEdv", VidUsUnit.None),
            ItemOutputMeta("Area", "A2C LVAd", VidUsUnit.cm2),
            ItemOutputMeta("L", "A2C LVAL", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          "A4C LVEdV",
          description: MeasureTerms.LVEDV,
          measureType: MeasureTypes.SimpsonPath,
          outputs: [
            ItemOutputMeta("LvEdv", "LvEdv", VidUsUnit.None),
            ItemOutputMeta("Area", "A2C LVAd", VidUsUnit.cm2),
            ItemOutputMeta("L", "A2C LVAL", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          "A4C LVEsV",
          description: MeasureTerms.LVESV,
          measureType: MeasureTypes.SimpsonPath,
          outputs: [
            ItemOutputMeta("LvEsv", "LvEdv", VidUsUnit.None),
            ItemOutputMeta("Area", "A2C LVAd", VidUsUnit.cm2),
            ItemOutputMeta("L", "A2C LVAL", VidUsUnit.mm),
          ],
        ),
      ],
    ),
  );

  static final a2cEnterSimpsonDisc = MeasureItemInfo(
    description: MeasureTerms.A2CEnterSimpsonDisc,
    itemMeta: ItemMeta(
      MeasureTerms.A2CEnterSimpsonDisc,
      measureType: MeasureTypes.LvSingleSimpson,
      description: MeasureTerms.A2CEnterSimpsonDisc,
      outputs: [
        ItemOutputMeta(MeasureTerms.LVEDV, "LVEDV", VidUsUnit.mm),
        ItemOutputMeta(MeasureTerms.LVESV, "LVESV", VidUsUnit.mm),
        ItemOutputMeta(MeasureTerms.SV, "SV", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.EF, "EF", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.SI, "SI", VidUsUnit.mlm2),
        ItemOutputMeta(MeasureTerms.LVEDVI, "LVEDVI", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.LVESVI, "LVESVI", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.CO, "CO", VidUsUnit.Lmin),
        ItemOutputMeta(MeasureTerms.CI, "CI", VidUsUnit.Lminm2),
      ],
      childItems: [
        ItemMeta(
          MeasureTerms.LVEDV,
          description: MeasureTerms.LVEDV,
          measureType: MeasureTypes.SimpsonPath,
          outputs: [
            ItemOutputMeta("LvEdv", "LvEdv", VidUsUnit.None),
            ItemOutputMeta("Area", "A2C LVAd", VidUsUnit.cm2),
            ItemOutputMeta("L", "A2C LVAL", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          MeasureTerms.LVESV,
          description: MeasureTerms.LVESV,
          measureType: MeasureTypes.SimpsonPath,
          outputs: [
            ItemOutputMeta("LvEsv", "LvEdv", VidUsUnit.None),
            ItemOutputMeta("Area", "A2C LVAd", VidUsUnit.cm2),
            ItemOutputMeta("L", "A2C LVAL", VidUsUnit.mm),
          ],
        ),
      ],
    ),
  );

  static final avaVTI = MeasureItemInfo(
    description: MeasureTerms.AVA_VTI,
    itemMeta: ItemMeta(
      MeasureTerms.AVA_VTI,
      measureType: MeasureTypes.FlowAreaByVTI,
      description: "AVA(VTI)",
      outputs: [
        ItemOutputMeta(MeasureTerms.FlowArea, "AVA(VTI)", VidUsUnit.cm2),
        ItemOutputMeta(MeasureTerms.SV, "SV(LVOT)", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.CSA, "CSA(LVOT)", VidUsUnit.cm2),
      ],
      childItems: [
        ItemMeta(
          MeasureTerms.Diam,
          description: MeasureTerms.Diam,
          measureType: MeasureTypes.Distance,
          outputs: [
            ItemOutputMeta(MeasureTerms.Diam, "LOVT Diam", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          MeasureTerms.OT,
          description: "OT",
          measureType: MeasureTypes.DopplerTrace,
          outputs: [
            ItemOutputMeta(MeasureTerms.SV_Trace, "LVOT Trace", VidUsUnit.None),
            ItemOutputMeta(MeasureTerms.VTI, "LVOT VTI", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          MeasureTerms.VTI,
          description: "VTI",
          measureType: MeasureTypes.DopplerTrace,
          outputs: [
            ItemOutputMeta(MeasureTerms.SV_Trace, "AV Trace", VidUsUnit.None),
            ItemOutputMeta(MeasureTerms.VTI, "AV VTI", VidUsUnit.mm),
          ],
        ),
      ],
    ),
  );

  static final flowVol = MeasureItemInfo(
    description: MeasureTerms.FlowVol,
    itemMeta: ItemMeta(
      MeasureTerms.FlowVol,
      measureType: MeasureTypes.FlowVol,
      description: MeasureTerms.FlowVol,
      outputs: [
        ItemOutputMeta(MeasureTerms.FlowVol, "FLOW VOL", VidUsUnit.mlmin),
        ItemOutputMeta(MeasureTerms.FlowArea, "Flow Area", VidUsUnit.mm2),
      ],
      childItems: [
        ItemMeta(
          MeasureTerms.Diam,
          description: MeasureTerms.Diam,
          measureType: MeasureTypes.Distance,
          outputs: [
            ItemOutputMeta(MeasureTerms.Diam, "Diam", VidUsUnit.mm),
          ],
        ),
        ItemMeta(
          MeasureTerms.VelocityMean,
          description: "Mean Vel",
          measureType: MeasureTypes.DopplerTrace,
          outputs: [
            ItemOutputMeta(
                MeasureTerms.VelocityMean, "Mean Vel", VidUsUnit.cms),
          ],
        ),
      ],
    ),
  );

  static final rvDpDt = MeasureItemInfo(
    description: MeasureTerms.RvDpDt,
    itemMeta: ItemMeta(
      MeasureTerms.RvDpDt,
      measureType: MeasureTypes.LvDpDt,
      description: MeasureTerms.RvDpDt,
      briefAnnotation: MeasureTerms.RvDpDt,
      outputs: [
        ItemOutputMeta(
            MeasureTerms.RvDpDt, MeasureTerms.RvDpDt, VidUsUnit.mmHgs),
      ],
    ),
  );

  static final lvDpDt = MeasureItemInfo(
    description: MeasureTerms.LvDpDt,
    itemMeta: ItemMeta(
      MeasureTerms.LvDpDt,
      measureType: MeasureTypes.LvDpDt,
      description: MeasureTerms.LvDpDt,
      briefAnnotation: MeasureTerms.LvDpDt,
      outputs: [
        ItemOutputMeta(
            MeasureTerms.LvDpDt, MeasureTerms.LvDpDt, VidUsUnit.mmHgs),
      ],
    ),
  );

  static final rvsp = MeasureItemInfo(
    description: MeasureTerms.RVSP,
    itemMeta: ItemMeta(
      MeasureTerms.RVSP,
      measureType: MeasureTypes.RVSP,
      description: MeasureTerms.RVSP,
      briefAnnotation: "RVSP",
      outputs: [
        ItemOutputMeta(MeasureTerms.RVSP, "RVSP", VidUsUnit.mmHg),
        ItemOutputMeta(MeasureTerms.RAP, "RAP", VidUsUnit.mmHg),
        ItemOutputMeta(MeasureTerms.PG, "PG", VidUsUnit.mmHg),
      ],
      childItems: [
        ItemMeta(
          MeasureTerms.TRVmax,
          measureType: MeasureTypes.Velocity,
          description: MeasureTerms.TRVmax,
          briefAnnotation: "TR Vmax",
          outputs: [
            ItemOutputMeta(MeasureTerms.TRVmax, "TR Vmax", VidUsUnit.cms),
          ],
        ),
        // ItemMeta(
        //   MeasureTerms.RAP,
        //   measureType: MeasureTypes.Empty,
        //   description: MeasureTerms.RAP,
        //   briefAnnotation: "RAP",
        //   outputs: [
        //     ItemOutputMeta(MeasureTerms.RAP, "RAP", VidUsUnit.mmHg),
        //   ],
        // ),
      ],
    ),
  );

  static final qpQs = MeasureItemInfo(
    description: MeasureTerms.QpQs,
    itemMeta: ItemMeta(
      MeasureTerms.QpQs,
      measureType: MeasureTypes.MultiQpQs,
      description: MeasureTerms.QpQs,
      briefAnnotation: "Qp/Qs",
      outputs: [
        ItemOutputMeta(MeasureTerms.QpQs, "Qp/Qs", VidUsUnit.percent),
      ],
      childItems: [qp.itemMeta, qs.itemMeta],
    ),
  );

  static final qp = MeasureItemInfo(
    description: MeasureTerms.Qp,
    itemMeta: ItemMeta(
      MeasureTerms.Qp,
      measureType: MeasureTypes.SV,
      description: MeasureTerms.Qp,
      briefAnnotation: "Qp",
      outputs: [
        ItemOutputMeta(MeasureTerms.SV, "SV(ROVT)", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.CSA, "CSA(ROVT)", VidUsUnit.ml),
      ],
      childItems: [
        ItemMeta(
          MeasureTerms.SV_Diam,
          description: MeasureTerms.SV_Diam,
          measureType: MeasureTypes.Distance,
          outputs: [
            ItemOutputMeta(MeasureTerms.SV_Diam, "ROVT Diam", VidUsUnit.minute),
          ],
        ),
        ItemMeta(
          MeasureTerms.TA,
          description: "ROVT Trace",
          measureType: MeasureTypes.DopplerTrace,
          outputs: [
            ItemOutputMeta(MeasureTerms.SV_Trace, "ROVT Trace", VidUsUnit.None),
            ItemOutputMeta(MeasureTerms.VTI, "ROVT VTI", VidUsUnit.mm),
          ],
        ),
      ],
    ),
  );

  static final qs = MeasureItemInfo(
    description: MeasureTerms.Qs,
    itemMeta: ItemMeta(
      MeasureTerms.Qs,
      measureType: MeasureTypes.SV,
      description: MeasureTerms.Qs,
      briefAnnotation: "Qs",
      outputs: [
        ItemOutputMeta(MeasureTerms.SV, "SV(LOVT)", VidUsUnit.ml),
        ItemOutputMeta(MeasureTerms.CSA, "CSA(LOVT)", VidUsUnit.ml),
      ],
      childItems: [
        ItemMeta(
          MeasureTerms.SV_Diam,
          description: MeasureTerms.SV_Diam,
          measureType: MeasureTypes.Distance,
          outputs: [
            ItemOutputMeta(MeasureTerms.SV_Diam, "LOVT Diam", VidUsUnit.minute),
          ],
        ),
        ItemMeta(
          MeasureTerms.TA,
          description: "ROVT Trace",
          measureType: MeasureTypes.DopplerTrace,
          outputs: [
            ItemOutputMeta(MeasureTerms.SV_Trace, "LOVT Trace", VidUsUnit.None),
            ItemOutputMeta(MeasureTerms.VTI, "LOVT VTI", VidUsUnit.mm),
          ],
        ),
      ],
    ),
  );

  static final urmCurvatureAutoLine = MeasureItemInfo(
    description: "URM Curvature(AutoLine)",
    itemMeta: ItemMeta(
      "URM Curvature(AutoLine)",
      measureType: MeasureTypes.URMStraightCurvatureLineMeasure,
      description: "URM Curvature(AutoLine)",
      briefAnnotation: "URM",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMCurvature, "URM Dev", VidUsUnit.None),
      ],
    ),
  );
  static final urmCurvatureAutoTrace = MeasureItemInfo(
    description: "URM Curvature(AutoTrace)",
    itemMeta: ItemMeta(
      "URM Curvature(AutoTrace)",
      measureType: MeasureTypes.URMCurvatureTraceMeasure,
      description: "URM Curvature(AutoTrace)",
      briefAnnotation: "URM",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMCurvature, "URM Dev", VidUsUnit.None),
      ],
    ),
  );
  static final urmCurvatureManual = MeasureItemInfo(
    description: "URM Curvature(Manual)",
    itemMeta: ItemMeta(
      "URM Curvature(Manual)",
      measureType: MeasureTypes.URMCurveCurvatureLineMeasure,
      description: "URM Curvature(Manual)",
      briefAnnotation: "URM",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMCurvature, "URM Dev", VidUsUnit.None),
      ],
    ),
  );
  static final urmTracePerfusion = MeasureItemInfo(
    description: "URM Perfusion(Trace)",
    itemMeta: ItemMeta(
      "URM Perfusion(Trace)",
      measureType: MeasureTypes.URMTracePerfusion,
      description: "URM Perfusion(Trace)",
      briefAnnotation: "URM Perfusion(Trace)",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMPerfusionIndex, "URM Perfusion(Trace) ",
            VidUsUnit.None),
      ],
    ),
  );

  static final urmTraceDenMeasure = MeasureItemInfo(
    description: "URM TraceDenMeasure(Trace)",
    itemMeta: ItemMeta(
      "URM TraceDenMeasure(Trace)",
      measureType: MeasureTypes.URMTraceDenMeasure,
      description: "URM TraceDenMeasure(Trace)",
      briefAnnotation: "URM TraceDenMeasure(Trace)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMDenROI, "URM URMDenROI(Trace) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.URMDenFractalDim,
            "URM URMDenFractalDim(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMax, "URM URMDenMax(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMin, "URM URMDenMin(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMean, "URM URMDenMean(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenStd, "URM URMDenStd(Trace) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.Area, "URM Area(Trace) ", VidUsUnit.None),
      ],
    ),
  );
  static final urmTraceDenVelMeasure = MeasureItemInfo(
    description: "URM URMTraceDenVelMeasure(Trace)",
    itemMeta: ItemMeta(
      "URM URMTraceDenVelMeasure(Trace)",
      measureType: MeasureTypes.URMTraceDenVelMeasure,
      description: "URM URMTraceDenVelMeasure(Trace)",
      briefAnnotation: "URM URMTraceDenVelMeasure(Trace)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMDenROI, "URM URMDenROI(Trace) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.URMDenFractalDim,
            "URM URMDenFractalDim(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMax, "URM URMDenMax(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMin, "URM URMDenMin(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMean, "URM URMDenMean(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenStd, "URM URMDenStd(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelMax, "URM URMVelMax(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelMin, "URM URMVelMin(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelMean, "URM URMVelMean(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelStd, "URM URMVelStd(Trace) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.Area, "URM Area(Trace) ", VidUsUnit.None),
      ],
    ),
  );

  static final urmTraceDensity = MeasureItemInfo(
    description: "URM URMTraceDenVelMeasure(Trace)",
    itemMeta: ItemMeta(
      "URM URMTraceDenVelMeasure(Trace)",
      measureType: MeasureTypes.URMTraceDensity,
      description: "URM URMTraceDenVelMeasure(Trace)",
      briefAnnotation: "URM URMTraceDenVelMeasure(Trace)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMDenROI, "URM URMDenROI(Trace) ", VidUsUnit.None),
      ],
    ),
  );

  static final urmTraceFractalDim = MeasureItemInfo(
    description: "URM URMTraceFractalDim(Trace)",
    itemMeta: ItemMeta(
      "URM URMTraceFractalDim(Trace)",
      measureType: MeasureTypes.URMTraceFractalDim,
      description: "URM URMTraceFractalDim(Trace)",
      briefAnnotation: "URM URMTraceFractalDim(Trace)",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMDenFractalDim,
            "URM URMDenFractalDim(Trace) ", VidUsUnit.None),
      ],
    ),
  );

  static final urmTraceVelMeasure = MeasureItemInfo(
    description: "URM URMTraceVelMeasure(Trace)",
    itemMeta: ItemMeta(
      "URM URMTraceVelMeasure(Trace)",
      measureType: MeasureTypes.URMTraceVelMeasure,
      description: "URM URMTraceVelMeasure(Trace)",
      briefAnnotation: "URM URMTraceVelMeasure(Trace)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMVelMax, "URM URMVelMax(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelMin, "URM URMVelMin(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelMean, "URM URMVelMean(Trace) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMVelStd, "URM URMVelStd(Trace) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.Area, "URM Area(Trace) ", VidUsUnit.None),
      ],
    ),
  );

  static final urmRectPerfusion = MeasureItemInfo(
    description: "URM URMRectPerfusion(Rect)",
    itemMeta: ItemMeta(
      "URM URMRectPerfusion(Rect)",
      measureType: MeasureTypes.URMRectPerfusion,
      description: "URM URMRectPerfusion(Rect)",
      briefAnnotation: "URM URMRectPerfusion(Rect)",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMPerfusionIndex,
            "URM URMPerfusionIndex(Rect) ", VidUsUnit.None),
      ],
    ),
  );

  static final urmRectDenMeasure = MeasureItemInfo(
    description: "URM URMRectDenMeasure(Rect)",
    itemMeta: ItemMeta(
      "URM URMRectPerfusion(Rect)",
      measureType: MeasureTypes.URMRectDenMeasure,
      description: "URM URMRectDenMeasure(Rect)",
      briefAnnotation: "URM URMRectDenMeasure(Rect)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMDenROI, "URM URMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.URMDenFractalDim,
            "URM URMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMax, "URM URMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMin, "URM URMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMean, "URM URMDenMean(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenStd, "URM URMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.Area, "Area(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenROI, "URM OutURMDenROI(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenFractalDim,
            "URM OutURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenMax, "URM OutURMDenMax(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenMin, "URM OutURMDenMin(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenMean, "URM OutURMDenMean(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenStd, "URM OutURMDenStd(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutArea, "OutArea(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenROI, "URM InURMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InURMDenFractalDim,
            "URM InURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMax, "URM InURMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMin, "URM InURMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InURMDenMean, "URM InURMDenMean(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenStd, "URM InURMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InArea, "InArea(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenROI, "OutURMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenFractalDim,
            "OutURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenMax, "OutURMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenMin, "OutURMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenMean, "OutURMDenMean(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenStd, "OutURMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutArea, "OutArea(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenROI, "InURMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InURMDenFractalDim,
            "InURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMax, "InURMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMin, "InURMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMean, "InURMDenMean(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenStd, "InURMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InArea, "InArea(Rect) ", VidUsUnit.None),
      ],
    ),
  );
  static final urmRectDenVelMeasure = MeasureItemInfo(
    description: "URM URMRectDenVelMeasure(Rect)",
    itemMeta: ItemMeta(
      "URM URMRectDenVelMeasure(Rect)",
      measureType: MeasureTypes.URMRectDenVelMeasure,
      description: "URM URMRectDenVelMeasure(Rect)",
      briefAnnotation: "URM URMRectDenVelMeasure(Rect)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMDenROI, "URM URMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.URMDenFractalDim,
            "URM URMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMax, "URM URMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMin, "URM URMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenMean, "URM URMDenMean(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.URMDenStd, "URM URMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.Area, "Area(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenROI, "URM OutURMDenROI(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenFractalDim,
            "URM OutURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenMax, "URM OutURMDenMax(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenMin, "URM OutURMDenMin(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenMean, "URM OutURMDenMean(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenStd, "URM OutURMDenStd(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutArea, "OutArea(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenROI, "URM InURMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InURMDenFractalDim,
            "URM InURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMax, "URM InURMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMin, "URM InURMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InURMDenMean, "URM InURMDenMean(Rect) ",
            VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenStd, "URM InURMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InArea, "InArea(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenROI, "OutURMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutURMDenFractalDim,
            "OutURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenMax, "OutURMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenMin, "OutURMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenMean, "OutURMDenMean(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.OutURMDenStd, "OutURMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.OutArea, "OutArea(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenROI, "InURMDenROI(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InURMDenFractalDim,
            "InURMDenFractalDim(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMax, "InURMDenMax(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMin, "InURMDenMin(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenMean, "InURMDenMean(Rect) ", VidUsUnit.None),
        ItemOutputMeta(
            MeasureTerms.InURMDenStd, "InURMDenStd(Rect) ", VidUsUnit.None),
        ItemOutputMeta(MeasureTerms.InArea, "InArea(Rect) ", VidUsUnit.None),
      ],
    ),
  );
  static final urmRectDensity = MeasureItemInfo(
    description: "URM URMRectDensity(Rect)",
    itemMeta: ItemMeta(
      "URM URMRectDensity(Rect)",
      measureType: MeasureTypes.URMRectDensity,
      description: "URM URMRectDensity(Rect)",
      briefAnnotation: "URM URMRectDensity(Rect)",
      outputs: [
        ItemOutputMeta(
            MeasureTerms.URMDenROI, "URM URMDenROI(Rect) ", VidUsUnit.None),
      ],
    ),
  );
  static final urmRectFractalDim = MeasureItemInfo(
    description: "URM URMRectFractalDim(Rect)",
    itemMeta: ItemMeta(
      "URM URMRectFractalDim(Rect)",
      measureType: MeasureTypes.URMRectFractalDim,
      description: "URM URMRectFractalDim(Rect)",
      briefAnnotation: "URM URMRectFractalDim(Rect)",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMDenFractalDim,
            "URM URMDenFractalDim(Rect) ", VidUsUnit.None),
      ],
    ),
  );
  static final urmRectVelMeasure = MeasureItemInfo(
    description: "URM URMRectVelMeasure(Rect)",
    itemMeta: ItemMeta("URM URMRectVelMeasure(Rect)",
        measureType: MeasureTypes.URMRectVelMeasure,
        description: "URM URMRectVelMeasure(Rect)",
        briefAnnotation: "URM URMRectVelMeasure(Rect)",
        outputs: [
          ItemOutputMeta(
              MeasureTerms.URMVelMax, "URM URMVelMax(Rect) ", VidUsUnit.None),
          ItemOutputMeta(MeasureTerms.URMDenFractalDim,
              "URM URMDenFractalDim(Rect) ", VidUsUnit.None),
          ItemOutputMeta(
              MeasureTerms.URMVelMin, "URM URMVelMin(Rect) ", VidUsUnit.None),
          ItemOutputMeta(
              MeasureTerms.URMVelMean, "URM URMVelMean(Rect) ", VidUsUnit.None),
          ItemOutputMeta(
              MeasureTerms.URMVelStd, "URM URMVelStd(Rect) ", VidUsUnit.None),
          ItemOutputMeta(MeasureTerms.Area, "Area(Rect) ", VidUsUnit.None),
        ]),
  );
  static final urmShellPerfusionMeasure = MeasureItemInfo(
    description: "URM URMTraceVelMeasure(Shell)",
    itemMeta: ItemMeta(
      "URM URMTraceVelMeasure(Shell)",
      measureType: MeasureTypes.URMShellPerfusionMeasure,
      description: "URM URMTraceVelMeasure(Shell)",
      briefAnnotation: "URM URMTraceVelMeasure(Shell)",
      outputs: [
        ItemOutputMeta(MeasureTerms.URMPerfusionIndex, "URM Perfusion(Shell) ",
            VidUsUnit.None),
      ],
    ),
  );
}
