Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development #186

Merged
merged 5 commits into from
Aug 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/datalake/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
35 changes: 19 additions & 16 deletions app/routers/entities_raw.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
9 changes: 7 additions & 2 deletions app/routers/frontend.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
}

Expand Down
7 changes: 6 additions & 1 deletion app/types/pydantic_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: Optional[UploadToDatalakeStatusModel]


class ConditionListModel(BaseModel):
Expand Down
Loading