@@ -52,12 +52,12 @@ def _generate_dataset(self, dataset, define_objects, lang, acrf):
5252 vars .create_define_objects (items_list , define_objects , lang , acrf , item_group = itg )
5353 # ItemDefs
5454 itd = items .Items ()
55- itd .create_define_objects (dataset ["items" ], define_objects , lang , acrf )
55+ itd .create_define_objects (dataset ["items" ], define_objects , lang , acrf , slice = dataset [ "slices" ] if dataset . get ( "slices" ) else None )
5656
5757 # TODO review this assumption that we have 1 class per dataset
5858 # assumption: 1 class per dataset - many need to expand this for ADaM
59- if dataset .get ("class " ):
60- ds_class = dataset [ "class" ] .upper ().replace ("-" , " " )
59+ if dataset .get ("observationClass" , {}). get ( "name" , " " ):
60+ ds_class = dataset . get ( "observationClass" , {}). get ( "name" , "" ) .upper ().replace ("-" , " " )
6161 itg .Class = DEFINE .Class (Name = ds_class )
6262
6363 def _create_itemgroupdef_object (self , obj ):
@@ -69,17 +69,18 @@ def _create_itemgroupdef_object(self, obj):
6969 attr ["Structure" ] = obj .get ("structure" , "NA" )
7070 if obj .get ("sasDatasetName" ):
7171 attr ["SASDatasetName" ] = obj ["sasDatasetName" ]
72- if obj .get ("isReferenceData" ):
73- attr ["IsReferenceData" ] = obj ["isReferenceData" ]
74- else :
75- attr ["IsReferenceData" ] = self ._generate_is_reference (attr )
76- if obj .get ("repeating" ):
77- if obj ["repeating" ]:
78- attr ["Repeating" ] = "Yes"
79- else :
80- attr ["Repeating" ] = "No"
81- else :
82- attr ["Repeating" ] = self ._generate_repeating_value (attr )
72+ if "isReferenceData" in obj :
73+ attr ["IsReferenceData" ] = "Yes" if obj ["isReferenceData" ] else "No"
74+ # else:
75+ # attr["IsReferenceData"] = self._generate_is_reference(attr)
76+ # if obj.get("repeating"):
77+ # if obj["repeating"]:
78+ # attr["Repeating"] = "Yes"
79+ # else:
80+ # attr["Repeating"] = "No"
81+ # else:
82+ # attr["Repeating"] = self._generate_repeating_value(attr)
83+ attr ["Repeating" ] = self ._generate_repeating_value (attr )
8384 # TODO how to tell if we're processing SDTM or ADaM define?
8485 if obj .get ("purpose" ):
8586 attr ["Purpose" ] = obj ["purpose" ]
@@ -90,8 +91,8 @@ def _create_itemgroupdef_object(self, obj):
9091 attr ["CommentOID" ] = obj ["comment" ]
9192 if obj .get ("isNonStandard" ):
9293 attr ["IsNonStandard" ] = obj ["isNonStandard" ]
93- if obj .get ("wasDerivedFrom " ):
94- attr ["StandardOID" ] = obj ["wasDerivedFrom " ]
94+ if obj .get ("standard " ):
95+ attr ["StandardOID" ] = obj ["standard " ]
9596 if obj .get ("hasNoData" ):
9697 attr ["HasNoData" ] = obj ["hasNoData" ]
9798 igd = DEFINE .ItemGroupDef (** attr )
@@ -101,16 +102,16 @@ def _create_itemgroupdef_object(self, obj):
101102 igd .Description .TranslatedText .append (tt )
102103 return igd
103104
104- def _generate_is_reference (self , attributes : dict [str , str ]) -> str :
105- """
106- Determine if the dataset is a reference dataset (trial design domains).
105+ # def _generate_is_reference(self, attributes: dict[str, str]) -> str:
106+ # """
107+ # Determine if the dataset is a reference dataset (trial design domains).
107108
108- :param attributes: ItemGroupDef attributes dictionary
109- :return: "Yes" if domain is a reference domain, "No" otherwise
110- """
111- if attributes ["Domain" ] in TRIAL_DESIGN_DOMAINS :
112- return "Yes"
113- return "No"
109+ # :param attributes: ItemGroupDef attributes dictionary
110+ # :return: "Yes" if domain is a reference domain, "No" otherwise
111+ # """
112+ # if attributes["Domain"] in TRIAL_DESIGN_DOMAINS:
113+ # return "Yes"
114+ # return "No"
114115
115116 def _generate_repeating_value (self , attributes : dict [str , str ]) -> str :
116117 """
@@ -119,7 +120,7 @@ def _generate_repeating_value(self, attributes: dict[str, str]) -> str:
119120 :param attributes: ItemGroupDef attributes dictionary
120121 :return: "Yes" if dataset has repeating records, "No" otherwise
121122 """
122- if attributes [ "IsReferenceData" ] == "Yes" :
123+ if attributes . get ( "IsReferenceData" ) == "Yes" :
123124 return "No"
124125 if attributes ["Domain" ] in NON_REPEATING_DOMAINS :
125126 # TODO check for presence of -PARMCD for DI/OI domains
0 commit comments