Improve study browser

This commit is contained in:
Erik Ziegler authored and James A. Petts committed 2020-05-15 14:06:23 +02:00
1 parent 6044190ab1
commit ec2df02e83
8 files changed
+195 -105

No files matched your search

+24 -1
View File
@@ -47,7 +47,9 @@ const _model = {
};
function _getStudy(StudyInstanceUID) {
return _model.studies.find(StudyInstanceUID);
return _model.studies.find(
aStudy => aStudy.StudyInstanceUID === StudyInstanceUID
);
}
function _getSeries(StudyInstanceUID, SeriesInstanceUID) {
@@ -90,6 +92,27 @@ const dicomMetadataStore = {
study.addSeries(instances);
},
addStudy(study) {
const { StudyInstanceUID } = study;
let existingStudy = _model.studies.find(
study => study.StudyInstanceUID === StudyInstanceUID
);
if (!existingStudy) {
const newStudy = new StudyMetadata(StudyInstanceUID);
newStudy.PatientID = study.PatientID;
newStudy.PatientName = study.PatientName;
newStudy.StudyDate = study.StudyDate;
newStudy.ModalitiesInStudy = study.ModalitiesInStudy;
newStudy.StudyDescription = study.StudyDescription;
newStudy.AccessionNumber = study.AccessionNumber;
newStudy.NumInstances = study.NumInstances; // todo: Correct naming?
_model.studies.push(newStudy);
}
},
getStudy: _getStudy,
getSeries: _getSeries,
getInstance: _getInstance,
@@ -22,7 +22,7 @@ const getTrackedSeries = displaySets => {
return trackedSeries;
};
const StudyBrowser = ({ tabs }) => {
const StudyBrowser = ({ tabs, onClickStudy, onClickThumbnail }) => {
const [tabActive, setTabActive] = useState(getInitialActiveTab(tabs));
const [studyActive, setStudyActive] = useState(null);
@@ -54,10 +54,27 @@ const StudyBrowser = ({ tabs }) => {
isActive={isActive}
onClick={() => {
setStudyActive(isActive ? null : studyInstanceUid);
if (onClickStudy) {
onClickStudy(studyInstanceUid);
}
}}
/>
{isActive && thumbnails && (
<ThumbnailList thumbnails={thumbnails} />
{isActive && displaySets && (
<ThumbnailList
thumbnails={displaySets}
thumbnailActive={thumbnailActive}
onThumbnailClick={thumbnailId => {
setThumbnailActive(
thumbnailId === thumbnailActive ? null : thumbnailId
);
if (onClickThumbnail) {
// TODO: what is thumbnailId? Should pass display set instead
onClickThumbnail(thumbnailId);
}
}}
/>
)}
</React.Fragment>
);
@@ -103,6 +120,8 @@ const StudyBrowser = ({ tabs }) => {
};
StudyBrowser.propTypes = {
onClickStudy: PropTypes.func,
onClickThumbnail: PropTypes.func,
tabs: PropTypes.arrayOf(
PropTypes.shape({
name: PropTypes.string.isRequired,