66
77if TYPE_CHECKING :
88 from ..models .advanced_filter import AdvancedFilter
9+ from ..models .query_output_variable import QueryOutputVariable
910
1011
1112T = TypeVar ("T" , bound = "CrossStandardQuery" )
@@ -24,13 +25,17 @@ class CrossStandardQuery:
2425
2526 Attributes:
2627 filter_ (Union[Unset, AdvancedFilter]): Abstract subclass of a filter for cross-standard queries.
27- variables (Union[Unset, List[str ]]): The variables to be extracted from the cohort. Each variable should either
28- be the name
28+ output_variables (Union[Unset, List['QueryOutputVariable' ]]): The variables to be extracted from the cohort.
29+ Each variable should either be the name
2930 of a feature (directly attached to a record), or a unique identifier defined in a filter
3031 for series variables (variables attached to a record that contain a list of values).
32+ unit (Union[Unset, str]): The unit of the feasibility query (i.e., what is a record -- should be "patient").
33+ variables (Union[Unset, List[str]]): Legacy version of the above output variables
3134 """
3235
3336 filter_ : Union [Unset , "AdvancedFilter" ] = UNSET
37+ output_variables : Union [Unset , List ["QueryOutputVariable" ]] = UNSET
38+ unit : Union [Unset , str ] = UNSET
3439 variables : Union [Unset , List [str ]] = UNSET
3540 additional_properties : Dict [str , Any ] = attr .ib (init = False , factory = dict )
3641
@@ -39,6 +44,15 @@ def to_dict(self) -> Dict[str, Any]:
3944 if not isinstance (self .filter_ , Unset ):
4045 filter_ = self .filter_ .to_dict ()
4146
47+ output_variables : Union [Unset , List [Dict [str , Any ]]] = UNSET
48+ if not isinstance (self .output_variables , Unset ):
49+ output_variables = []
50+ for output_variables_item_data in self .output_variables :
51+ output_variables_item = output_variables_item_data .to_dict ()
52+
53+ output_variables .append (output_variables_item )
54+
55+ unit = self .unit
4256 variables : Union [Unset , List [str ]] = UNSET
4357 if not isinstance (self .variables , Unset ):
4458 variables = self .variables
@@ -48,6 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
4862 field_dict .update ({})
4963 if filter_ is not UNSET :
5064 field_dict ["filter" ] = filter_
65+ if output_variables is not UNSET :
66+ field_dict ["outputVariables" ] = output_variables
67+ if unit is not UNSET :
68+ field_dict ["unit" ] = unit
5169 if variables is not UNSET :
5270 field_dict ["variables" ] = variables
5371
@@ -56,6 +74,7 @@ def to_dict(self) -> Dict[str, Any]:
5674 @classmethod
5775 def from_dict (cls : Type [T ], src_dict : Dict [str , Any ]) -> T :
5876 from ..models .advanced_filter import AdvancedFilter
77+ from ..models .query_output_variable import QueryOutputVariable
5978
6079 d = src_dict .copy ()
6180 _filter_ = d .pop ("filter" , UNSET )
@@ -65,10 +84,21 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
6584 else :
6685 filter_ = AdvancedFilter .from_dict (_filter_ )
6786
87+ output_variables = []
88+ _output_variables = d .pop ("outputVariables" , UNSET )
89+ for output_variables_item_data in _output_variables or []:
90+ output_variables_item = QueryOutputVariable .from_dict (output_variables_item_data )
91+
92+ output_variables .append (output_variables_item )
93+
94+ unit = d .pop ("unit" , UNSET )
95+
6896 variables = cast (List [str ], d .pop ("variables" , UNSET ))
6997
7098 cross_standard_query = cls (
7199 filter_ = filter_ ,
100+ output_variables = output_variables ,
101+ unit = unit ,
72102 variables = variables ,
73103 )
74104
0 commit comments