DCMTK dcm2json 为损坏的 DS 或 IS 值生成无效 JSON
DCMTK dcm2json produces invalid JSON for broken DS or IS values
DCMTK dcm2json 为损坏的 DS 或 IS 值生成无效 JSON 请参阅 https://support.dcmtk.org/redmine/issues/769
JSON 将包含如下示例的值:
"00291003": {"vr":"IS","Value":[F]},
其中 'F' 显然不是数字。
这可以在 Nodejs 环境中解决,方法是首先 运行 未解析的原始 JSON 通过以下方法。
const jsonRepair = (rawJson) => {
let regex1 = /\[([^"]+)\]/g
let isNumRegex = /^[-.0-9]*\d$/g
let matches = undefined
while ((matches = regex1.exec(rawJson)) !== null) {
if (!isNumRegex.test(matches[1])) {
rawJson = rawJson.replace(matches[0], `["${matches[1]}"]`)
console.log(matches[0], `[${matches[1]}]`)
}
}
return rawJson
}
DCMTK dcm2json 为损坏的 DS 或 IS 值生成无效 JSON 请参阅 https://support.dcmtk.org/redmine/issues/769
JSON 将包含如下示例的值:
"00291003": {"vr":"IS","Value":[F]},
其中 'F' 显然不是数字。
这可以在 Nodejs 环境中解决,方法是首先 运行 未解析的原始 JSON 通过以下方法。
const jsonRepair = (rawJson) => {
let regex1 = /\[([^"]+)\]/g
let isNumRegex = /^[-.0-9]*\d$/g
let matches = undefined
while ((matches = regex1.exec(rawJson)) !== null) {
if (!isNumRegex.test(matches[1])) {
rawJson = rawJson.replace(matches[0], `["${matches[1]}"]`)
console.log(matches[0], `[${matches[1]}]`)
}
}
return rawJson
}