From b4ba67b7b2ab5f7305246e34595d287f79f18a8b Mon Sep 17 00:00:00 2001 From: William Moore Date: Thu, 16 Nov 2023 13:53:27 +0000 Subject: [PATCH 1/3] Add support for ?show=fileset-123 --- omeroweb/webclient/show.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/omeroweb/webclient/show.py b/omeroweb/webclient/show.py index bf4d820481..a6123a94b7 100644 --- a/omeroweb/webclient/show.py +++ b/omeroweb/webclient/show.py @@ -71,6 +71,7 @@ class Show(object): "well", "tagset", "roi", + "fileset", ) # Regular expression which declares the format for a "path" used either @@ -270,6 +271,15 @@ def _load_first_selected(self, first_obj, attributes): first_selected = self._load_tag(attributes) elif first_obj == "well": first_selected = self._load_well(attributes) + elif first_obj == "fileset": + # Don't use getObjects() for fileset since it loads ALL file and images + params = omero.sys.ParametersI() + params.addId(attributes["id"]) + params.page(0, 1) + query = "select img from Image img where img.fileset.id=:id" + first_image = self.conn.getQueryService().findAllByQuery( + query, params, self.conn.SERVICE_OPTS)[0] + first_selected = self.conn.getObject("Image", first_image.id.val) else: # All other objects can be loaded by type and attributes. (first_selected,) = self.conn.getObjects(first_obj, attributes=attributes) @@ -308,6 +318,8 @@ def _load_first_selected(self, first_obj, attributes): if first_obj == "roi": first_obj = "image" first_selected = first_selected.getImage() + elif first_obj == "fileset": + first_obj = "image" # Tree hierarchy open to first selected object. self._initially_open = ["%s-%s" % (first_obj, first_selected.getId())] From 4def726bc9d854e05e185ae0705f805e887541bd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 13:56:40 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- omeroweb/webclient/show.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/omeroweb/webclient/show.py b/omeroweb/webclient/show.py index a6123a94b7..601bcab245 100644 --- a/omeroweb/webclient/show.py +++ b/omeroweb/webclient/show.py @@ -278,7 +278,8 @@ def _load_first_selected(self, first_obj, attributes): params.page(0, 1) query = "select img from Image img where img.fileset.id=:id" first_image = self.conn.getQueryService().findAllByQuery( - query, params, self.conn.SERVICE_OPTS)[0] + query, params, self.conn.SERVICE_OPTS + )[0] first_selected = self.conn.getObject("Image", first_image.id.val) else: # All other objects can be loaded by type and attributes. From f03849d15cb76a5bd2e4b856c0afa04d332fb2a7 Mon Sep 17 00:00:00 2001 From: William Moore Date: Tue, 12 Dec 2023 12:27:17 +0000 Subject: [PATCH 3/3] sort by ID to pick the first image from fileset --- omeroweb/webclient/show.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omeroweb/webclient/show.py b/omeroweb/webclient/show.py index 601bcab245..2929f1d703 100644 --- a/omeroweb/webclient/show.py +++ b/omeroweb/webclient/show.py @@ -276,7 +276,7 @@ def _load_first_selected(self, first_obj, attributes): params = omero.sys.ParametersI() params.addId(attributes["id"]) params.page(0, 1) - query = "select img from Image img where img.fileset.id=:id" + query = "select img from Image img where img.fileset.id=:id order by img.id" first_image = self.conn.getQueryService().findAllByQuery( query, params, self.conn.SERVICE_OPTS )[0]