From 53568adc9c9c9dc1963f562bb0a6441e3d814938 Mon Sep 17 00:00:00 2001 From: Pedro Nascimento Date: Fri, 26 Jul 2024 15:10:09 -0300 Subject: [PATCH 1/2] feat: Refactor datalake formatters for improved performance --- api/app/datalake/formatters.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/api/app/datalake/formatters.py b/api/app/datalake/formatters.py index f64ecd7..97516ae 100644 --- a/api/app/datalake/formatters.py +++ b/api/app/datalake/formatters.py @@ -28,26 +28,8 @@ def format_smsrio_patient(raw_record: dict) -> List: raw_record['source_updated_at'] = str(raw_record['source_updated_at']) flattened_patient = flatten(raw_record) - rows = [SMSRioPaciente(**flattened_patient)] - for field_name, FieldModel in [ - ('telefones', SMSRioTelefone), - ('cns_provisorio', SMSRioCnsProvisorio) - ]: - # If field not in record, skip - if field_name not in raw_record['data']: - continue - - for value in raw_record['data'].pop(field_name) or []: - rows.append( - FieldModel( - value=value, - patient_cpf=raw_record.get("patient_cpf"), - source_updated_at=raw_record.get("source_updated_at") - ) - ) - - return rows + return [SMSRioPaciente(**flattened_patient)] @register_formatter(system="vitacare", entity="patientrecords") From 2fc7b5d0b6539412b4073a6a0791ebc17453c850 Mon Sep 17 00:00:00 2001 From: Pedro Nascimento Date: Fri, 26 Jul 2024 15:10:55 -0300 Subject: [PATCH 2/2] chore: Remove unused SMSRio models and update formatters --- api/app/datalake/formatters.py | 2 -- api/app/datalake/models.py | 26 -------------------------- 2 files changed, 28 deletions(-) diff --git a/api/app/datalake/formatters.py b/api/app/datalake/formatters.py index 97516ae..431a6bc 100644 --- a/api/app/datalake/formatters.py +++ b/api/app/datalake/formatters.py @@ -6,9 +6,7 @@ from typing import List from app.datalake.utils import flatten, register_formatter from app.datalake.models import ( - SMSRioCnsProvisorio, SMSRioPaciente, - SMSRioTelefone, VitacarePaciente, VitacarePacienteHistorico, VitacareAtendimento, diff --git a/api/app/datalake/models.py b/api/app/datalake/models.py index 9c62e97..da2dbbf 100644 --- a/api/app/datalake/models.py +++ b/api/app/datalake/models.py @@ -54,32 +54,6 @@ class Config: dataset_is_public = False -class SMSRioTelefone(BaseModel): - patient_cpf: str - value: str - source_updated_at: str - - class Config: - dataset_id = "brutos_plataforma_smsrio" - table_id = "paciente_telefone_eventos" - partition_by_date = False - biglake_table = True - dataset_is_public = False - - -class SMSRioCnsProvisorio(BaseModel): - patient_cpf: str - value: str - source_updated_at: str - - class Config: - dataset_id = "brutos_plataforma_smsrio" - table_id = "paciente_cns_eventos" - partition_by_date = False - biglake_table = True - dataset_is_public = False - - # =============== # Vitacare # ===============