| 123456789101112131415161718192021222324252627282930 |
- from datetime import datetime
- from typing import Optional, Dict, List
- import matplotlib
- matplotlib.use("Agg")
- from fastapi import FastAPI, UploadFile, File, HTTPException, BackgroundTasks
- from fastapi.responses import FileResponse, StreamingResponse
- from pydantic import BaseModel, Field
- class StartSessionRequest(BaseModel):
- file_raw_id: str = Field(..., description="id загруженного .mat/.h5")
- file_json_id: str = Field(..., description="id загруженного JSON с параметрами")
- file_order_id: Optional[str] = Field(None, description="id JSON с порядком k-space (для nonlinear/radial)")
- sequence_name: str = Field(..., description="linear_decart | nonlinear_decart(tse) | linear_epi | radial_propeller")
- digit: str = Field(..., description="'2d' или '3d'")
- phase_shift: bool = Field(False, description="включать RF-spoil из JSON или обнулить")
- class SessionStatus(BaseModel):
- session_id: str
- status: str # queued | running | done | error
- progress: float
- message: str
- created_at: str
- updated_at: str
- result_files: List[str] = []
- error_traceback: Optional[str] = None
|