1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- const parser = require('dicom-parser');
- const fsp = require('fs-promise');
- const iconv = require("iconv-lite")
- const filePath = '/Users/fuyu/Downloads/CgocGF1Cuu2AMYb5AIEtSKYTE8Q756.dcm';
- let test = async url => {
- const fileBuffer = await fsp.readFile(url);
- const dataSet = parser.parseDicom(fileBuffer);
- const charset = getCharSet(dataSet)
- const originalString = dataSet.string;
- dataSet.string = (tag, index) => {
- let value = originalString.call(dataSet, tag, index);
- if (value != null && value != 'undefined') {
- console.log('charset', charset)
- let _value = iconv.decode(value, 'UTF-8');
- // console.log()
- if (_value != null && _value != 'undefined') {
- return _value.replace(/['^']+/g, '')
- }
- return _value;
- } else {
- return value;
- }
- };
- let text = dataSet.string('x0008103e')
- console.log(text, iconv.decode(text, 'ISO_IR 100'))
- }
- const chatSetMap = {
- 'ISO_IR 6': 'UTF-8',
- 'ISO_IR 192': 'UTF-8',
- 'ISO_IR 100': 'ISO-8859-1',
- 'ISO_IR 101': 'ISO-8859-2',
- 'ISO_IR 109': 'ISO-8859-3',
- 'ISO_IR 110': 'ISO-8859-4',
- 'ISO_IR 144': 'ISO-8859-5',
- 'ISO_IR 127': 'ISO-8859-6',
- 'ISO_IR 126': 'ISO-8859-7',
- 'ISO_IR 138': 'ISO-8859-8',
- 'ISO_IR 148': 'ISO-8859-9',
- }
- const getCharSet = dataSet => {
- let specificCharacterSet = dataSet.string('x00080005');
- let charset = 'GB2312'
- console.log('specificCharacterSet', specificCharacterSet)
- if (specificCharacterSet) {
- charset = chatSetMap[specificCharacterSet] || charset
- }
- return charset
- }
- // GB2312
- // //xml文件编码方式,以支持中文显示。
- // if (!csetString.empty())
- // encString = "GB2312";
- test(filePath)
|