diff --git a/cdisc_rules_engine/utilities/dataset_preprocessor.py b/cdisc_rules_engine/utilities/dataset_preprocessor.py index f58a787f3..c1c8ed8f8 100644 --- a/cdisc_rules_engine/utilities/dataset_preprocessor.py +++ b/cdisc_rules_engine/utilities/dataset_preprocessor.py @@ -347,7 +347,7 @@ def _merge_standard_then_filter_idvar( if col not in merged_record: merged_record[col] = None results.append(merged_record) - return child_records.__class__.from_records(results) + return pd.DataFrame.from_records(results) def _filter_parents_by_standard_keys( self, @@ -479,7 +479,7 @@ def _merge_idvar_only( if col not in merged_record: merged_record[col] = None results.append(merged_record) - return child_records.__class__.from_records(results) + return pd.DataFrame.from_records(results) def _update_dataset_with_merged_records( self, diff --git a/cdisc_rules_engine/utilities/rule_processor.py b/cdisc_rules_engine/utilities/rule_processor.py index 3f8a5a961..1f93f0885 100644 --- a/cdisc_rules_engine/utilities/rule_processor.py +++ b/cdisc_rules_engine/utilities/rule_processor.py @@ -373,6 +373,10 @@ def perform_rule_operations( target = BaseOperation._replace_variable_wildcard( target, wildcard_replacement ) + if domain and domain.startswith(("SUPP", "SQ")) and domain.endswith("--"): + rdomain = getattr(dataset_metadata, "rdomain", None) + if rdomain: + domain = domain.replace("--", rdomain) # get necessary operation operation_params = OperationParams(