Ali2206 commited on
Commit
5d3d062
·
verified ·
1 Parent(s): ce42a52

Update api/routes/patients.py

Browse files
Files changed (1) hide show
  1. api/routes/patients.py +14 -20
api/routes/patients.py CHANGED
@@ -131,13 +131,18 @@ async def delete_patient(
131
  )
132
 
133
  try:
134
- # First check if patient exists
135
- patient = await patients_collection.find_one({
136
- "$or": [
137
- {"_id": ObjectId(patient_id)},
138
- {"fhir_id": patient_id}
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 (removed the source check)
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: