From c2ec014794dbb5d1eeeeb36944bd7a9de84dc45f Mon Sep 17 00:00:00 2001 From: Pedro Nascimento Date: Fri, 9 Aug 2024 09:13:12 -0300 Subject: [PATCH 1/3] Update patient header with additional medical responsible information --- app/routers/frontend.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/routers/frontend.py b/app/routers/frontend.py index c1c04ef..0386880 100644 --- a/app/routers/frontend.py +++ b/app/routers/frontend.py @@ -58,8 +58,13 @@ async def get_patient_header( "name": "Equipe Roxo", "phone": "(21) 95555-0001" }, - "medical_responsible": [{"name": "Roberta dos Santos", "registry": "XXXXXXX"}], - "nursing_responsible": [{"name": "Pedro da Nobrega", "registry": "XXXXXXX"}], + "medical_responsible": [ + {"name": "Roberta dos Santos", "registry": "XXXXX"}, + {"name": "Lucas da Silva", "registry": "YYYYY"} + ], + "nursing_responsible": [ + {"name": "Pedro da Nobrega", "registry": "WWWWW"} + ], "validated": True, } From ca71317ab46259e43ca6a5291bb2d8c9cb0fb99d Mon Sep 17 00:00:00 2001 From: Pedro Nascimento Date: Fri, 9 Aug 2024 10:57:08 -0300 Subject: [PATCH 2/3] fix: better datalake logging --- app/datalake/models.py | 6 +++--- app/routers/entities_raw.py | 35 +++++++++++++++++++---------------- app/types/pydantic_models.py | 7 ++++++- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/app/datalake/models.py b/app/datalake/models.py index 62ec60c..6f5aa52 100644 --- a/app/datalake/models.py +++ b/app/datalake/models.py @@ -160,9 +160,9 @@ class VitacareAtendimento(BaseModel): data__profissional__nome: Optional[str] data__profissional__cbo: Optional[str] data__profissional__cbo_descricao: Optional[str] - data__profissional__equipe__nome: Optional[str] - data__profissional__equipe__cod_equipe: Optional[str] - data__profissional__equipe__cod_ine: Optional[str] + data__profissional__equipe__nome: str + data__profissional__equipe__cod_equipe: str + data__profissional__equipe__cod_ine: str data__datahora_inicio_atendimento: str data__datahora_fim_atendimento: str data__datahora_marcacao_atendimento: Optional[str] diff --git a/app/routers/entities_raw.py b/app/routers/entities_raw.py index 7935d77..d272dc2 100644 --- a/app/routers/entities_raw.py +++ b/app/routers/entities_raw.py @@ -105,39 +105,42 @@ async def create_raw_data( # ==================== # SEND TO DATALAKE # ==================== - uploaded_to_datalake = False + datalake_status = { + 'success': False, + 'message': None, + } # Inject CNES in records for record in records: record["payload_cnes"] = data_source.cnes - # Get Formatter - formatter = get_formatter( - system=data_source.system.value, - entity=entity_name - ) - - # Format and Upload try: + # Get Formatter + formatter = get_formatter( + system=data_source.system.value, + entity=entity_name + ) if upload_to_datalake and formatter: uploader = DatalakeUploader( dump_mode="append", force_unique_file_name=True, ) - for config, dataframe in apply_formatter(records, formatter).items(): uploader.upload( dataframe=dataframe, **convert_model_config_to_dict(config) ) - uploaded_to_datalake = True + datalake_status['success'] = True + datalake_status['message'] = "Data uploaded to Datalake" except Exception as e: - logger.error(f"Error uploading to datalake: {e}") - finally: - return BulkInsertOutputModel( - count=len(new_records), - uploaded_to_datalake=uploaded_to_datalake, - ) + datalake_status['success'] = True + datalake_status['message'] = f"Error in upload ({entity_name, data_source.cnes}): {e}" + logger.error(datalake_status['message']) + + return BulkInsertOutputModel( + count=len(new_records), + datalake_status=datalake_status, + ) @router.post("/{entity_name}/setAsInvalid", status_code=200) diff --git a/app/types/pydantic_models.py b/app/types/pydantic_models.py index 44bf27d..69a030b 100644 --- a/app/types/pydantic_models.py +++ b/app/types/pydantic_models.py @@ -73,9 +73,14 @@ class RawDataListModel(BaseModel): cnes: str +class UploadToDatalakeStatusModel(BaseModel): + success: bool + message: Optional[str] + + class BulkInsertOutputModel(BaseModel): count: int - uploaded_to_datalake: Optional[bool] = False + datalake_status: UploadToDatalakeStatusModel class ConditionListModel(BaseModel): From f68559c994836d4c68fc54bb41d11b664a1a9ea0 Mon Sep 17 00:00:00 2001 From: Pedro Nascimento Date: Fri, 9 Aug 2024 11:02:14 -0300 Subject: [PATCH 3/3] feat: Make datalake_status field optional in BulkInsertOutputModel --- app/types/pydantic_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/types/pydantic_models.py b/app/types/pydantic_models.py index 69a030b..f2f6f5d 100644 --- a/app/types/pydantic_models.py +++ b/app/types/pydantic_models.py @@ -80,7 +80,7 @@ class UploadToDatalakeStatusModel(BaseModel): class BulkInsertOutputModel(BaseModel): count: int - datalake_status: UploadToDatalakeStatusModel + datalake_status: Optional[UploadToDatalakeStatusModel] class ConditionListModel(BaseModel):