additional field untuk overlay MRI OHIF
This commit is contained in:
@@ -58,10 +58,19 @@ function parseFile(filename: string): Promise<ElementType> {
|
|||||||
const sliceThickness = dataset.string('x00180050');
|
const sliceThickness = dataset.string('x00180050');
|
||||||
const sliceLocation = dataset.string('x00201041');
|
const sliceLocation = dataset.string('x00201041');
|
||||||
|
|
||||||
// MR-specific tags for overlay
|
|
||||||
// TODO: buat ini dynamic berdasarkan includefields atau modality
|
// TODO: buat ini dynamic berdasarkan includefields atau modality
|
||||||
|
// TODO: hapus tambahan di bawah ini yang tidak diperlukan
|
||||||
|
|
||||||
|
// MR-specific tags for overlay
|
||||||
const spacingBetweenSlices = dataset.string('x00180088');
|
const spacingBetweenSlices = dataset.string('x00180088');
|
||||||
const percentPhaseFieldOfView = dataset.string('x00180094');
|
const percentPhaseFieldOfView = dataset.string('x00180094');
|
||||||
|
const fovDimensionElement = dataset.elements.x00181149;
|
||||||
|
const fovDimension = fovDimensionElement
|
||||||
|
? [
|
||||||
|
dataset.uint16('x00181130', 0),
|
||||||
|
dataset.uint16('x00181130', 1),
|
||||||
|
]
|
||||||
|
: null;
|
||||||
const acquisitionMatrixElement = dataset.elements.x00181310;
|
const acquisitionMatrixElement = dataset.elements.x00181310;
|
||||||
const acquisitionMatrix = acquisitionMatrixElement
|
const acquisitionMatrix = acquisitionMatrixElement
|
||||||
? [
|
? [
|
||||||
@@ -78,10 +87,13 @@ function parseFile(filename: string): Promise<ElementType> {
|
|||||||
const receiveCoilName = dataset.string('x00181250');
|
const receiveCoilName = dataset.string('x00181250');
|
||||||
const mrAcquisitionType = dataset.string('x00180023');
|
const mrAcquisitionType = dataset.string('x00180023');
|
||||||
const phaseEncodingDirection = dataset.string('x00181312');
|
const phaseEncodingDirection = dataset.string('x00181312');
|
||||||
|
const numOfAverages = dataset.string('x00180083');
|
||||||
const echoTrainLength = dataset.string('x00180091');
|
const echoTrainLength = dataset.string('x00180091');
|
||||||
const flipAngle = dataset.string('x00181314');
|
const flipAngle = dataset.string('x00181314');
|
||||||
const pixelBandwidth = dataset.string('x00180095');
|
const pixelBandwidth = dataset.string('x00180095');
|
||||||
const acquisitionTime = dataset.string('x00080032');
|
const acquisitionTime = dataset.string('x00080032');
|
||||||
|
const acquistionDurationTotal = dataset.string('x00189073'); // in seconds
|
||||||
|
const acquistionDurationPerFrame = dataset.string('x00189220'); // in ms
|
||||||
const parallelAcquisitionTechnique = dataset.string('x00181316');
|
const parallelAcquisitionTechnique = dataset.string('x00181316');
|
||||||
|
|
||||||
// append to all results
|
// append to all results
|
||||||
@@ -116,6 +128,7 @@ function parseFile(filename: string): Promise<ElementType> {
|
|||||||
'00201041': { Value: [sliceLocation], vr: 'DS' },
|
'00201041': { Value: [sliceLocation], vr: 'DS' },
|
||||||
'00180088': { Value: [spacingBetweenSlices], vr: 'DS' },
|
'00180088': { Value: [spacingBetweenSlices], vr: 'DS' },
|
||||||
'00180094': { Value: [percentPhaseFieldOfView], vr: 'DS' },
|
'00180094': { Value: [percentPhaseFieldOfView], vr: 'DS' },
|
||||||
|
...(fovDimension && { '00181149': { Value: fovDimension, vr: 'IS' } }),
|
||||||
...(acquisitionMatrix && { '00181310': { Value: acquisitionMatrix, vr: 'US' } }),
|
...(acquisitionMatrix && { '00181310': { Value: acquisitionMatrix, vr: 'US' } }),
|
||||||
'00180020': { Value: [scanningSequence], vr: 'CS' },
|
'00180020': { Value: [scanningSequence], vr: 'CS' },
|
||||||
'00180080': { Value: [repetitionTime], vr: 'DS' },
|
'00180080': { Value: [repetitionTime], vr: 'DS' },
|
||||||
@@ -124,10 +137,13 @@ function parseFile(filename: string): Promise<ElementType> {
|
|||||||
'00181250': { Value: [receiveCoilName], vr: 'SH' },
|
'00181250': { Value: [receiveCoilName], vr: 'SH' },
|
||||||
'00180023': { Value: [mrAcquisitionType], vr: 'CS' },
|
'00180023': { Value: [mrAcquisitionType], vr: 'CS' },
|
||||||
'00181312': { Value: [phaseEncodingDirection], vr: 'CS' },
|
'00181312': { Value: [phaseEncodingDirection], vr: 'CS' },
|
||||||
|
'00180083': { Value: [numOfAverages], vr: 'DS' },
|
||||||
'00180091': { Value: [echoTrainLength], vr: 'IS' },
|
'00180091': { Value: [echoTrainLength], vr: 'IS' },
|
||||||
'00181314': { Value: [flipAngle], vr: 'DS' },
|
'00181314': { Value: [flipAngle], vr: 'DS' },
|
||||||
'00180095': { Value: [pixelBandwidth], vr: 'DS' },
|
'00180095': { Value: [pixelBandwidth], vr: 'DS' },
|
||||||
'00080032': { Value: [acquisitionTime], vr: 'TM' },
|
'00080032': { Value: [acquisitionTime], vr: 'TM' },
|
||||||
|
'00189073': { Value: [acquistionDurationTotal], vr: 'DS' },
|
||||||
|
'00189220': { Value: [acquistionDurationPerFrame], vr: 'FD' },
|
||||||
'00181316': { Value: [parallelAcquisitionTechnique], vr: 'CS' },
|
'00181316': { Value: [parallelAcquisitionTechnique], vr: 'CS' },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user