1

我正在使用 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");

感谢帮助。

4

1 回答 1

1

( Channel Definition Sequence003A,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上查看您可以为通道序列指定的更多标签

于 2015-05-06T10:33:36.693 回答