Skip to content

Commit c9a0476

Browse files
committed
Improve meta profile assignment logic and add resource validation logging
1 parent b012bb4 commit c9a0476

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

backend/app/operations/validate.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ async def validate_op(_operation: SDKOperation, request: SDKOperationRequest) ->
1515
logging.error("Validation request: %s", request_data)
1616
formatted_request = official_format_to_aidbox(request_data)
1717
resource_to_validate = formatted_request["resource"]
18-
resource_type = resource_to_validate["resourceType"] or "Patient"
18+
resource_type = resource_to_validate.get("resourceType", "Patient")
1919
file_info = formatted_request["file_info"]
2020
session_id = formatted_request["session_id"]
2121

22+
logging.error("Resource to validate: %s", resource_to_validate)
23+
2224
validation_results = await fhir_client.execute(
2325
f"{resource_type}/$validate", method="POST", data=resource_to_validate
2426
)
@@ -38,8 +40,15 @@ def official_format_to_aidbox(data: dict) -> dict:
3840
if len(files_to_validate) == 1:
3941
resource_data = files_to_validate[0].get("fileContent", {})
4042
resource_data = json.loads(resource_data)
41-
resource_data_meta = resource_data.get("meta", {})
42-
resource_data["meta"] = {**resource_data_meta, "profile": profiles}
43+
resource_data_meta = resource_data.get("meta")
44+
if resource_data_meta is not None:
45+
resource_data_meta_profile = resource_data_meta.get("profile", [])
46+
if resource_data_meta_profile is not None:
47+
resource_data["meta"]["profile"] = profiles
48+
else:
49+
resource_data["meta"] = {"profile": profiles}
50+
else:
51+
resource_data["meta"] = {"profile": profiles}
4352

4453
return {
4554
"resource": resource_data,

0 commit comments

Comments
 (0)