java - 如何从原始数据创建 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");
解决方案
也许我错过了一些东西,但绘制 ECG 导联必须由 DICOM Viewer 完成。并非每个 DICOM Viewer 都能显示 ECG。大多数免费查看器只能处理 DICOM 图像(ECG 不是图像,它是波形)。
推荐阅读
- android - WKWebView 中的 WebViewClient onLoadResource 模拟
- android - 如何使用 MockWebServer 测试 Retrofit API 调用
- aws-lambda - 如何使用 terraform 更改 AWS Lambda 中的临时目录
- python - 如何将此数学方程式编写为代码并将其打印为 3d 图形
- scripting - 如何在第一个完成后运行 2 个 PowerShell 脚本?
- c - c166 16位微处理器的c函数中的编译器错误
- lambda - 使用 Cloudformation 部署的服务器不工作
- .net - 使用查询参数重写 .NET URL
- python - 用户输入不同函数的参数 [Python]
- ios - 'FBSDKShareKit/FBSDKShareKit.h' 文件未找到