ahri_tre_protocol/
transformation.rs1use crate::refs::{TransformationRef, VersionRef};
2use crate::{refs::SessionSelector, study::StudySelector};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct TransformationListRequest {
7 #[serde(default, skip_serializing_if = "Option::is_none")]
8 pub session: Option<SessionSelector>,
9 pub study: StudySelector,
10}
11
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
13pub struct TransformationSummary {
14 pub transformation: TransformationDetail,
15 pub inputs: Vec<VersionRef>,
16 pub outputs: Vec<VersionRef>,
17}
18
19#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
20pub struct TransformationListResponse {
21 pub session: crate::session::SessionStatusPayload,
22 pub transformations: Vec<TransformationSummary>,
23}
24
25#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
27pub struct TransformationDetail {
28 pub transformation_id: TransformationRef,
29 pub transformation_type: ahri_tre_types::TransformationType,
30 pub description: String,
31 pub date_created: Option<chrono::DateTime<chrono::Utc>>,
32 pub created_by: Option<String>,
33}