|
11 | 11 | import sqlalchemy |
12 | 12 | from fastapi import APIRouter, Depends, Request |
13 | 13 | from fastapi.responses import FileResponse, HTMLResponse |
14 | | -from ispyb.sqlalchemy import Atlas |
15 | 14 | from ispyb.sqlalchemy import AutoProcProgram as ISPyBAutoProcProgram |
16 | 15 | from ispyb.sqlalchemy import ( |
17 | 16 | BLSample, |
|
78 | 77 | BLSubSampleParameters, |
79 | 78 | ClientInfo, |
80 | 79 | CurrentGainRef, |
81 | | - DCGroupParameters, |
82 | | - DCParameters, |
83 | 80 | FoilHoleParameters, |
84 | 81 | FractionationParameters, |
85 | 82 | GainReference, |
86 | 83 | GridSquareParameters, |
87 | 84 | MillingParameters, |
88 | 85 | PostInfo, |
89 | | - ProcessingJobParameters, |
90 | 86 | ProcessingParametersSPA, |
91 | 87 | ProcessingParametersTomo, |
92 | 88 | RegistrationMessage, |
@@ -1258,173 +1254,6 @@ def make_rsyncer_destination(session_id: int, destination: Dest, db=murfey_db): |
1258 | 1254 | return destination |
1259 | 1255 |
|
1260 | 1256 |
|
1261 | | -@router.post("/visits/{visit_name}/{session_id}/register_data_collection_group") |
1262 | | -def register_dc_group( |
1263 | | - visit_name, session_id: MurfeySessionID, dcg_params: DCGroupParameters, db=murfey_db |
1264 | | -): |
1265 | | - ispyb_proposal_code = visit_name[:2] |
1266 | | - ispyb_proposal_number = visit_name.split("-")[0][2:] |
1267 | | - ispyb_visit_number = visit_name.split("-")[-1] |
1268 | | - instrument_name = ( |
1269 | | - db.exec(select(Session).where(Session.id == session_id)).one().instrument_name |
1270 | | - ) |
1271 | | - log.info(f"Registering data collection group on microscope {instrument_name}") |
1272 | | - if dcg_murfey := db.exec( |
1273 | | - select(DataCollectionGroup) |
1274 | | - .where(DataCollectionGroup.session_id == session_id) |
1275 | | - .where(DataCollectionGroup.tag == dcg_params.tag) |
1276 | | - ).all(): |
1277 | | - dcg_murfey[0].atlas = dcg_params.atlas |
1278 | | - dcg_murfey[0].sample = dcg_params.sample |
1279 | | - dcg_murfey[0].atlas_pixel_size = dcg_params.atlas_pixel_size |
1280 | | - |
1281 | | - if _transport_object: |
1282 | | - if dcg_murfey[0].atlas_id is not None: |
1283 | | - _transport_object.send( |
1284 | | - _transport_object.feedback_queue, |
1285 | | - { |
1286 | | - "register": "atlas_update", |
1287 | | - "atlas_id": dcg_murfey[0].atlas_id, |
1288 | | - "atlas": dcg_params.atlas, |
1289 | | - "sample": dcg_params.sample, |
1290 | | - "atlas_pixel_size": dcg_params.atlas_pixel_size, |
1291 | | - }, |
1292 | | - ) |
1293 | | - else: |
1294 | | - atlas_id_response = _transport_object.do_insert_atlas( |
1295 | | - Atlas( |
1296 | | - dataCollectionGroupId=dcg_murfey[0].id, |
1297 | | - atlasImage=dcg_params.atlas, |
1298 | | - pixelSize=dcg_params.atlas_pixel_size, |
1299 | | - cassetteSlot=dcg_params.sample, |
1300 | | - ) |
1301 | | - ) |
1302 | | - dcg_murfey[0].atlas_id = atlas_id_response["return_value"] |
1303 | | - db.add(dcg_murfey[0]) |
1304 | | - db.commit() |
1305 | | - else: |
1306 | | - dcg_parameters = { |
1307 | | - "start_time": str(datetime.datetime.now()), |
1308 | | - "experiment_type": dcg_params.experiment_type, |
1309 | | - "experiment_type_id": dcg_params.experiment_type_id, |
1310 | | - "tag": dcg_params.tag, |
1311 | | - "session_id": session_id, |
1312 | | - "atlas": dcg_params.atlas, |
1313 | | - "sample": dcg_params.sample, |
1314 | | - "atlas_pixel_size": dcg_params.atlas_pixel_size, |
1315 | | - } |
1316 | | - |
1317 | | - if _transport_object: |
1318 | | - _transport_object.send( |
1319 | | - _transport_object.feedback_queue, {"register": "data_collection_group", **dcg_parameters, "microscope": instrument_name, "proposal_code": ispyb_proposal_code, "proposal_number": ispyb_proposal_number, "visit_number": ispyb_visit_number} # type: ignore |
1320 | | - ) |
1321 | | - return dcg_params |
1322 | | - |
1323 | | - |
1324 | | -@router.post("/visits/{visit_name}/{session_id}/start_data_collection") |
1325 | | -def start_dc( |
1326 | | - visit_name, session_id: MurfeySessionID, dc_params: DCParameters, db=murfey_db |
1327 | | -): |
1328 | | - ispyb_proposal_code = visit_name[:2] |
1329 | | - ispyb_proposal_number = visit_name.split("-")[0][2:] |
1330 | | - ispyb_visit_number = visit_name.split("-")[-1] |
1331 | | - instrument_name = ( |
1332 | | - db.exec(select(Session).where(Session.id == session_id)).one().instrument_name |
1333 | | - ) |
1334 | | - machine_config = get_machine_config(instrument_name=instrument_name)[ |
1335 | | - instrument_name |
1336 | | - ] |
1337 | | - log.info( |
1338 | | - f"Starting data collection on microscope {instrument_name!r} " |
1339 | | - f"with basepath {sanitise(str(machine_config.rsync_basepath))} and directory {sanitise(dc_params.image_directory)}" |
1340 | | - ) |
1341 | | - dc_parameters = { |
1342 | | - "visit": visit_name, |
1343 | | - "image_directory": str( |
1344 | | - machine_config.rsync_basepath / dc_params.image_directory |
1345 | | - ), |
1346 | | - "start_time": str(datetime.datetime.now()), |
1347 | | - "voltage": dc_params.voltage, |
1348 | | - "pixel_size": str(float(dc_params.pixel_size_on_image) * 1e9), |
1349 | | - "image_suffix": dc_params.file_extension, |
1350 | | - "experiment_type": dc_params.experiment_type, |
1351 | | - "image_size_x": dc_params.image_size_x, |
1352 | | - "image_size_y": dc_params.image_size_y, |
1353 | | - "acquisition_software": dc_params.acquisition_software, |
1354 | | - "tag": dc_params.tag, |
1355 | | - "source": dc_params.source, |
1356 | | - "magnification": dc_params.magnification, |
1357 | | - "total_exposed_dose": dc_params.total_exposed_dose, |
1358 | | - "c2aperture": dc_params.c2aperture, |
1359 | | - "exposure_time": dc_params.exposure_time, |
1360 | | - "slit_width": dc_params.slit_width, |
1361 | | - "phase_plate": dc_params.phase_plate, |
1362 | | - "session_id": session_id, |
1363 | | - } |
1364 | | - |
1365 | | - if _transport_object: |
1366 | | - _transport_object.send( |
1367 | | - _transport_object.feedback_queue, |
1368 | | - { |
1369 | | - "register": "data_collection", |
1370 | | - **dc_parameters, |
1371 | | - "microscope": instrument_name, |
1372 | | - "proposal_code": ispyb_proposal_code, |
1373 | | - "proposal_number": ispyb_proposal_number, |
1374 | | - "visit_number": ispyb_visit_number, |
1375 | | - }, |
1376 | | - ) |
1377 | | - if dc_params.exposure_time: |
1378 | | - prom.exposure_time.set(dc_params.exposure_time) |
1379 | | - return dc_params |
1380 | | - |
1381 | | - |
1382 | | -@router.post("/visits/{visit_name}/{session_id}/register_processing_job") |
1383 | | -def register_proc( |
1384 | | - visit_name: str, |
1385 | | - session_id: MurfeySessionID, |
1386 | | - proc_params: ProcessingJobParameters, |
1387 | | - db=murfey_db, |
1388 | | -): |
1389 | | - proc_parameters: dict = { |
1390 | | - "session_id": session_id, |
1391 | | - "experiment_type": proc_params.experiment_type, |
1392 | | - "recipe": proc_params.recipe, |
1393 | | - "source": proc_params.source, |
1394 | | - "tag": proc_params.tag, |
1395 | | - "job_parameters": { |
1396 | | - k: v for k, v in proc_params.parameters.items() if v not in (None, "None") |
1397 | | - }, |
1398 | | - } |
1399 | | - |
1400 | | - session_processing_parameters = db.exec( |
1401 | | - select(SessionProcessingParameters).where( |
1402 | | - SessionProcessingParameters.session_id == session_id |
1403 | | - ) |
1404 | | - ).all() |
1405 | | - |
1406 | | - if session_processing_parameters: |
1407 | | - job_parameters: dict = proc_parameters["job_parameters"] |
1408 | | - job_parameters.update( |
1409 | | - { |
1410 | | - "gain_ref": session_processing_parameters[0].gain_ref, |
1411 | | - "dose_per_frame": session_processing_parameters[0].dose_per_frame, |
1412 | | - "eer_fractionation_file": session_processing_parameters[ |
1413 | | - 0 |
1414 | | - ].eer_fractionation_file, |
1415 | | - "symmetry": session_processing_parameters[0].symmetry, |
1416 | | - } |
1417 | | - ) |
1418 | | - proc_parameters["job_parameters"] = job_parameters |
1419 | | - |
1420 | | - if _transport_object: |
1421 | | - _transport_object.send( |
1422 | | - _transport_object.feedback_queue, |
1423 | | - {"register": "processing_job", **proc_parameters}, |
1424 | | - ) |
1425 | | - return proc_params |
1426 | | - |
1427 | | - |
1428 | 1257 | @router.post("/sessions/{session_id}/process_gain") |
1429 | 1258 | async def process_gain( |
1430 | 1259 | session_id: MurfeySessionID, gain_reference_params: GainReference, db=murfey_db |
|
0 commit comments