From bb681681cec609a23fc602778d9c4ebb6cd88cd0 Mon Sep 17 00:00:00 2001 From: Dan Hatton Date: Fri, 27 Mar 2026 16:29:29 +0000 Subject: [PATCH 1/3] perform basic smartem atlas registration for epu acquisition --- src/murfey/client/contexts/atlas.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/murfey/client/contexts/atlas.py b/src/murfey/client/contexts/atlas.py index 12870b17..d6441bf2 100644 --- a/src/murfey/client/contexts/atlas.py +++ b/src/murfey/client/contexts/atlas.py @@ -91,6 +91,17 @@ def post_transfer_epu( session_id=environment.murfey_session, data={"path": str(transferred_atlas_name).replace("//", "/")}, ) + capture_post( + base_url=str(environment.url.geturl()), + router_name="session_control.spa_router", + function_name="register_atlas", + token=self._token, + session_id=environment.murfey_session, + data={ + "name": transferred_file.stem, + "acquisition_uuid": environment.acquisition_uuid, + }, + ) logger.info( f"Submitted request to create JPG image of atlas {str(transferred_atlas_name)!r}" ) From 156b8229c6fd68586af2b274172e3472a4bb097b Mon Sep 17 00:00:00 2001 From: Dan Hatton Date: Mon, 30 Mar 2026 14:44:26 +0100 Subject: [PATCH 2/3] rather than register a smartem atlas when the atlas is seen push this to the data collection group registration where a smartem grid will also be registered this commit is just the client side --- src/murfey/client/contexts/atlas.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/murfey/client/contexts/atlas.py b/src/murfey/client/contexts/atlas.py index d6441bf2..12870b17 100644 --- a/src/murfey/client/contexts/atlas.py +++ b/src/murfey/client/contexts/atlas.py @@ -91,17 +91,6 @@ def post_transfer_epu( session_id=environment.murfey_session, data={"path": str(transferred_atlas_name).replace("//", "/")}, ) - capture_post( - base_url=str(environment.url.geturl()), - router_name="session_control.spa_router", - function_name="register_atlas", - token=self._token, - session_id=environment.murfey_session, - data={ - "name": transferred_file.stem, - "acquisition_uuid": environment.acquisition_uuid, - }, - ) logger.info( f"Submitted request to create JPG image of atlas {str(transferred_atlas_name)!r}" ) From c9aa896b6cd651f25babcc0ce08d646a56ac9f54 Mon Sep 17 00:00:00 2001 From: Dan Hatton Date: Tue, 7 Apr 2026 11:22:40 +0100 Subject: [PATCH 3/3] minor fixes for smartem integration --- src/murfey/client/contexts/atlas.py | 9 ++++++++- src/murfey/client/contexts/spa_metadata.py | 1 + src/murfey/server/api/session_control.py | 23 +++++++++++++++------- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/murfey/client/contexts/atlas.py b/src/murfey/client/contexts/atlas.py index 12870b17..6269a350 100644 --- a/src/murfey/client/contexts/atlas.py +++ b/src/murfey/client/contexts/atlas.py @@ -60,7 +60,14 @@ def post_transfer_serialem( data={ "name": transferred_file.stem, "acquisition_uuid": environment.acquisition_uuid, - "storage_folder": str(source), + "storage_folder": str( + _atlas_destination( + environment, + source, + Path(self._machine_config.get("rsync_basepath", "")), + ) + / "atlas" + ), }, ) diff --git a/src/murfey/client/contexts/spa_metadata.py b/src/murfey/client/contexts/spa_metadata.py index dbe33a80..34a58c92 100644 --- a/src/murfey/client/contexts/spa_metadata.py +++ b/src/murfey/client/contexts/spa_metadata.py @@ -164,6 +164,7 @@ def post_transfer( "name": f"{environment.visit}-sample-{environment.samples[images_disc].sample}", "acquisition_uuid": environment.acquisition_uuid, "register_grid": True, + "tag": dcg_tag, }, ) diff --git a/src/murfey/server/api/session_control.py b/src/murfey/server/api/session_control.py index a4bcb188..abe4281c 100644 --- a/src/murfey/server/api/session_control.py +++ b/src/murfey/server/api/session_control.py @@ -362,6 +362,7 @@ class AtlasRegistration(BaseModel): acquisition_uuid: str storage_folder: str = "" register_grid: bool = False + tag: str = "" @spa_router.post("/sessions/{session_id}/register_atlas") @@ -379,14 +380,22 @@ def register_atlas( smartem_client = SmartEMAPIClient( base_url=machine_config.smartem_api_url, logger=logger ) - possible_grids = smartem_client.get_acquisition_grids( - atlas_registration_data.acquisition_uuid - ) grid_uuid = None - for grid in possible_grids: - if grid.name == atlas_registration_data.name.replace("_atlas", ""): - grid_uuid = grid.uuid - break + if atlas_registration_data.tag: + dcg = murfey_db.exec( + select(DataCollectionGroup) + .where(DataCollectionGroup.session_id == session_id) + .where(DataCollectionGroup.tag == atlas_registration_data.tag) + ).one_or_none() + grid_uuid = dcg.smartem_grid_uuid + else: + possible_grids = smartem_client.get_acquisition_grids( + atlas_registration_data.acquisition_uuid + ) + for grid in possible_grids: + if grid.name == atlas_registration_data.name.replace("_atlas", ""): + grid_uuid = grid.uuid + break if grid_uuid is not None: atlas_data = AtlasData( id=atlas_registration_data.name,