Skip to content

Commit 0e3c640

Browse files
committed
Couple of fixes
1 parent 3ff6039 commit 0e3c640

File tree

2 files changed

+32
-22
lines changed

2 files changed

+32
-22
lines changed

src/murfey/server/api/__init__.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -570,18 +570,14 @@ def register_foil_hole(
570570
foil_hole_params: FoilHoleParameters,
571571
db=murfey_db,
572572
):
573-
# need to sort out foil hole update in ISPyB !!!
574573
try:
575-
gsid = (
576-
db.exec(
577-
select(GridSquare)
578-
.where(GridSquare.tag == foil_hole_params.tag)
579-
.where(GridSquare.session_id == session_id)
580-
.where(GridSquare.name == gs_name)
581-
)
582-
.one()
583-
.id
584-
)
574+
gs = db.exec(
575+
select(GridSquare)
576+
.where(GridSquare.tag == foil_hole_params.tag)
577+
.where(GridSquare.session_id == session_id)
578+
.where(GridSquare.name == gs_name)
579+
).one()
580+
gsid = gs.id
585581
except NoResultFound:
586582
log.debug(
587583
f"Foil hole {sanitise(str(foil_hole_params.name))} could not be registered as grid square {sanitise(str(gs_name))} was not found"
@@ -609,11 +605,13 @@ def register_foil_hole(
609605
foil_hole.thumbnail_size_y = foil_hole_params.thumbnail_size_y or jpeg_size[1]
610606
foil_hole.pixel_size = foil_hole_params.pixel_size
611607
if _transport_object:
612-
_transport_object.do_update_foil_hole(foil_hole.id, foil_hole_params)
608+
_transport_object.do_update_foil_hole(
609+
foil_hole.id, gs.thumbnail_size_x / gs.readout_area_x, foil_hole_params
610+
)
613611
except Exception:
614612
if _transport_object:
615613
fh_ispyb_response = _transport_object.do_insert_foil_hole(
616-
gsid.id, foil_hole_params
614+
gsid.id, gs.thumbnail_size_x / gs.readout_area_x, foil_hole_params
617615
)
618616
else:
619617
fh_ispyb_response = {"success": False, "return_value": None}

src/murfey/server/ispyb.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def do_insert_grid_square(
160160
/ grid_square_parameters.readout_area_x
161161
)
162162
)
163-
grid_square_parameters.angle *= (
163+
grid_square_parameters.pixel_size *= (
164164
grid_square_parameters.readout_area_x
165165
/ grid_square_parameters.thumbnail_size_x
166166
)
@@ -224,6 +224,7 @@ def do_update_grid_square(
224224
def do_insert_foil_hole(
225225
self,
226226
grid_square_id: int,
227+
scale_factor: float,
227228
foil_hole_parameters: FoilHoleParameters,
228229
):
229230
if (
@@ -233,11 +234,7 @@ def do_insert_foil_hole(
233234
and foil_hole_parameters.pixel_size is not None
234235
):
235236
foil_hole_parameters.diameter = int(
236-
foil_hole_parameters.diameter
237-
* (
238-
foil_hole_parameters.thumbnail_size_x
239-
/ foil_hole_parameters.readout_area_x
240-
)
237+
foil_hole_parameters.diameter * scale_factor
241238
)
242239
foil_hole_parameters.pixel_size *= (
243240
foil_hole_parameters.readout_area_x
@@ -269,7 +266,10 @@ def do_insert_foil_hole(
269266
return {"success": False, "return_value": None}
270267

271268
def do_update_foil_hole(
272-
self, foil_hole_id: int, foil_hole_parameters: FoilHoleParameters
269+
self,
270+
foil_hole_id: int,
271+
scale_factor: float,
272+
foil_hole_parameters: FoilHoleParameters,
273273
):
274274
try:
275275
with Session() as db:
@@ -279,10 +279,22 @@ def do_update_foil_hole(
279279
foil_hole.foilHoleImage = foil_hole_parameters.image
280280
foil_hole.pixelLocationX = foil_hole_parameters.x_location
281281
foil_hole.pixelLocationY = foil_hole_parameters.y_location
282-
foil_hole.diameter = foil_hole_parameters.diameter
282+
foil_hole.diameter = (
283+
foil_hole_parameters.diameter * scale_factor
284+
if foil_hole_parameters.diameter is not None
285+
else None
286+
)
283287
foil_hole.stageLocationX = foil_hole_parameters.x_stage_position
284288
foil_hole.stageLocationY = foil_hole_parameters.y_stage_position
285-
foil_hole.pixelSize = foil_hole_parameters.pixel_size
289+
if (
290+
foil_hole_parameters.readout_area_x is not None
291+
and foil_hole_parameters.thumbnail_size_x is not None
292+
and foil_hole_parameters.pixel_size is not None
293+
):
294+
foil_hole.pixelSize = foil_hole_parameters.pixel_size * (
295+
foil_hole_parameters.readout_area_x
296+
/ foil_hole_parameters.thumbnail_size_x
297+
)
286298
db.add(foil_hole)
287299
db.commit()
288300
return {"success": True, "return_value": foil_hole.foilHoleId}

0 commit comments

Comments
 (0)