66"""
77
88from common .validator .constants .enums import MESSAGES , DataType , ErrorLevels , ExceptionLevels
9+ from common .validator .error_report .error_reporter import add_error_record , check_error_record_for_fail
910from common .validator .expression_checker import ExpressionChecker
1011from common .validator .parsers .fetch_parsers import FetchParsers
1112from common .validator .record_error import ErrorReport
12- from common .validator .reporter .dq_reporter import DQReporter
1313
1414
1515class Validator :
1616 def __init__ (self , schema_file = "" ):
1717 self .schema_file = schema_file
1818 self .get_data_from_parsers = FetchParsers ()
1919
20- # Collect and add error record to the list
21- def _add_error_record (
22- self ,
23- error_records : list [ErrorReport ],
24- error_record : ErrorReport ,
25- expression_error_group : str ,
26- expression_name : str ,
27- expression_id : str ,
28- error_level : ErrorLevels ,
29- ) -> None :
30- if error_record is not None :
31- error_record .error_group = expression_error_group
32- error_record .name = expression_name
33- error_record .id = expression_id
34- error_record .error_level = error_level
35- error_records .append (error_record )
36-
37- # Function to help identify a parent failure in the error list
38- def _check_error_record_for_fail (self , expression_identifier : str , error_records : list [ErrorReport ]) -> bool :
39- for error_record in error_records :
40- if error_record .id == expression_identifier :
41- return True
42- return False
43-
4420 # validate a single expression against the data file
4521 def _validate_expression (
4622 self ,
@@ -64,12 +40,12 @@ def _validate_expression(
6440 # Check to see if the expression has a parent, if so did the parent validate
6541 if "parentExpression" in expression :
6642 parent_expression = expression ["parentExpression" ]
67- if self . _check_error_record_for_fail (parent_expression , error_records ):
43+ if check_error_record_for_fail (parent_expression , error_records ):
6844 error_record = ErrorReport (
6945 code = ExceptionLevels .PARENT_FAILED ,
7046 message = MESSAGES [ExceptionLevels .PARENT_FAILED ] + ", Parent ID: " + parent_expression ,
7147 )
72- self . _add_error_record (
48+ add_error_record (
7349 error_records , error_record , expression_error_group , expression_name , expression_id , error_level
7450 )
7551 return
@@ -80,7 +56,7 @@ def _validate_expression(
8056 message = f"Data get values Unexpected exception [{ e .__class__ .__name__ } ]: { e } "
8157 error_record = ErrorReport (code = ExceptionLevels .PARSING_ERROR , message = message )
8258 # original code had self.CriticalErrorLevel. Replaced with error_level
83- self . _add_error_record (
59+ add_error_record (
8460 error_records , error_record , expression_error_group , expression_name , expression_id , error_level
8561 )
8662 return
@@ -91,7 +67,7 @@ def _validate_expression(
9167 expression_type , expression_rule , expression_fieldname , value , row
9268 )
9369 if error_record is not None :
94- self . _add_error_record (
70+ add_error_record (
9571 error_records , error_record , expression_error_group , expression_name , expression_id , error_level
9672 )
9773 except Exception :
@@ -185,11 +161,5 @@ def run_validation(
185161
186162 return error_records
187163
188- # Build the error Report
189- def build_error_report (self , event_id : str , data_parser : dict , error_records : list [ErrorReport ]) -> dict :
190- occurrence_date_time = data_parser .get_fhir_value ("occurrenceDateTime" )
191- dq_reporter = DQReporter ()
192- return dq_reporter .generate_error_report (event_id , occurrence_date_time , error_records )
193-
194164 def has_validation_failed (self , error_records : list [ErrorReport ]) -> bool :
195165 return any (er .error_level == ErrorLevels .CRITICAL_ERROR for er in error_records )
0 commit comments