【问题标题】:Defining Sequence Item for ECG Dicom by Using ClearCanvas Library使用 ClearCanvas 库为 ECG Dicom 定义序列项
【发布时间】:2015-05-05 13:47:07
【问题描述】:

我正在使用 clearcanvas 库对心电图图像进行二元化。

我需要为我提取的每个通道定义通道信息(通道源序列和通道灵敏度单元序列)。 如何在 ClearCanvas 中定义每个通道?

示例代码如下;

channelSeq[i] = new DicomSequenceItem();
channelSeq[i][DicomTags.ChannelBaseline].SetUInt32(0, 0);
channelSeq[i][DicomTags.ChannelTimeSkew].SetUInt32(0, 0);
channelSeq[i][DicomTags.ChannelSampleSkew].SetUInt32(0, 0);
channelSeq[i][DicomTags.WaveformBitsAllocated].SetInt32(0, 16); // 16 bit
channelSeq[i][DicomTags.ChannelSensitivityCorrectionFactor].SetUInt32(0, 1);
channelSeq[i][DicomTags.ChannelSensitivity].SetUInt32(0, 1);
channelSourceSeq = new DicomSequenceItem();
channelSourceSeq[DicomTags.CodeValue].SetStringValue(HttpContext.GetGlobalResourceObject("EcgCodes", ecgType).ToString());
channelSourceSeq[DicomTags.ContextIdentifier].SetStringValue("CID 3001");
channelSeq[i][DicomTags.ChannelSourceSequence].Values = channelSourceSeq;
channelSensUnitSeq = new DicomSequenceItem();
channelSensUnitSeq[DicomTags.CodeValue].SetStringValue("uV"); // millivolt
channelSeq[i][DicomTags.ChannelSensitivityUnitsSequence].Values = channelSensUnitSeq;
channelSeq[i][DicomTags.WaveformChannelNumber].SetStringValue((i + 1).ToString());
channelSeq[i][DicomTags.ChannelLabel].SetStringValue("Channel " + (i + 1));
channelSeq[i][DicomTags.ChannelStatus].SetStringValue("OK");

感谢您的帮助。

【问题讨论】:

    标签: c# dicom clearcanvas


    【解决方案1】:

    Channel Definition Sequence (003A,0200) 是 Waveform Sequence (5400,1000) 中的子序列。

    在那里,您可以根据需要添加频道,例如

    channelSeq[i][DicomTags.WaveformChannelNumber].SetStringValue("1");
    channelSeq[i][DicomTags.ChannelLabel].SetStringValue("Channel 1");
    channelSeq[i][DicomTags.ChannelStatus].SetStringValue("OK");
    

    并添加您在示例中显示的来源和敏感性。

    最后将您的项目添加到Channel Definition Sequence

    myWaveFormSequence[DicomTags.ChannelDefinitionSequence].AddSequenceItem(channelSeq[i]);
    

    查看更多标签,您可以在以下位置为频道序列指定什么 http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.10.9.html

    【讨论】:

    • 是否需要指定通道敏感单元序列?顺便说一句,是通道 1 的示例还是通道 1 的正确值。
    • “频道 1”只是一个例子。仅当您在 Channel Definition Sequence 中指定了 Channel Sensitivity (003A,0210) 时才需要灵敏度单位序列。
    • 对于(aV5)lead,我写“channel aV5”还是……不同?
    • 频道标签可能用于显示目的,因此您可以在此处添加任何您喜欢的内容。
    • 我定义了通道,但是当我使用 dicom 标签查看器查看标签时,我注意到子序列长度为 -1。我正在使用 AddSequenceItem 函数添加子序列
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多