From 617687e39a2b4661735df3131e910edd65ce7bf4 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Thu, 12 Mar 2026 11:11:23 +0000 Subject: [PATCH 1/2] add information to AcquisitionData to allow the microscope to be discovered --- src/murfey/server/api/instrument.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/murfey/server/api/instrument.py b/src/murfey/server/api/instrument.py index a7752f82..6f02fdc8 100644 --- a/src/murfey/server/api/instrument.py +++ b/src/murfey/server/api/instrument.py @@ -15,7 +15,7 @@ try: from smartem_backend.api_client import EntityConverter - from smartem_common.schemas import AcquisitionData + from smartem_common.schemas import AcquisitionData, MicroscopeData SMARTEM_ACTIVE = True except ImportError: @@ -160,8 +160,15 @@ async def setup_multigrid_watcher( if SMARTEM_ACTIVE and machine_config.smartem_api_url: log.info("registering an acquisition with smartem") try: + microscope_data = MicroscopeData(instrument_id=instrument_name) acquisition_data = EntityConverter.acquisition_to_request( - AcquisitionData(name=visit) + AcquisitionData( + name=visit, + id=visit, + instrument=microscope_data, + storage_path=str(secure_path(watcher_spec.source / visit)), + start_time=datetime.datetime.now(), + ) ) async with clientsession.post( f"{machine_config.smartem_api_url}/acquisitions", From b0939760b60ad77445900f99fdd3a168fb4e9bc3 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Thu, 12 Mar 2026 11:16:20 +0000 Subject: [PATCH 2/2] model dump needs to happen with mode json so that datatime object is mapped to something serialisable --- src/murfey/server/api/instrument.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/murfey/server/api/instrument.py b/src/murfey/server/api/instrument.py index 6f02fdc8..4fa8672c 100644 --- a/src/murfey/server/api/instrument.py +++ b/src/murfey/server/api/instrument.py @@ -172,7 +172,7 @@ async def setup_multigrid_watcher( ) async with clientsession.post( f"{machine_config.smartem_api_url}/acquisitions", - json=acquisition_data.model_dump(), + json=acquisition_data.model_dump(mode="json"), ) as response: acquisition_response_data = await response.json() acquisition_uuid = acquisition_response_data["uuid"]