From 6633aa5680f936c539ac4ac7e1f489da03319217 Mon Sep 17 00:00:00 2001 From: appleb_m Date: Tue, 2 Dec 2025 13:31:18 +0100 Subject: [PATCH] DAQ: ingest script for screening - WIP --- daq/src/aaredaq/aaredb.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/daq/src/aaredaq/aaredb.py b/daq/src/aaredaq/aaredb.py index c507301e..2c397c49 100644 --- a/daq/src/aaredaq/aaredb.py +++ b/daq/src/aaredaq/aaredb.py @@ -33,7 +33,7 @@ from aaredaqlib.models import ( ) from aaredaqlib.beamline import MXBeamline -from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid, RasterPayloadModel, CenterOfMassModel +from aaredaqlib.raster_grid import RasterGridRequest, RasterPayloadModel, CenterOfMassModel, ScreeningPayloadModel from aaredaqlib.rotation_scan import RotationScanRequest from aaredaqlib.sample_geometry import SampleGeometryModel @@ -420,4 +420,32 @@ class AareWrapper: print(e) raise e + def ingest_screening(self, sample: Optional[SampleShortInfo], screening_result:ScanResult): + + if sample is None: + return + + payload = self.format_screening_payload(sample, screening_result=screening_result).model_dump() + + if payload is None: + return + + url = f"{self.__host}/protected_router/gridscan_runner/ingest" + headers = { + "accept": "application/json", + "X-Shared-Password": os.getenv("AAREDB_SHARED_PASSWORD") + } + response = requests.post(url, + auth=(os.getenv("AAREDB_USERNAME"), os.getenv("AAREDB_PASSWORD")), + headers=headers, data=json.dumps(payload), timeout=30, verify=False) + response.raise_for_status() + + print(f"Response status code: {response.status_code}") + + def format_screening_payload(self, sample: Optional[SampleShortInfo], screening_result:ScanResult): + return ScreeningPayloadModel( + sample_id=sample.db_id, + result=screening_result, + attach_image=True + )