Skip to content

Commit c6f7275

Browse files
committed
add grid square registration in smartem
1 parent 3c6f29d commit c6f7275

4 files changed

Lines changed: 34 additions & 2 deletions

File tree

src/murfey/client/contexts/spa.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ def _position_analysis(
343343
"width": gs_pix_position[4],
344344
"height": gs_pix_position[5],
345345
"angle": gs_pix_position[6],
346+
"acquisition_uuid": environment.acquisition_uuid,
346347
},
347348
)
348349
foil_hole = foil_hole_from_file(transferred_file)

src/murfey/client/contexts/spa_metadata.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def post_transfer(
149149
"width": pos_data[4],
150150
"height": pos_data[5],
151151
"angle": pos_data[6],
152+
"acquisition_uuid": environment.acquisition_uuid,
152153
},
153154
)
154155

@@ -223,6 +224,7 @@ def post_transfer(
223224
"thumbnail_size_y": gs_info.thumbnail_size_y,
224225
"pixel_size": gs_info.pixel_size,
225226
"image": str(image_path),
227+
"acquisition_uuid": environment.acquisition_uuid,
226228
},
227229
)
228230

src/murfey/server/api/session_control.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
try:
1414
from smartem_backend.api_client import SmartEMAPIClient
15-
from smartem_common.schemas import AtlasData
15+
from smartem_common.schemas import AtlasData, GridSquareData
1616

1717
SMARTEM_ACTIVE = True
1818
except ImportError:
@@ -421,7 +421,34 @@ def register_grid_square(
421421
grid_square_params: GridSquareParameters,
422422
db=murfey_db,
423423
):
424-
return _register_grid_square(session_id, gsid, grid_square_params, db)
424+
_register_grid_square(session_id, gsid, grid_square_params, db)
425+
if SMARTEM_ACTIVE and grid_square_params.acquisition_uuid:
426+
session = db.exec(select(Session).where(Session.id == session_id)).one()
427+
machine_config = get_machine_config(session.instrument_name)[
428+
session.instrument_name
429+
]
430+
if machine_config.smartem_api_url:
431+
smartem_client = SmartEMAPIClient(
432+
base_url=machine_config.smartem_api_url, logger=logger
433+
)
434+
possible_grids = smartem_client.get_acquisition_grids(
435+
grid_square_params.acquisition_uuid
436+
)
437+
grid_uuid = None
438+
for grid in possible_grids:
439+
if grid.name == Path(grid_square_params.tag).name:
440+
grid_uuid = grid.uuid
441+
break
442+
if grid_uuid is not None:
443+
gridsquare_data = GridSquareData(
444+
gridsquare_id=str(gsid),
445+
grid_uuid=grid_uuid,
446+
center_x=grid_square_params.x_location_scaled,
447+
center_y=grid_square_params.y_location_scaled,
448+
size_width=grid_square_params.width_scaled,
449+
size_height=grid_square_params.height_scaled,
450+
)
451+
smartem_client.create_grid_gridsquare(gridsquare_data)
425452

426453

427454
@spa_router.post("/sessions/{session_id}/grid_square/{gs_name}/foil_hole")

src/murfey/util/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ class GridSquareParameters(BaseModel):
160160
# Collection mode
161161
collection_mode: Optional[str] = None
162162

163+
acquisition_uuid: Optional[str] = None
164+
163165

164166
class FoilHoleParameters(BaseModel):
165167
tag: str

0 commit comments

Comments
 (0)