import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/patient/PatientArrivalEntity.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-data.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-history.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign/vital_sign_res_model.dart';

class VitalSignsService extends BaseService {
  VitalSignData patientVitalSigns;
  List<VitalSignHistory> patientVitalSignsHistory = [];

  Future getPatientVitalSign(PatiantInformtion patient) async {
    patientVitalSigns = null;
    hasError = false;
    Map<String, dynamic> body = Map();
    body['PatientMRN'] = patient.patientMRN;
    body['AppointmentNo'] = patient.appointmentNo;
    body['EpisodeID'] = patient.episodeNo;
    await baseAppClient.post(
      GET_PATIENT_VITAL_SIGN_DATA,
      onSuccess: (dynamic response, int statusCode) {
        if (response['VitalSignsList'] != null) {
          if (response['VitalSignsList']['entityList'] != null &&
              (response['VitalSignsList']['entityList'] as List).length > 0) {
            patientVitalSigns = VitalSignData.fromJson(
                response['VitalSignsList']['entityList'][0]);
          }
        }
      },
      onFailure: (String error, int statusCode) {
        hasError = true;
        super.error = error.toString();
      },
      body: body,
    );
  }

  Future getPatientVitalSignsHistory(
      PatiantInformtion patient, String fromDate, String toDate) async {
    patientVitalSigns = null;
    hasError = false;
    Map<String, dynamic> body = Map();
    body['PatientMRN'] = patient.patientId; // patient.patientMRN
    body['AppointmentNo'] = patient.appointmentNo;
    // body['EpisodeID'] = patient.episodeNo;
    body['PatientTypeID'] = 1;
    body['PatientType'] = 1;
    body['DeviceTypeID'] = 1;
    body['isDentalAllowedBackend'] = false;
    body['From'] = fromDate;
    body['To'] = toDate;

    await baseAppClient.post(
      GET_PATIENT_VITAL_SIGN_DATA,
      onSuccess: (dynamic response, int statusCode) {
        patientVitalSignsHistory.clear();
        if (response['VitalSignsHistory'] != null) {
          response['VitalSignsHistory'].forEach((v) {
            patientVitalSignsHistory.add(new VitalSignHistory.fromJson(v));
          });
        }
      },
      onFailure: (String error, int statusCode) {
        hasError = true;
        super.error = error.toString();
      },
      body: body,
    );
  }
}
