Spaces:
Sleeping
Sleeping
Update api/routes/patients.py
Browse files- api/routes/patients.py +14 -20
api/routes/patients.py
CHANGED
|
@@ -131,13 +131,18 @@ async def delete_patient(
|
|
| 131 |
)
|
| 132 |
|
| 133 |
try:
|
| 134 |
-
#
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
|
| 142 |
if not patient:
|
| 143 |
logger.warning(f"Patient not found for deletion: {patient_id}")
|
|
@@ -146,13 +151,8 @@ async def delete_patient(
|
|
| 146 |
detail="Patient not found"
|
| 147 |
)
|
| 148 |
|
| 149 |
-
# Perform deletion
|
| 150 |
-
result = await patients_collection.delete_one(
|
| 151 |
-
"$or": [
|
| 152 |
-
{"_id": ObjectId(patient_id)},
|
| 153 |
-
{"fhir_id": patient_id}
|
| 154 |
-
]
|
| 155 |
-
})
|
| 156 |
|
| 157 |
if result.deleted_count == 0:
|
| 158 |
logger.error(f"Failed to delete patient {patient_id}")
|
|
@@ -164,12 +164,6 @@ async def delete_patient(
|
|
| 164 |
logger.info(f"Successfully deleted patient {patient_id}")
|
| 165 |
return None
|
| 166 |
|
| 167 |
-
except ValueError as ve:
|
| 168 |
-
logger.error(f"Invalid patient ID format: {patient_id}, error: {str(ve)}")
|
| 169 |
-
raise HTTPException(
|
| 170 |
-
status_code=status.HTTP_400_BAD_REQUEST,
|
| 171 |
-
detail="Invalid patient ID format"
|
| 172 |
-
)
|
| 173 |
except HTTPException:
|
| 174 |
raise
|
| 175 |
except Exception as e:
|
|
|
|
| 131 |
)
|
| 132 |
|
| 133 |
try:
|
| 134 |
+
# Build the query based on whether patient_id is a valid ObjectId
|
| 135 |
+
query = {"fhir_id": patient_id}
|
| 136 |
+
if ObjectId.is_valid(patient_id):
|
| 137 |
+
query = {
|
| 138 |
+
"$or": [
|
| 139 |
+
{"_id": ObjectId(patient_id)},
|
| 140 |
+
{"fhir_id": patient_id}
|
| 141 |
+
]
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
# Check if patient exists
|
| 145 |
+
patient = await patients_collection.find_one(query)
|
| 146 |
|
| 147 |
if not patient:
|
| 148 |
logger.warning(f"Patient not found for deletion: {patient_id}")
|
|
|
|
| 151 |
detail="Patient not found"
|
| 152 |
)
|
| 153 |
|
| 154 |
+
# Perform deletion
|
| 155 |
+
result = await patients_collection.delete_one(query)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
|
| 157 |
if result.deleted_count == 0:
|
| 158 |
logger.error(f"Failed to delete patient {patient_id}")
|
|
|
|
| 164 |
logger.info(f"Successfully deleted patient {patient_id}")
|
| 165 |
return None
|
| 166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
except HTTPException:
|
| 168 |
raise
|
| 169 |
except Exception as e:
|