@@ -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