* Instance metadata plus metadata provider overhaul. Fix consumption of wado-uri urls fallbacks + datatype agnosticism. WIP DICOMify things. fix various issues with naturalized variable naming migration. Remove metadata provider. Fix consumption of multiframe images and addition of CWIL metadata. Fix strange build issues. Fix CWIL style windowWidth to array from naturalized DICOM. Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs. Move color palette fetching down to the natuaralized JSON level. Remove unused StudyMetadataSummary Remove redundant dicom metadata dictionary. Working local + json routes. Fix SR read. Finished first round of testing + cleaned up debugging etc. * data => metadata for instance naturalizedJSON * Update dcmjs version * Correct github isssues. * Fix erroneously replaced files. * Danny's recommended changes. * Instance metadata plus metadata provider overhaul. Fix consumption of wado-uri urls fallbacks + datatype agnosticism. WIP DICOMify things. fix various issues with naturalized variable naming migration. Remove metadata provider. Fix consumption of multiframe images and addition of CWIL metadata. Fix strange build issues. Fix CWIL style windowWidth to array from naturalized DICOM. Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs. Move color palette fetching down to the natuaralized JSON level. Remove unused StudyMetadataSummary Remove redundant dicom metadata dictionary. Working local + json routes. Fix SR read. Finished first round of testing + cleaned up debugging etc. * data => metadata for instance naturalizedJSON * Update dcmjs version * Correct github isssues. * Fix erroneously replaced files. * Danny's recommended changes. * Update JSON CI * Update casing of import. * Fix jump for SR. * Fix unit tests for measurements service * Fix json CI test. * fix: update yarn lock * Fix local non-encapsulated pdf view * CI updated to new sucess message. Co-authored-by: Danny <danny.ri.brown@gmail.com>
77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
import { studyMetadataManager } from '../utils';
|
|
|
|
import OHIFError from './OHIFError';
|
|
import { StudyMetadata } from './metadata/StudyMetadata';
|
|
import { StudyMetadataSource } from './StudyMetadataSource.js';
|
|
import { retrieveStudyMetadata } from '../studies/retrieveStudyMetadata.js';
|
|
|
|
export class OHIFStudyMetadataSource extends StudyMetadataSource {
|
|
/**
|
|
* Get study metadata for a study with given study InstanceUID
|
|
* @param server
|
|
* @param {String} studyInstanceUID Study InstanceUID
|
|
* @return {Promise} A Promise object
|
|
*/
|
|
getByInstanceUID(server, studyInstanceUID) {
|
|
return retrieveStudyMetadata(server, studyInstanceUID);
|
|
}
|
|
|
|
/**
|
|
* Load study info (OHIF.viewer.Studies) and study metadata (OHIF.viewer.StudyMetadataList) for a given study.
|
|
* @param {StudyMetadata} study StudyMetadata object.
|
|
*/
|
|
loadStudy(study) {
|
|
if (!(study instanceof StudyMetadata)) {
|
|
throw new OHIFError(
|
|
'OHIFStudyMetadataSource::loadStudy study is not an instance of StudyMetadata'
|
|
);
|
|
}
|
|
|
|
return new Promise((resolve, reject) => {
|
|
const studyInstanceUID = study.getStudyInstanceUID();
|
|
|
|
if (study instanceof StudyMetadata) {
|
|
const alreadyLoaded = OHIF.viewer.Studies.findBy({
|
|
StudyInstanceUID: studyInstanceUID,
|
|
});
|
|
|
|
if (!alreadyLoaded) {
|
|
OHIFStudyMetadataSource._updateStudyCollections(study);
|
|
}
|
|
|
|
resolve(study);
|
|
return;
|
|
}
|
|
|
|
this.getByInstanceUID(studyInstanceUID)
|
|
.then(studyInfo => {
|
|
// Create study metadata object
|
|
const studyMetadata = new StudyMetadata(
|
|
studyInfo,
|
|
studyInfo.StudyInstanceUID
|
|
);
|
|
|
|
// Get Study display sets
|
|
const displaySets = studyMetadata.createDisplaySets();
|
|
|
|
// Set studyMetadata display sets
|
|
studyMetadata.setDisplaySets(displaySets);
|
|
|
|
OHIFStudyMetadataSource._updateStudyCollections(studyMetadata);
|
|
resolve(studyMetadata);
|
|
})
|
|
.catch(reject);
|
|
});
|
|
}
|
|
|
|
// Static methods
|
|
static _updateStudyCollections(studyMetadata) {
|
|
const studyInfo = studyMetadata.getData();
|
|
|
|
// Set some studyInfo properties
|
|
studyInfo.selected = true;
|
|
studyInfo.displaySets = studyMetadata.getDisplaySets();
|
|
studyMetadataManager.add(studyMetadata);
|
|
}
|
|
}
|