2 Commits

Author SHA1 Message Date
AlfandiMario
ac162cd2a3 startDate h-7 2026-08-20 15:52:12 +07:00
AlfandiMario
bfb55055a2 additional field untuk overlay MRI OHIF 2026-08-20 15:52:12 +07:00
3 changed files with 6 additions and 18 deletions

View File

@@ -2,7 +2,7 @@ version: '3'
services: services:
dicomweb-proxy: dicomweb-proxy:
image: dicomweb-proxy:2.0 image: dicomweb-proxy:3.0.1
container_name: dicomweb-proxy container_name: dicomweb-proxy
ports: ports:
- "5000:5000" - "5000:5000"

View File

@@ -65,20 +65,10 @@ function parseFile(filename: string): Promise<ElementType> {
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 fovDimensionElement = dataset.elements.x00181149;
const fovDimension = fovDimensionElement const fovDimension = fovDimensionElement ? [dataset.uint16('x00181149', 0), dataset.uint16('x00181149', 1)] : null;
? [
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
? [ ? [dataset.uint16('x00181310', 0), dataset.uint16('x00181310', 1), dataset.uint16('x00181310', 2), dataset.uint16('x00181310', 3)]
dataset.uint16('x00181310', 0),
dataset.uint16('x00181310', 1),
dataset.uint16('x00181310', 2),
dataset.uint16('x00181310', 3),
]
: null; : null;
const scanningSequence = dataset.string('x00180020'); const scanningSequence = dataset.string('x00180020');
const repetitionTime = dataset.string('x00180080'); const repetitionTime = dataset.string('x00180080');
@@ -94,7 +84,7 @@ function parseFile(filename: string): Promise<ElementType> {
const acquisitionTime = dataset.string('x00080032'); const acquisitionTime = dataset.string('x00080032');
const acquistionDurationTotal = dataset.string('x00189073'); // in seconds const acquistionDurationTotal = dataset.string('x00189073'); // in seconds
const acquistionDurationPerFrame = dataset.string('x00189220'); // in ms const acquistionDurationPerFrame = dataset.string('x00189220'); // in ms
const parallelAcquisitionTechnique = dataset.string('x00181316'); const parallelAcquisitionTechnique = dataset.string('x00189078');
// append to all results // append to all results
const result: ElementType = { const result: ElementType = {
@@ -144,7 +134,7 @@ function parseFile(filename: string): Promise<ElementType> {
'00080032': { Value: [acquisitionTime], vr: 'TM' }, '00080032': { Value: [acquisitionTime], vr: 'TM' },
'00189073': { Value: [acquistionDurationTotal], vr: 'DS' }, '00189073': { Value: [acquistionDurationTotal], vr: 'DS' },
'00189220': { Value: [acquistionDurationPerFrame], vr: 'FD' }, '00189220': { Value: [acquistionDurationPerFrame], vr: 'FD' },
'00181316': { Value: [parallelAcquisitionTechnique], vr: 'CS' }, '00189078': { Value: [parallelAcquisitionTechnique], vr: 'CS' },
}; };
resolve(result); resolve(result);
@@ -163,7 +153,6 @@ export function parseMeta(json: object, studyInstanceUID: string, seriesInstance
const sopInstanceUid = json[key]['00080018'].Value[0]; const sopInstanceUid = json[key]['00080018'].Value[0];
const pathname = path.join(storagePath, studyInstanceUID, sopInstanceUid); const pathname = path.join(storagePath, studyInstanceUID, sopInstanceUid);
parsing.push(parseFile(pathname)); parsing.push(parseFile(pathname));
} }
return Promise.all(parsing); return Promise.all(parsing);
} }

View File

@@ -51,8 +51,7 @@ module.exports = function (server: FastifyInstance, opts: unknown, done: () => v
const hasStudyDate = query.StudyDate !== undefined; const hasStudyDate = query.StudyDate !== undefined;
if (!hasMedicalRecord && !hasAccessionNumber && !hasPatientName && !hasStudyInstanceUID && !hasStudyDate) { if (!hasMedicalRecord && !hasAccessionNumber && !hasPatientName && !hasStudyInstanceUID && !hasStudyDate) {
// TODO: buat startDate tgl H-1 karena terkadang kena Bug beda timezone +-7 di file DICOM nya const startDate = moment().subtract(7, 'days').format('YYYYMMDD');
const startDate = moment().format('YYYYMMDD');
const endDate = moment().format('YYYYMMDD'); const endDate = moment().format('YYYYMMDD');
query.StudyDate = `${startDate}-${endDate}`; query.StudyDate = `${startDate}-${endDate}`;