首页 > 解决方案 > 如何从原始数据创建 DICOM 波形?

问题描述

我正在尝试为原始心电图数据创建 12 波。我发现How to write a DICOM file from raw ecg data,所以我将所有必需的标签添加到我的代码中,它添加了所有属性但它不绘制图形。

                   Sequence waveFormSequence = attribs.ensureSequence(Tag.WaveformSequence, 1);
        Attributes waveform = new Attributes();

        waveform.setString(Tag.WaveformOriginality, VR.CS, "ORIGINAL");
        waveform.setInt(Tag.NumberOfWaveformChannels, VR.US, 12);
        waveform.setInt(Tag.NumberOfWaveformSamples, VR.UL, 15340);
        waveform.setString(Tag.SamplingFrequency, VR.DS, "500");

        Sequence channelDefinition = waveform.ensureSequence(Tag.ChannelDefinitionSequence, 12);


            Attributes att = new Attributes();

            att.setInt(Tag.WaveformChannelNumber, VR.IS, i);
            att.setString(Tag.ChannelSampleSkew, VR.DS, "0.000");
            att.setString(Tag.CodeValue, VR.SS, "");
            att.setString(Tag.CodingSchemeDesignator, VR.SS, "");
            att.setString(Tag.CodingSchemeVersion, VR.SS, "");
            att.setInt(Tag.WaveformBitsStored, VR.US, 8);

            Sequence channelSource = att.ensureSequence(Tag.ChannelSourceSequence, 1);

            Attributes channelSourceAtts = new Attributes();
            channelSourceAtts.setString(Tag.CodeMeaning, VR.LO, "Heart");// 1
            channelSource.add(channelSourceAtts);

            att.setValue(Tag.ChannelSourceSequence, VR.SQ, channelSource);

            channelDefinition.add(att);


        waveform.setValue(Tag.ChannelDefinitionSequence, VR.SQ, channelDefinition);

        waveform.setInt(Tag.WaveformBitsAllocated, VR.US, 8);
        waveform.setString(Tag.WaveformSampleInterpretation, VR.SS, "8");

标签: javadicomwaveform

解决方案


也许我错过了一些东西,但绘制 ECG 导联必须由 DICOM Viewer 完成。并非每个 DICOM Viewer 都能显示 ECG。大多数免费查看器只能处理 DICOM 图像(ECG 不是图像,它是波形)。


推荐阅读