我正在使用clearcanvas库来分类化ecg图像。
我需要为我提取的每个频道定义频道信息(频道源序列和频道灵敏度单元序列)。 如何在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");
感谢您的帮助。
答案 0 :(得分: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