Skip to content

Commit

Permalink
fix for DB that do not support ExtendedFind
Browse files Browse the repository at this point in the history
  • Loading branch information
amazy committed Nov 14, 2024
1 parent 5c42af7 commit 3467180
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
19 changes: 7 additions & 12 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
- implement pagination to fetch studies 100 -> 200 when we scroll to the end of the study-list
- implement pagination to fetch instances 100 -> 200 when we scroll to the end of the instance-list (displaying 2000 instances in one go sometimes takes 10 seconds !)


- add a "reset" button (on Windows, to reload the config after you have changed it without going to the Services -> Orthanc -> Restart)
- show ohif-vr and ohif-tmtv buttons only when relevant (analyse the content of the study)
- handle the EnableLabels "permission"

- use DatePicker in remote modality study list

- predefined filters in config file to display below Studies:
- "Today": {"StudyDate": "$today"}
Expand All @@ -12,16 +13,15 @@
UI improvements:
- Admin theme including responsive tables (including multiline): https://github.com/lekoala/admini
- tags: https://github.com/lekoala/bootstrap5-tags

- when opening the series view I would prefer to see an image and it’s labels over a list of instance numbers and paired SOPInstanceUIDs:
https://discourse.orthanc-server.org/t/beginner-questions-from-horos-user/5322

- modification:
- configuration to hide DICOM UID options and select the right one directly for a given setup.
- add a Series Description renamer (one dialog to edit SeriesNumber + SeriesDescription of a study)

- show attachments

- support dicom-web plugin (QIDO-RS UI)

- support neuro plugin (download nifti)

- TagsTree: allow click on "null" tags to open /instances/../content/group,element in new window
Expand Down Expand Up @@ -53,12 +53,7 @@ UI improvements:
}
- configure other viewers url (ex: radiant://?n=pstv&v=0020000D&v=%22StudyInstanceUID%22 or osirix or horos ...)

- make table sortable and faster search by maintaining a cache DB (SQLite in each Orthanc instance handled by the oe2 plugin)
- only for studies. with a few indexed tags (the ones from the UI table)
- plugin monitors /changes route to see changes from all orthancs (instead of reacting to change events)
- to monitor deleted studies, react to change event + call other oe2 plugin API ? (need to list all orthanc urls somewhere)
- from OHIF doc for their study list: When the Study List is opened, the application queries the PACS for 101 studies by default. If there are greater than 100 studies
returned, the default sort for the study list is dictated by the image archive that hosts these studies for the viewer and study list sorting will be disabled. If there are less than or equal to 100 studies returned, they will be sorted by study date (most recent to oldest) and study list sorting will be enabled. Whenever a query returns greater than 100 studies, use filters to narrow results below 100 studies to enable Study List sorting.
- make table sortable

- orthanc-share should generate QR code with publication links

Expand Down
15 changes: 10 additions & 5 deletions WebApplication/src/components/SideBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import UploadHandler from "./UploadHandler.vue"
import JobsList from "./JobsList.vue";
import LanguagePicker from "./LanguagePicker.vue";
import { mapState } from "vuex"
import { mapState, mapGetters } from "vuex"
import { orthancApiUrl, oe2ApiUrl } from "../globalConfigurations";
import api from "../orthancApi"
import SourceType from "../helpers/source-type";
Expand Down Expand Up @@ -37,6 +37,9 @@ export default {
studiesSourceType: state => state.studies.sourceType,
studiesRemoteSource: state => state.studies.remoteSource,
}),
...mapGetters([
'configuration/hasExtendedFind', // -> this['configuration/hasExtendedFind']
]),
customLogoUrl() {
if (this.hasCustomLogo && this.configuration.customLogoUrl) {
return this.customLogoUrl;
Expand Down Expand Up @@ -121,10 +124,12 @@ export default {
this.labelsStudyCount[label] = null;
}
}
if (this.uiOptions.EnableLabelsCount) {
for (const [k, v] of Object.entries(this.labelsStudyCount)) {
if (v == null) {
this.labelsStudyCount[k] = await api.getLabelStudyCount(k);
if (this['configuration/hasExtendedFind']) {
if (this.uiOptions.EnableLabelsCount) {
for (const [k, v] of Object.entries(this.labelsStudyCount)) {
if (v == null) {
this.labelsStudyCount[k] = await api.getLabelStudyCount(k);
}
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion WebApplication/src/components/StudyList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ export default {
}),
...mapGetters([
'studies/isFilterEmpty', // -> this['studies/isFilterEmpty']
'configuration/hasExtendedFind', // -> this['configuration/hasExtendedFind']
'configuration/hasExtendedChanges', // -> this['configuration/hasExtendedChanges']
]),
notShowingAllResults() {
Expand Down Expand Up @@ -648,7 +649,7 @@ export default {
await this.$store.dispatch('studies/clearStudies');
if (this.uiOptions.StudyListContentIfNoSearch == "empty") {
return;
} else if (this.uiOptions.StudyListContentIfNoSearch == "most-recents" && this['configuration/hasExtendedChanges']) {
} else if (this.uiOptions.StudyListContentIfNoSearch == "most-recents" && this['configuration/hasExtendedFind']) {
const studies = await api.getMostRecentStudies((this.filterLabels.length > 0 ? this.filterLabels[0] : null));
for (const study of studies) {
this.$store.dispatch('studies/addStudy', { studyId: study["ID"], study: study, reloadStats: false });
Expand Down

0 comments on commit 3467180

Please sign in to comment.