support MRI custom overlay data for OHIF through fetchMeta because it couldn't retrieved from C-FIND / FINDSCU
This commit is contained in:
@@ -51,15 +51,16 @@ module.exports = function (server: FastifyInstance, opts: unknown, done: () => v
|
||||
const hasStudyDate = query.StudyDate !== undefined;
|
||||
|
||||
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().format('YYYYMMDD');
|
||||
const endDate = moment().format('YYYYMMDD');
|
||||
query.StudyDate = `${startDate}-${endDate}`;
|
||||
|
||||
|
||||
// Add time range filter (entire day)
|
||||
const startTime = '000000';
|
||||
const endTime = '235959';
|
||||
query['00080030'] = `${startTime}-${endTime}`; // StudyTime (0008,0030)
|
||||
|
||||
|
||||
logger.info(`Adding default date range filter: ${query.StudyDate}`);
|
||||
logger.info(`Adding default time range filter: ${query['00080030']}`);
|
||||
}
|
||||
@@ -67,14 +68,14 @@ module.exports = function (server: FastifyInstance, opts: unknown, done: () => v
|
||||
logger.info(`Querying studies with filters: ${JSON.stringify(query)}`);
|
||||
|
||||
const json = deepmerge.all(await doFind(QUERY_LEVEL.STUDY, query), options);
|
||||
|
||||
|
||||
// Karena by default hasilnya urut StudyTime (ascending),
|
||||
// Maka, jika butuh latest first (descending), maka dibalik urutannya
|
||||
if (Array.isArray(json) && json.length > 0) {
|
||||
logger.info(`Reversing order of ${json.length} studies to show latest first`);
|
||||
json.reverse();
|
||||
}
|
||||
|
||||
|
||||
return reply.send(json);
|
||||
} catch (error) {
|
||||
logger.error(error);
|
||||
@@ -410,6 +411,25 @@ module.exports = function (server: FastifyInstance, opts: unknown, done: () => v
|
||||
}
|
||||
});
|
||||
|
||||
server.get<{
|
||||
Params: IParamsImage;
|
||||
Querystring: QueryParams;
|
||||
}>('/rs/studies/:studyInstanceUid/series/:seriesInstanceUid/instances/:sopInstanceUid/metadata', async (req, reply) => {
|
||||
const { studyInstanceUid, seriesInstanceUid, sopInstanceUid } = req.params;
|
||||
const { query } = req;
|
||||
query.StudyInstanceUID = studyInstanceUid;
|
||||
query.SeriesInstanceUID = seriesInstanceUid;
|
||||
query.SOPInstanceUID = sopInstanceUid;
|
||||
|
||||
try {
|
||||
const rsp = await fetchMeta(query, studyInstanceUid, seriesInstanceUid);
|
||||
return reply.send(rsp);
|
||||
} catch (error) {
|
||||
logger.error(error);
|
||||
return reply.send(500);
|
||||
}
|
||||
});
|
||||
|
||||
done();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user