diff --git a/backend/app/data/data.py b/backend/app/data/data.py
index 616e261..ffdb068 100644
--- a/backend/app/data/data.py
+++ b/backend/app/data/data.py
@@ -407,9 +407,9 @@ beamtimes = [
),
Beamtime(
id=2,
- pgroups="p20002",
+ pgroups="p20003",
shift="afternoon",
- beamtime_name="p20001-test",
+ beamtime_name="p20003-test",
beamline="X06DA",
start_date=datetime.strptime("07.05.2025", "%d.%m.%Y").date(),
end_date=datetime.strptime("08.05.2025", "%d.%m.%Y").date(),
@@ -677,8 +677,15 @@ pucks = [
# Define samples
samples = []
sample_id_counter = 1
+# Assign a beamtime to each dewar
+dewar_to_beamtime = {
+ dewar.id: random.choice([1, 2]) for dewar in dewars # Or use actual beamtime ids
+}
for puck in pucks:
+ dewar_id = puck.dewar_id # Assuming puck has dewar_id
+ assigned_beamtime = dewar_to_beamtime[dewar_id]
+
positions_with_samples = random.randint(1, 16)
occupied_positions = random.sample(range(1, 17), positions_with_samples)
@@ -689,6 +696,7 @@ for puck in pucks:
sample_name=f"Sample{sample_id_counter:03}",
position=pos,
puck_id=puck.id,
+ beamtime_id=assigned_beamtime, # IMPORTANT: Use the dewar's beamtime
)
samples.append(sample)
sample_id_counter += 1
diff --git a/backend/app/models.py b/backend/app/models.py
index 7ebca2e..651708e 100644
--- a/backend/app/models.py
+++ b/backend/app/models.py
@@ -154,6 +154,10 @@ class Puck(Base):
dewar = relationship("Dewar", back_populates="pucks")
samples = relationship("Sample", back_populates="puck")
events = relationship("PuckEvent", back_populates="puck")
+ beamtime_id = Column(Integer, ForeignKey("beamtimes.id"), nullable=True)
+ beamtime = relationship(
+ "Beamtime", back_populates="pucks", foreign_keys=[beamtime_id]
+ )
class Sample(Base):
@@ -173,6 +177,8 @@ class Sample(Base):
puck = relationship("Puck", back_populates="samples")
events = relationship("SampleEvent", back_populates="sample", lazy="joined")
images = relationship("Image", back_populates="sample", lazy="joined")
+ beamtime_id = Column(Integer, ForeignKey("beamtimes.id"), nullable=True)
+ beamtime = relationship("Beamtime", back_populates="samples")
@property
def mount_count(self) -> int:
@@ -256,6 +262,8 @@ class Beamtime(Base):
local_contact = relationship("LocalContact")
dewars = relationship("Dewar", back_populates="beamtime")
+ pucks = relationship("Puck", back_populates="beamtime")
+ samples = relationship("Sample", back_populates="beamtime")
class Image(Base):
diff --git a/backend/app/routers/beamtime.py b/backend/app/routers/beamtime.py
index c077ea5..07d0eae 100644
--- a/backend/app/routers/beamtime.py
+++ b/backend/app/routers/beamtime.py
@@ -1,9 +1,14 @@
from fastapi import APIRouter, HTTPException, status, Depends
-from sqlalchemy.orm import Session
+from sqlalchemy.orm import Session, joinedload
from sqlalchemy import or_
from app.models import Beamtime as BeamtimeModel
-from app.schemas import Beamtime as BeamtimeSchema, BeamtimeCreate, loginData
+from app.schemas import (
+ Beamtime as BeamtimeSchema,
+ BeamtimeCreate,
+ loginData,
+ BeamtimeResponse,
+)
from app.dependencies import get_db
from app.routers.auth import get_current_user
@@ -60,7 +65,7 @@ async def create_beamtime(
@beamtime_router.get(
"/my-beamtimes",
- response_model=list[BeamtimeSchema],
+ response_model=list[BeamtimeResponse],
)
async def get_my_beamtimes(
db: Session = Depends(get_db),
@@ -68,5 +73,10 @@ async def get_my_beamtimes(
):
user_pgroups = current_user.pgroups
filters = [BeamtimeModel.pgroups.like(f"%{pgroup}%") for pgroup in user_pgroups]
- beamtimes = db.query(BeamtimeModel).filter(or_(*filters)).all()
+ beamtimes = (
+ db.query(BeamtimeModel)
+ .options(joinedload(BeamtimeModel.local_contact))
+ .filter(or_(*filters))
+ .all()
+ )
return beamtimes
diff --git a/backend/app/routers/sample.py b/backend/app/routers/sample.py
index f2c31b6..b76bcee 100644
--- a/backend/app/routers/sample.py
+++ b/backend/app/routers/sample.py
@@ -425,6 +425,7 @@ def create_result(payload: ResultCreate, db: Session = Depends(get_db)):
result_entry = ResultsModel(
sample_id=payload.sample_id,
+ status=payload.status,
run_id=payload.run_id,
result=payload.result.model_dump(), # Serialize entire result to JSON
)
@@ -435,6 +436,7 @@ def create_result(payload: ResultCreate, db: Session = Depends(get_db)):
return ResultResponse(
id=result_entry.id,
+ status=result_entry.status,
sample_id=result_entry.sample_id,
run_id=result_entry.run_id,
result=payload.result, # return original payload directly
diff --git a/backend/app/schemas.py b/backend/app/schemas.py
index cc5ec72..14a8ffd 100644
--- a/backend/app/schemas.py
+++ b/backend/app/schemas.py
@@ -534,6 +534,7 @@ class PuckCreate(BaseModel):
puck_type: str
puck_location_in_dewar: int
samples: List[SampleCreate] = []
+ beamtime_id: Optional[int] = None
class PuckUpdate(BaseModel):
@@ -541,6 +542,7 @@ class PuckUpdate(BaseModel):
puck_type: Optional[str] = None
puck_location_in_dewar: Optional[int] = None
dewar_id: Optional[int] = None
+ beamtime_id: Optional[int] = None
class Puck(BaseModel):
@@ -549,6 +551,7 @@ class Puck(BaseModel):
puck_type: str
puck_location_in_dewar: int
dewar_id: int
+ beamtime_id: Optional[int] = None
events: List[PuckEvent] = []
samples: List[Sample] = []
@@ -800,6 +803,24 @@ class BeamtimeCreate(BaseModel):
local_contact_id: Optional[int]
+class BeamtimeResponse(BaseModel):
+ id: int
+ pgroups: str
+ shift: str
+ beamtime_name: str
+ beamline: str
+ start_date: date
+ end_date: date
+ status: str
+ comments: Optional[str] = None
+ proposal_id: Optional[int]
+ local_contact_id: Optional[int]
+ local_contact: Optional[LocalContact]
+
+ class Config:
+ from_attributes = True
+
+
class ImageCreate(BaseModel):
pgroup: str
sample_id: int
diff --git a/backend/main.py b/backend/main.py
index 328c368..caf1b7d 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -168,8 +168,8 @@ async def lifespan(app: FastAPI):
load_slots_data(db)
else: # dev or test environments
print(f"{environment.capitalize()} environment: Regenerating database.")
- # Base.metadata.drop_all(bind=engine)
- # Base.metadata.create_all(bind=engine)
+ Base.metadata.drop_all(bind=engine)
+ Base.metadata.create_all(bind=engine)
# from sqlalchemy.engine import reflection
# from app.models import ExperimentParameters # adjust the import as needed
# inspector = reflection.Inspector.from_engine(engine)
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index bae4f15..447a599 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -12,6 +12,7 @@ import AddressManager from './pages/AddressManagerView';
import ContactsManager from './pages/ContactsManagerView';
import LoginView from './pages/LoginView';
import ProtectedRoute from './components/ProtectedRoute';
+import BeamtimeOverview from './components/BeamtimeOverview';
const App: React.FC = () => {
const [openAddressManager, setOpenAddressManager] = useState(false);
@@ -84,7 +85,12 @@ const App: React.FC = () => {
} />} />
} />} />
} />} />
- } />} />
+ } />} />
+ } />} />
+ } />}/>
+ {/* Optionally, add a 404 fallback route */}
+ Page not found} />
+
diff --git a/frontend/src/components/BeamtimeOverview.tsx b/frontend/src/components/BeamtimeOverview.tsx
new file mode 100644
index 0000000..b1032dc
--- /dev/null
+++ b/frontend/src/components/BeamtimeOverview.tsx
@@ -0,0 +1,138 @@
+import React, { useEffect, useState } from 'react';
+import { DataGridPremium, GridColDef } from '@mui/x-data-grid-premium';
+import { useNavigate } from 'react-router-dom'; // For navigation
+import { BeamtimesService } from '../../openapi';
+import { Chip, Typography } from '@mui/material';
+
+interface BeamtimeRecord {
+ id: number;
+ start_date: string;
+ end_date: string;
+ shift: string;
+ beamline: string;
+ local_contact: string;
+ pgroups: string;
+}
+
+interface BeamtimeOverviewProps {
+ activePgroup: string;
+}
+
+const BeamtimeOverview: React.FC = ({ activePgroup }) => {
+ const [rows, setRows] = useState([]);
+ const [isLoading, setIsLoading] = useState(false);
+
+ // For navigation
+ const navigate = useNavigate();
+
+ const renderPgroupChips = (pgroups: string, activePgroup: string) => {
+ // Safely handle pgroups as an array
+ const pgroupsArray = pgroups.split(",").map((pgroup: string) => pgroup.trim());
+
+ if (!pgroupsArray.length) {
+ return No associated pgroups;
+ }
+
+ return pgroupsArray.map((pgroup: string) => (
+
+ ));
+ };
+
+ // Fetch beamtime records from the backend
+ const fetchBeamtimeRecords = async () => {
+ try {
+ setIsLoading(true);
+ const records = await BeamtimesService.getMyBeamtimesProtectedBeamtimesMyBeamtimesGet(activePgroup);
+
+ const mappedRecords: BeamtimeRecord[] = records.map((record: any) => ({
+ id: record.id,
+ start_date: record.start_date || 'N/A',
+ end_date: record.end_date || 'N/A',
+ shift: record.shift || 'N/A',
+ beamline: record.beamline || 'N/A',
+ local_contact: `${record.local_contact.firstname || "N/A"} ${record.local_contact.lastname || "N/A"}`,
+ pgroups: record.pgroups || '',
+ }));
+
+ setRows(mappedRecords);
+ } catch (error) {
+ console.error('Failed to fetch beamtime records:', error);
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchBeamtimeRecords();
+ }, [activePgroup]);
+
+ // Define table columns, including the "View Results" button
+ const columns: GridColDef[] = [
+ { field: 'start_date', headerName: 'Start Date', flex: 1 },
+ { field: 'end_date', headerName: 'End Date', flex: 1 },
+ { field: 'shift', headerName: "Shift", flex: 1 },
+ { field: 'beamline', headerName: 'Beamline', flex: 1 },
+ { field: 'local_contact', headerName: 'Local Contact', flex: 1 },
+ {
+ field: 'pgroups',
+ headerName: 'Pgroups',
+ flex: 2, // Slightly wider column for chips
+ renderCell: (params) => renderPgroupChips(params.row.pgroups, activePgroup),
+ },
+ {
+ field: 'viewResults',
+ headerName: 'Actions',
+ flex: 1,
+ renderCell: (params) => (
+
+ ),
+ },
+ ];
+
+ // Navigate to the ResultsView page for the selected beamtime
+ const handleViewResults = (beamtimeId: number) => {
+ navigate(`/results/${beamtimeId}`); // Pass the beamtimeId in the URL
+ };
+
+ return (
+
+
Beamtime Overview
+
+
+ );
+};
+
+export default BeamtimeOverview;
\ No newline at end of file
diff --git a/frontend/src/pages/ResultsView.tsx b/frontend/src/pages/ResultsView.tsx
index 5e52b59..46e1929 100644
--- a/frontend/src/pages/ResultsView.tsx
+++ b/frontend/src/pages/ResultsView.tsx
@@ -1,24 +1,24 @@
-// components/ResultView.tsx
-
import React from 'react';
+import { useParams } from 'react-router-dom';
import SampleTracker from '../components/SampleTracker';
import ResultGrid from '../components/ResultGrid';
-interface ResultsViewProps {
- activePgroup: string;
-}
+interface ResultsViewProps {}
-const ResultsView: React.FC = ({activePgroup
-}) => {
+const ResultsView: React.FC = () => {
+ // Get the selected beamtime ID from the URL
+ const { beamtimeId } = useParams();
return (
Results Page
-
-
-
+ Results for Beamtime ID: {beamtimeId}
+ {/* Use the beamtimeId to filter or query specific results */}
+
+
+
);
};
-export default ResultsView;
\ No newline at end of file
+export default ResultsView;
diff --git a/testfunctions.ipynb b/testfunctions.ipynb
index 8595a84..cbd0651 100644
--- a/testfunctions.ipynb
+++ b/testfunctions.ipynb
@@ -876,8 +876,8 @@
{
"metadata": {
"ExecuteTime": {
- "end_time": "2025-05-02T13:49:50.890862Z",
- "start_time": "2025-05-02T13:49:50.841161Z"
+ "end_time": "2025-05-05T14:38:32.418132Z",
+ "start_time": "2025-05-05T14:38:32.370685Z"
}
},
"cell_type": "code",
@@ -894,7 +894,7 @@
"# Your actual sample and experiment IDs\n",
"sample_id = sample_id # Replace with valid IDs\n",
"status = \"successful\"\n",
- "run_id = 1 # Replace with valid run_id\n",
+ "run_id = 2 # Replace with valid run_id\n",
"\n",
"# Function to generate list of CurvePoint (resolution, value pairs)\n",
"def logarithmic_decay_curve(length, min_res=4.0, max_res=1.0, max_value=1.0, min_value=0.0, noise=0.005, decimals=3):\n",
@@ -917,6 +917,7 @@
"# Create random Results payload\n",
"results_data = Results(\n",
" pipeline=\"autoproc\",\n",
+ " status=status,\n",
" resolution=round(random.uniform(1.0, 4.0), 2),\n",
" unit_cell=f\"{random.uniform(20, 120):.2f}, {random.uniform(20, 120):.2f}, \"\n",
" f\"{random.uniform(20, 120):.2f}, {random.uniform(60, 120):.2f}, \"\n",
@@ -935,13 +936,13 @@
" comments=\"Random auto-generated test entry\"\n",
")\n",
"\n",
- "payload = ResultCreate(sample_id=sample_id, run_id=run_id, result=results_data)\n",
+ "payload = ResultCreate(sample_id=sample_id, run_id=run_id, result=results_data, status=status)\n",
"\n",
"# correct serialization, passing exact required dict structure\n",
"payload_dict = {\n",
" \"sample_id\": sample_id,\n",
- " \"status\": status,\n",
" \"run_id\": run_id,\n",
+ " \"status\": status,\n",
" \"result\": results_data.model_dump(),\n",
"}\n",
"\n",
@@ -968,7 +969,7 @@
"DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): localhost:8000\n",
"/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/urllib3/connectionpool.py:1103: InsecureRequestWarning: Unverified HTTPS request is being made to host 'localhost'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings\n",
" warnings.warn(\n",
- "DEBUG:urllib3.connectionpool:https://localhost:8000 \"POST /samples/processing-results HTTP/1.1\" 200 7192\n"
+ "DEBUG:urllib3.connectionpool:https://localhost:8000 \"POST /samples/processing-results HTTP/1.1\" 200 7213\n"
]
},
{
@@ -976,11 +977,11 @@
"output_type": "stream",
"text": [
"API call successful:\n",
- "ResultResponse(id=2, sample_id=204, run_id=6, result=Results(pipeline='autoproc', resolution=3.73, unit_cell='86.44, 99.53, 23.45, 111.04, 110.10, 115.31', spacegroup='P21212', rmerge=0.029, rmeas=0.052, isig=16.74, cc=[CurvePoint(resolution=3.991, value=1.0), CurvePoint(resolution=3.93, value=1.0), CurvePoint(resolution=3.926, value=0.995), CurvePoint(resolution=3.894, value=0.997), CurvePoint(resolution=3.774, value=1.0), CurvePoint(resolution=3.658, value=0.996), CurvePoint(resolution=3.656, value=1.0), CurvePoint(resolution=3.612, value=1.0), CurvePoint(resolution=3.612, value=1.0), CurvePoint(resolution=3.594, value=1.0), CurvePoint(resolution=3.59, value=1.0), CurvePoint(resolution=3.571, value=1.0), CurvePoint(resolution=3.57, value=0.995), CurvePoint(resolution=3.562, value=0.999), CurvePoint(resolution=3.495, value=0.999), CurvePoint(resolution=3.436, value=0.999), CurvePoint(resolution=3.389, value=1.0), CurvePoint(resolution=3.365, value=0.997), CurvePoint(resolution=3.291, value=0.999), CurvePoint(resolution=3.224, value=0.999), CurvePoint(resolution=3.215, value=0.999), CurvePoint(resolution=3.201, value=1.0), CurvePoint(resolution=3.188, value=0.999), CurvePoint(resolution=3.161, value=1.0), CurvePoint(resolution=3.121, value=0.996), CurvePoint(resolution=3.111, value=0.997), CurvePoint(resolution=3.016, value=1.0), CurvePoint(resolution=2.973, value=0.996), CurvePoint(resolution=2.969, value=0.998), CurvePoint(resolution=2.925, value=0.998), CurvePoint(resolution=2.925, value=0.998), CurvePoint(resolution=2.908, value=1.0), CurvePoint(resolution=2.896, value=0.998), CurvePoint(resolution=2.854, value=1.0), CurvePoint(resolution=2.843, value=1.0), CurvePoint(resolution=2.841, value=0.997), CurvePoint(resolution=2.84, value=0.999), CurvePoint(resolution=2.831, value=1.0), CurvePoint(resolution=2.777, value=1.0), CurvePoint(resolution=2.759, value=0.999), CurvePoint(resolution=2.757, value=1.0), CurvePoint(resolution=2.74, value=1.0), CurvePoint(resolution=2.723, value=1.0), CurvePoint(resolution=2.698, value=1.0), CurvePoint(resolution=2.689, value=0.998), CurvePoint(resolution=2.614, value=1.0), CurvePoint(resolution=2.569, value=0.997), CurvePoint(resolution=2.561, value=1.0), CurvePoint(resolution=2.547, value=1.0), CurvePoint(resolution=2.518, value=1.0), CurvePoint(resolution=2.506, value=0.996), CurvePoint(resolution=2.455, value=1.0), CurvePoint(resolution=2.446, value=0.996), CurvePoint(resolution=2.374, value=1.0), CurvePoint(resolution=2.365, value=0.999), CurvePoint(resolution=2.298, value=0.996), CurvePoint(resolution=2.287, value=1.0), CurvePoint(resolution=2.278, value=0.996), CurvePoint(resolution=2.278, value=1.0), CurvePoint(resolution=2.272, value=0.995), CurvePoint(resolution=2.211, value=1.0), CurvePoint(resolution=2.195, value=1.0), CurvePoint(resolution=2.165, value=1.0), CurvePoint(resolution=2.14, value=1.0), CurvePoint(resolution=2.108, value=1.0), CurvePoint(resolution=2.067, value=0.999), CurvePoint(resolution=2.021, value=0.996), CurvePoint(resolution=1.992, value=0.995), CurvePoint(resolution=1.947, value=0.995), CurvePoint(resolution=1.937, value=1.0), CurvePoint(resolution=1.904, value=0.995), CurvePoint(resolution=1.865, value=0.992), CurvePoint(resolution=1.8, value=0.992), CurvePoint(resolution=1.752, value=0.995), CurvePoint(resolution=1.751, value=0.989), CurvePoint(resolution=1.739, value=0.995), CurvePoint(resolution=1.716, value=0.993), CurvePoint(resolution=1.7, value=0.992), CurvePoint(resolution=1.659, value=0.988), CurvePoint(resolution=1.594, value=0.982), CurvePoint(resolution=1.586, value=0.984), CurvePoint(resolution=1.555, value=0.973), CurvePoint(resolution=1.555, value=0.979), CurvePoint(resolution=1.463, value=0.953), CurvePoint(resolution=1.442, value=0.943), CurvePoint(resolution=1.412, value=0.94), CurvePoint(resolution=1.407, value=0.935), CurvePoint(resolution=1.394, value=0.924), CurvePoint(resolution=1.377, value=0.923), CurvePoint(resolution=1.374, value=0.922), CurvePoint(resolution=1.358, value=0.905), CurvePoint(resolution=1.34, value=0.894), CurvePoint(resolution=1.319, value=0.879), CurvePoint(resolution=1.306, value=0.875), CurvePoint(resolution=1.257, value=0.817), CurvePoint(resolution=1.225, value=0.773), CurvePoint(resolution=1.141, value=0.608), CurvePoint(resolution=1.139, value=0.606), CurvePoint(resolution=1.059, value=0.322), CurvePoint(resolution=1.013, value=0.082)], cchalf=[CurvePoint(resolution=3.98, value=0.995), CurvePoint(resolution=3.98, value=1.0), CurvePoint(resolution=3.947, value=1.0), CurvePoint(resolution=3.837, value=1.0), CurvePoint(resolution=3.769, value=0.999), CurvePoint(resolution=3.757, value=1.0), CurvePoint(resolution=3.731, value=0.999), CurvePoint(resolution=3.723, value=1.0), CurvePoint(resolution=3.694, value=1.0), CurvePoint(resolution=3.685, value=0.995), CurvePoint(resolution=3.658, value=1.0), CurvePoint(resolution=3.643, value=1.0), CurvePoint(resolution=3.615, value=1.0), CurvePoint(resolution=3.522, value=0.999), CurvePoint(resolution=3.502, value=1.0), CurvePoint(resolution=3.491, value=0.998), CurvePoint(resolution=3.486, value=1.0), CurvePoint(resolution=3.474, value=1.0), CurvePoint(resolution=3.468, value=0.997), CurvePoint(resolution=3.464, value=1.0), CurvePoint(resolution=3.463, value=1.0), CurvePoint(resolution=3.43, value=1.0), CurvePoint(resolution=3.378, value=0.999), CurvePoint(resolution=3.297, value=0.998), CurvePoint(resolution=3.25, value=1.0), CurvePoint(resolution=3.244, value=1.0), CurvePoint(resolution=3.191, value=0.998), CurvePoint(resolution=3.188, value=0.998), CurvePoint(resolution=3.17, value=0.996), CurvePoint(resolution=3.158, value=0.995), CurvePoint(resolution=3.158, value=1.0), CurvePoint(resolution=3.145, value=0.996), CurvePoint(resolution=3.142, value=1.0), CurvePoint(resolution=3.122, value=0.996), CurvePoint(resolution=3.093, value=1.0), CurvePoint(resolution=3.089, value=0.995), CurvePoint(resolution=3.013, value=1.0), CurvePoint(resolution=2.975, value=1.0), CurvePoint(resolution=2.955, value=1.0), CurvePoint(resolution=2.813, value=0.999), CurvePoint(resolution=2.74, value=1.0), CurvePoint(resolution=2.723, value=0.997), CurvePoint(resolution=2.695, value=0.997), CurvePoint(resolution=2.692, value=0.995), CurvePoint(resolution=2.673, value=1.0), CurvePoint(resolution=2.645, value=0.997), CurvePoint(resolution=2.608, value=1.0), CurvePoint(resolution=2.582, value=1.0), CurvePoint(resolution=2.556, value=1.0), CurvePoint(resolution=2.457, value=1.0), CurvePoint(resolution=2.422, value=1.0), CurvePoint(resolution=2.408, value=0.998), CurvePoint(resolution=2.388, value=0.996), CurvePoint(resolution=2.377, value=0.996), CurvePoint(resolution=2.347, value=1.0), CurvePoint(resolution=2.325, value=0.998), CurvePoint(resolution=2.299, value=0.998), CurvePoint(resolution=2.275, value=0.998), CurvePoint(resolution=2.259, value=1.0), CurvePoint(resolution=2.242, value=0.995), CurvePoint(resolution=2.209, value=1.0), CurvePoint(resolution=2.186, value=1.0), CurvePoint(resolution=2.175, value=0.997), CurvePoint(resolution=2.165, value=0.999), CurvePoint(resolution=2.113, value=1.0), CurvePoint(resolution=2.041, value=1.0), CurvePoint(resolution=1.997, value=0.994), CurvePoint(resolution=1.993, value=1.0), CurvePoint(resolution=1.979, value=0.997), CurvePoint(resolution=1.972, value=0.995), CurvePoint(resolution=1.93, value=1.0), CurvePoint(resolution=1.884, value=1.0), CurvePoint(resolution=1.877, value=0.996), CurvePoint(resolution=1.869, value=0.998), CurvePoint(resolution=1.863, value=0.996), CurvePoint(resolution=1.861, value=1.0), CurvePoint(resolution=1.851, value=0.995), CurvePoint(resolution=1.825, value=0.997), CurvePoint(resolution=1.791, value=0.997), CurvePoint(resolution=1.757, value=0.995), CurvePoint(resolution=1.734, value=0.997), CurvePoint(resolution=1.675, value=0.987), CurvePoint(resolution=1.635, value=0.987), CurvePoint(resolution=1.606, value=0.979), CurvePoint(resolution=1.556, value=0.974), CurvePoint(resolution=1.53, value=0.972), CurvePoint(resolution=1.466, value=0.958), CurvePoint(resolution=1.443, value=0.945), CurvePoint(resolution=1.435, value=0.947), CurvePoint(resolution=1.409, value=0.936), CurvePoint(resolution=1.344, value=0.897), CurvePoint(resolution=1.305, value=0.873), CurvePoint(resolution=1.275, value=0.839), CurvePoint(resolution=1.194, value=0.729), CurvePoint(resolution=1.163, value=0.664), CurvePoint(resolution=1.149, value=0.625), CurvePoint(resolution=1.142, value=0.609), CurvePoint(resolution=1.116, value=0.54), CurvePoint(resolution=1.037, value=0.218), CurvePoint(resolution=1.027, value=0.164)], completeness=85.1, multiplicity=3.28, nobs=53636, total_refl=140858, unique_refl=24272, comments='Random auto-generated test entry'))\n"
+ "ResultResponse(id=5, status='successful', sample_id=277, run_id=2, result=Results(pipeline='autoproc', resolution=1.4, unit_cell='108.05, 108.47, 84.95, 78.67, 102.50, 78.68', spacegroup='P1', rmerge=0.033, rmeas=0.049, isig=3.77, cc=[CurvePoint(resolution=3.982, value=0.995), CurvePoint(resolution=3.944, value=0.998), CurvePoint(resolution=3.937, value=0.996), CurvePoint(resolution=3.87, value=0.999), CurvePoint(resolution=3.85, value=1.0), CurvePoint(resolution=3.841, value=1.0), CurvePoint(resolution=3.827, value=1.0), CurvePoint(resolution=3.775, value=1.0), CurvePoint(resolution=3.719, value=0.996), CurvePoint(resolution=3.718, value=0.998), CurvePoint(resolution=3.711, value=1.0), CurvePoint(resolution=3.688, value=0.998), CurvePoint(resolution=3.684, value=0.997), CurvePoint(resolution=3.679, value=0.998), CurvePoint(resolution=3.53, value=1.0), CurvePoint(resolution=3.518, value=0.999), CurvePoint(resolution=3.493, value=0.997), CurvePoint(resolution=3.456, value=1.0), CurvePoint(resolution=3.443, value=0.998), CurvePoint(resolution=3.416, value=1.0), CurvePoint(resolution=3.368, value=1.0), CurvePoint(resolution=3.334, value=1.0), CurvePoint(resolution=3.32, value=1.0), CurvePoint(resolution=3.287, value=1.0), CurvePoint(resolution=3.278, value=0.995), CurvePoint(resolution=3.26, value=0.999), CurvePoint(resolution=3.247, value=1.0), CurvePoint(resolution=3.225, value=0.995), CurvePoint(resolution=3.173, value=0.996), CurvePoint(resolution=3.17, value=0.998), CurvePoint(resolution=3.155, value=1.0), CurvePoint(resolution=3.019, value=1.0), CurvePoint(resolution=3.007, value=0.997), CurvePoint(resolution=3.005, value=1.0), CurvePoint(resolution=2.962, value=0.999), CurvePoint(resolution=2.954, value=1.0), CurvePoint(resolution=2.939, value=1.0), CurvePoint(resolution=2.935, value=1.0), CurvePoint(resolution=2.935, value=1.0), CurvePoint(resolution=2.93, value=1.0), CurvePoint(resolution=2.903, value=1.0), CurvePoint(resolution=2.889, value=0.997), CurvePoint(resolution=2.851, value=1.0), CurvePoint(resolution=2.721, value=1.0), CurvePoint(resolution=2.705, value=0.999), CurvePoint(resolution=2.671, value=0.997), CurvePoint(resolution=2.639, value=0.996), CurvePoint(resolution=2.536, value=1.0), CurvePoint(resolution=2.529, value=1.0), CurvePoint(resolution=2.509, value=1.0), CurvePoint(resolution=2.501, value=0.997), CurvePoint(resolution=2.485, value=0.998), CurvePoint(resolution=2.458, value=1.0), CurvePoint(resolution=2.454, value=1.0), CurvePoint(resolution=2.452, value=1.0), CurvePoint(resolution=2.438, value=0.998), CurvePoint(resolution=2.435, value=1.0), CurvePoint(resolution=2.402, value=1.0), CurvePoint(resolution=2.354, value=0.999), CurvePoint(resolution=2.345, value=1.0), CurvePoint(resolution=2.334, value=0.997), CurvePoint(resolution=2.331, value=1.0), CurvePoint(resolution=2.255, value=0.999), CurvePoint(resolution=2.229, value=1.0), CurvePoint(resolution=2.186, value=1.0), CurvePoint(resolution=2.128, value=1.0), CurvePoint(resolution=2.08, value=1.0), CurvePoint(resolution=2.004, value=0.999), CurvePoint(resolution=1.991, value=0.997), CurvePoint(resolution=1.981, value=0.997), CurvePoint(resolution=1.966, value=1.0), CurvePoint(resolution=1.951, value=0.996), CurvePoint(resolution=1.926, value=0.997), CurvePoint(resolution=1.915, value=0.996), CurvePoint(resolution=1.904, value=0.995), CurvePoint(resolution=1.889, value=0.994), CurvePoint(resolution=1.872, value=1.0), CurvePoint(resolution=1.825, value=0.995), CurvePoint(resolution=1.818, value=0.999), CurvePoint(resolution=1.811, value=0.991), CurvePoint(resolution=1.791, value=0.994), CurvePoint(resolution=1.722, value=0.992), CurvePoint(resolution=1.702, value=0.991), CurvePoint(resolution=1.696, value=0.993), CurvePoint(resolution=1.665, value=0.985), CurvePoint(resolution=1.648, value=0.987), CurvePoint(resolution=1.519, value=0.969), CurvePoint(resolution=1.467, value=0.954), CurvePoint(resolution=1.394, value=0.931), CurvePoint(resolution=1.365, value=0.914), CurvePoint(resolution=1.351, value=0.905), CurvePoint(resolution=1.338, value=0.895), CurvePoint(resolution=1.278, value=0.847), CurvePoint(resolution=1.233, value=0.79), CurvePoint(resolution=1.191, value=0.723), CurvePoint(resolution=1.187, value=0.715), CurvePoint(resolution=1.114, value=0.534), CurvePoint(resolution=1.107, value=0.514), CurvePoint(resolution=1.084, value=0.434), CurvePoint(resolution=1.038, value=0.229)], cchalf=[CurvePoint(resolution=3.994, value=0.999), CurvePoint(resolution=3.994, value=0.996), CurvePoint(resolution=3.986, value=1.0), CurvePoint(resolution=3.929, value=1.0), CurvePoint(resolution=3.926, value=1.0), CurvePoint(resolution=3.892, value=0.996), CurvePoint(resolution=3.797, value=1.0), CurvePoint(resolution=3.784, value=0.999), CurvePoint(resolution=3.7, value=0.998), CurvePoint(resolution=3.694, value=1.0), CurvePoint(resolution=3.66, value=0.998), CurvePoint(resolution=3.645, value=0.999), CurvePoint(resolution=3.601, value=1.0), CurvePoint(resolution=3.581, value=0.996), CurvePoint(resolution=3.555, value=1.0), CurvePoint(resolution=3.421, value=1.0), CurvePoint(resolution=3.421, value=1.0), CurvePoint(resolution=3.365, value=1.0), CurvePoint(resolution=3.339, value=0.999), CurvePoint(resolution=3.271, value=0.999), CurvePoint(resolution=3.261, value=1.0), CurvePoint(resolution=3.252, value=0.996), CurvePoint(resolution=3.22, value=0.995), CurvePoint(resolution=3.205, value=0.996), CurvePoint(resolution=3.179, value=0.999), CurvePoint(resolution=3.116, value=0.996), CurvePoint(resolution=3.073, value=0.998), CurvePoint(resolution=3.012, value=0.999), CurvePoint(resolution=2.999, value=0.999), CurvePoint(resolution=2.985, value=1.0), CurvePoint(resolution=2.98, value=1.0), CurvePoint(resolution=2.976, value=1.0), CurvePoint(resolution=2.927, value=0.996), CurvePoint(resolution=2.911, value=0.996), CurvePoint(resolution=2.855, value=1.0), CurvePoint(resolution=2.831, value=1.0), CurvePoint(resolution=2.827, value=1.0), CurvePoint(resolution=2.785, value=0.996), CurvePoint(resolution=2.778, value=0.999), CurvePoint(resolution=2.753, value=0.998), CurvePoint(resolution=2.716, value=1.0), CurvePoint(resolution=2.691, value=1.0), CurvePoint(resolution=2.677, value=0.995), CurvePoint(resolution=2.659, value=0.998), CurvePoint(resolution=2.646, value=1.0), CurvePoint(resolution=2.626, value=1.0), CurvePoint(resolution=2.532, value=0.996), CurvePoint(resolution=2.508, value=1.0), CurvePoint(resolution=2.507, value=0.999), CurvePoint(resolution=2.446, value=0.997), CurvePoint(resolution=2.439, value=0.997), CurvePoint(resolution=2.409, value=1.0), CurvePoint(resolution=2.404, value=0.995), CurvePoint(resolution=2.346, value=1.0), CurvePoint(resolution=2.332, value=1.0), CurvePoint(resolution=2.328, value=0.996), CurvePoint(resolution=2.309, value=0.996), CurvePoint(resolution=2.27, value=1.0), CurvePoint(resolution=2.193, value=0.997), CurvePoint(resolution=2.148, value=1.0), CurvePoint(resolution=2.143, value=1.0), CurvePoint(resolution=2.123, value=0.995), CurvePoint(resolution=2.109, value=1.0), CurvePoint(resolution=2.099, value=1.0), CurvePoint(resolution=2.051, value=1.0), CurvePoint(resolution=2.036, value=0.999), CurvePoint(resolution=2.035, value=0.995), CurvePoint(resolution=2.033, value=0.999), CurvePoint(resolution=1.996, value=1.0), CurvePoint(resolution=1.99, value=1.0), CurvePoint(resolution=1.988, value=1.0), CurvePoint(resolution=1.977, value=0.994), CurvePoint(resolution=1.934, value=0.997), CurvePoint(resolution=1.898, value=1.0), CurvePoint(resolution=1.856, value=0.994), CurvePoint(resolution=1.808, value=0.994), CurvePoint(resolution=1.755, value=0.993), CurvePoint(resolution=1.743, value=0.998), CurvePoint(resolution=1.735, value=0.991), CurvePoint(resolution=1.701, value=0.987), CurvePoint(resolution=1.687, value=0.992), CurvePoint(resolution=1.561, value=0.98), CurvePoint(resolution=1.538, value=0.975), CurvePoint(resolution=1.533, value=0.974), CurvePoint(resolution=1.456, value=0.956), CurvePoint(resolution=1.452, value=0.948), CurvePoint(resolution=1.419, value=0.938), CurvePoint(resolution=1.404, value=0.935), CurvePoint(resolution=1.371, value=0.919), CurvePoint(resolution=1.346, value=0.902), CurvePoint(resolution=1.315, value=0.876), CurvePoint(resolution=1.286, value=0.848), CurvePoint(resolution=1.266, value=0.833), CurvePoint(resolution=1.212, value=0.753), CurvePoint(resolution=1.21, value=0.75), CurvePoint(resolution=1.175, value=0.692), CurvePoint(resolution=1.172, value=0.678), CurvePoint(resolution=1.156, value=0.649), CurvePoint(resolution=1.147, value=0.625), CurvePoint(resolution=1.109, value=0.517)], completeness=97.29, multiplicity=5.3, nobs=189003, total_refl=140823, unique_refl=44561, comments='Random auto-generated test entry'))\n"
]
}
],
- "execution_count": 31
+ "execution_count": 27
},
{
"metadata": {