clinicalUpdate method
Actualiza los datos clínicos de un ingreso vía PUT /admissions/clinical-update/{id}.
Recibe patient para reconstruir la respuesta completa cuando el backend
devuelve solo la parte de ingreso (sin paciente anidado).
Implementation
Future<AdmissionResponse> clinicalUpdate({
required String admissionId,
required String principalDiagnosis,
required String medicalHistory,
required PatientPreviewResponse patient,
String? allergies,
String? chronicTreatment,
int? basalBarthel,
}) async {
try {
final response = await _apiClient.put(
"/admissions/clinical-update/$admissionId",
data: {
"principalDiagnosis": principalDiagnosis,
"medicalHistory": medicalHistory,
"allergies": allergies,
"chronicTreatment": chronicTreatment,
"basalBarthel": basalBarthel,
},
);
final payload = response.data;
Map<String, dynamic> jsonData;
if (payload is Map<String, dynamic> && payload.containsKey('data')) {
jsonData = payload['data'] as Map<String, dynamic>;
} else {
jsonData = payload as Map<String, dynamic>;
}
final update = AdmissionUpdateResponse.fromJson(jsonData);
return update.toFullResponse(patient);
} catch (e) {
rethrow;
}
}