import 'package:hmg_patient_app/uitl/date_uitl.dart';

class AppoimentAllHistoryResultList {
  String? setupID;
  int? projectID;
  int? appointmentNo;
  String? appointmentDate;
  dynamic appointmentDateN;
  int? appointmentType;
  DateTime? bookDate;
  dynamic patientType;
  int? patientID;
  dynamic clinicID;
  int? doctorID;
  String? endDate;
  String? startTime;
  String? endTime;
  dynamic status;
  dynamic visitType;
  int? visitFor;
  int? patientStatusType;
  int? companyID;
  int? bookedBy;
  String? bookedOn;
  int? confirmedBy;
  String? confirmedOn;
  int? arrivalChangedBy;
  String? arrivedOn;
  dynamic editedBy;
  dynamic editedOn;
  dynamic doctorName;
  dynamic doctorNameN;
  String? statusDesc;
  dynamic statusDescN;
  bool? vitalStatus;
  dynamic vitalSignAppointmentNo;
  int? episodeID;
  int? actualDoctorRate;
  String? clinicName;
  bool? complainExists;
  String? doctorImageURL;
  String? doctorNameObj;
  int? doctorRate;
  List<String>? doctorSpeciality;
  String? doctorTitle;
  int? gender;
  String? genderDescription;
  bool? iSAllowOnlineCheckedIN;
  bool? isActiveDoctor;
  bool? isActiveDoctorProfile;
  bool? isDoctorAllowVedioCall;
  bool? isExecludeDoctor;
  int? isFollowup;
  bool? isLiveCareAppointment;
  bool? isMedicalReportRequested;
  bool? isOnlineCheckedIN;
  String? latitude;
  List<ListHISGetContactLensPerscription>? listHISGetContactLensPerscription;
  List<ListHISGetGlassPerscription>? listHISGetGlassPerscription;
  String? longitude;
  int? nextAction;
  int? noOfPatientsRate;
  int? originalClinicID;
  int? originalProjectID;
  String? projectName;
  String? qR;
  int? remaniningHoursTocanPay;
  bool? sMSButtonVisable;
  bool? isInOutPatient;

  AppoimentAllHistoryResultList({
    this.setupID,
    this.projectID,
    this.appointmentNo,
    this.appointmentDate,
    this.appointmentDateN,
    this.appointmentType,
    this.bookDate,
    this.patientID,
    this.doctorID,
    this.endDate,
    this.startTime,
    this.endTime,
    this.status,
    this.visitFor,
    this.patientStatusType,
    this.companyID,
    this.bookedBy,
    this.bookedOn,
    this.confirmedBy,
    this.confirmedOn,
    this.arrivalChangedBy,
    this.arrivedOn,
    this.editedBy,
    this.editedOn,
    this.doctorName,
    this.doctorNameN,
    this.statusDesc,
    this.statusDescN,
    this.vitalStatus,
    this.vitalSignAppointmentNo,
    this.episodeID,
    this.actualDoctorRate,
    this.clinicName,
    this.complainExists,
    this.doctorImageURL,
    this.doctorNameObj,
    this.doctorRate,
    this.doctorSpeciality,
    this.doctorTitle,
    this.gender,
    this.genderDescription,
    this.iSAllowOnlineCheckedIN,
    this.isActiveDoctor,
    this.isActiveDoctorProfile,
    this.isDoctorAllowVedioCall,
    this.isExecludeDoctor,
    this.isFollowup,
    this.isLiveCareAppointment,
    this.isMedicalReportRequested,
    this.isOnlineCheckedIN,
    this.latitude,
    this.listHISGetContactLensPerscription,
    this.listHISGetGlassPerscription,
    this.longitude,
    this.nextAction,
    this.noOfPatientsRate,
    this.originalClinicID,
    this.originalProjectID,
    this.projectName,
    this.qR,
    this.remaniningHoursTocanPay,
    this.sMSButtonVisable,
    this.clinicID,
    this.patientType,
    this.visitType,
    this.isInOutPatient,
  });

  AppoimentAllHistoryResultList.fromJson(Map<String, dynamic> json) {
    setupID = json['SetupID'];
    projectID = json['ProjectID'];
    appointmentNo = json['AppointmentNo'];
    appointmentDate = json['AppointmentDate'];
    appointmentDateN = json['AppointmentDateN'];
    appointmentType = json['AppointmentType'];
    bookDate = DateUtil.convertStringToDate(json['BookDate']);
    patientType = json['PatientType'];
    patientID = json['PatientID'];
    clinicID = json['ClinicID'];
    doctorID = json['DoctorID'];
    endDate = json['EndDate'];
    startTime = json['StartTime'];
    endTime = json['EndTime'];
    status = json['Status'];
    visitType = json['VisitType'];
    visitFor = json['VisitFor'];
    patientStatusType = json['PatientStatusType'];
    companyID = json['CompanyID'];
    bookedBy = json['BookedBy'];
    bookedOn = json['BookedOn'];
    confirmedBy = json['ConfirmedBy'];
    confirmedOn = json['ConfirmedOn'];
    arrivalChangedBy = json['ArrivalChangedBy'];
    arrivedOn = json['ArrivedOn'];
    editedBy = json['EditedBy'];
    editedOn = json['EditedOn'];
    doctorName = json['DoctorName'];
    doctorNameN = json['DoctorNameN'];
    statusDesc = json['StatusDesc'];
    statusDescN = json['StatusDescN'];
    vitalStatus = json['VitalStatus'];
    vitalSignAppointmentNo = json['VitalSignAppointmentNo'];
    episodeID = json['EpisodeID'];
    actualDoctorRate = json['ActualDoctorRate'];
    clinicName = json['ClinicName'];
    complainExists = json['ComplainExists'];
    doctorImageURL = json['DoctorImageURL'];
    doctorNameObj = json['DoctorNameObj'];
    doctorRate = json['DoctorRate'];
    if (doctorSpeciality != null) doctorSpeciality = json['DoctorSpeciality'].cast<String>();
    doctorTitle = json['DoctorTitle'];
    gender = json['Gender'];
    genderDescription = json['GenderDescription'];
    iSAllowOnlineCheckedIN = json['ISAllowOnlineCheckedIN'];
    isActiveDoctor = json['IsActiveDoctor'];
    isActiveDoctorProfile = json['IsActiveDoctorProfile'];
    isDoctorAllowVedioCall = json['IsDoctorAllowVedioCall'];
    isExecludeDoctor = json['IsExecludeDoctor'];
    isFollowup = json['IsFollowup'];
    isLiveCareAppointment = json['IsLiveCareAppointment'];
    isMedicalReportRequested = json['IsMedicalReportRequested'];
    isOnlineCheckedIN = json['IsOnlineCheckedIN'];
    latitude = json['Latitude'];
    if (json['List_HIS_GetContactLensPerscription'] != null) {
      listHISGetContactLensPerscription = <ListHISGetContactLensPerscription>[];
      json['List_HIS_GetContactLensPerscription'].forEach((v) {
        listHISGetContactLensPerscription!.add(new ListHISGetContactLensPerscription.fromJson(v));
      });
    }
    if (json['List_HIS_GetGlassPerscription'] != null) {
      listHISGetGlassPerscription = <ListHISGetGlassPerscription>[];
      json['List_HIS_GetGlassPerscription'].forEach((v) {
        listHISGetGlassPerscription!.add(new ListHISGetGlassPerscription.fromJson(v));
      });
    }
    longitude = json['Longitude'];
    nextAction = json['NextAction'];
    noOfPatientsRate = json['NoOfPatientsRate'];
    originalClinicID = json['OriginalClinicID'];
    originalProjectID = json['OriginalProjectID'];
    projectName = json['ProjectName'];
    qR = json['QR'];
    remaniningHoursTocanPay = json['RemaniningHoursTocanPay'];
    sMSButtonVisable = json['SMSButtonVisable'];
    clinicID = json['clinicID'];
    patientType = json['patientType'];
    status = json['status'];
    visitType = json['visitType'];
    isInOutPatient = json['IsInOutPatient'];
  }

  Map<String?, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['SetupID'] = this.setupID;
    data['ProjectID'] = this.projectID;
    data['AppointmentNo'] = this.appointmentNo;
    data['AppointmentDate'] = this.appointmentDate;
    data['AppointmentDateN'] = this.appointmentDateN;
    data['AppointmentType'] = this.appointmentType;
    data['BookDate'] = this.bookDate;
    data['PatientType'] = this.patientType;
    data['PatientID'] = this.patientID;
    data['ClinicID'] = this.clinicID;
    data['DoctorID'] = this.doctorID;
    data['EndDate'] = this.endDate;
    data['StartTime'] = this.startTime;
    data['EndTime'] = this.endTime;
    data['Status'] = this.status;
    data['VisitType'] = this.visitType;
    data['VisitFor'] = this.visitFor;
    data['PatientStatusType'] = this.patientStatusType;
    data['CompanyID'] = this.companyID;
    data['BookedBy'] = this.bookedBy;
    data['BookedOn'] = this.bookedOn;
    data['ConfirmedBy'] = this.confirmedBy;
    data['ConfirmedOn'] = this.confirmedOn;
    data['ArrivalChangedBy'] = this.arrivalChangedBy;
    data['ArrivedOn'] = this.arrivedOn;
    data['EditedBy'] = this.editedBy;
    data['EditedOn'] = this.editedOn;
    data['DoctorName'] = this.doctorName;
    data['DoctorNameN'] = this.doctorNameN;
    data['StatusDesc'] = this.statusDesc;
    data['StatusDescN'] = this.statusDescN;
    data['VitalStatus'] = this.vitalStatus;
    data['VitalSignAppointmentNo'] = this.vitalSignAppointmentNo;
    data['EpisodeID'] = this.episodeID;
    data['ActualDoctorRate'] = this.actualDoctorRate;
    data['ClinicName'] = this.clinicName;
    data['ComplainExists'] = this.complainExists;
    data['DoctorImageURL'] = this.doctorImageURL;
    data['DoctorNameObj'] = this.doctorNameObj;
    data['DoctorRate'] = this.doctorRate;
    data['DoctorSpeciality'] = this.doctorSpeciality;
    data['DoctorTitle'] = this.doctorTitle;
    data['Gender'] = this.gender;
    data['GenderDescription'] = this.genderDescription;
    data['ISAllowOnlineCheckedIN'] = this.iSAllowOnlineCheckedIN;
    data['IsActiveDoctor'] = this.isActiveDoctor;
    data['IsActiveDoctorProfile'] = this.isActiveDoctorProfile;
    data['IsDoctorAllowVedioCall'] = this.isDoctorAllowVedioCall;
    data['IsExecludeDoctor'] = this.isExecludeDoctor;
    data['IsFollowup'] = this.isFollowup;
    data['IsLiveCareAppointment'] = this.isLiveCareAppointment;
    data['IsMedicalReportRequested'] = this.isMedicalReportRequested;
    data['IsOnlineCheckedIN'] = this.isOnlineCheckedIN;
    data['Latitude'] = this.latitude;
    if (this.listHISGetContactLensPerscription != null) {
      data['List_HIS_GetContactLensPerscription'] = this
          .listHISGetContactLensPerscription!
          .map(
            (v) => v.toJson(),
          )
          .toList();
    }
    if (this.listHISGetGlassPerscription != null) {
      data['List_HIS_GetGlassPerscription'] = this
          .listHISGetGlassPerscription!
          .map(
            (v) => v.toJson(),
          )
          .toList();
    }
    data['Longitude'] = this.longitude;
    data['NextAction'] = this.nextAction;
    data['NoOfPatientsRate'] = this.noOfPatientsRate;
    data['OriginalClinicID'] = this.originalClinicID;
    data['OriginalProjectID'] = this.originalProjectID;
    data['ProjectName'] = this.projectName;
    data['QR'] = this.qR;
    data['RemaniningHoursTocanPay'] = this.remaniningHoursTocanPay;
    data['SMSButtonVisable'] = this.sMSButtonVisable;
    data['clinicID'] = this.clinicID;
    data['patientType'] = this.patientType;
    data['status'] = this.status;
    data['visitType'] = this.visitType;
    return data;
  }
}

class ListHISGetContactLensPerscription {
  String? setupId;
  int? projectId;
  int? patientType;
  int? patientId;
  int? encounterType;
  int? encounterNo;
  int? oDOS;
  dynamic brand;
  dynamic baseCurve;
  dynamic power;
  dynamic diameter;
  dynamic oZ;
  dynamic cT;
  dynamic blend;
  String? remarks;
  int? status;
  bool? isActive;
  String? createdOn;

  ListHISGetContactLensPerscription(
      {this.setupId,
      this.projectId,
      this.patientType,
      this.patientId,
      this.encounterType,
      this.encounterNo,
      this.oDOS,
      this.brand,
      this.baseCurve,
      this.power,
      this.diameter,
      this.oZ,
      this.cT,
      this.blend,
      this.remarks,
      this.status,
      this.isActive,
      this.createdOn});

  ListHISGetContactLensPerscription.fromJson(Map<String, dynamic> json) {
    setupId = json['SetupId'];
    projectId = json['ProjectId'];
    patientType = json['PatientType'];
    patientId = json['PatientId'];
    encounterType = json['EncounterType'];
    encounterNo = json['EncounterNo'];
    oDOS = json['OD_OS'];
    brand = json['Brand'];
    baseCurve = json['BaseCurve'];
    power = json['Power'];
    diameter = json['Diameter'];
    oZ = json['OZ'];
    cT = json['CT'];
    blend = json['Blend'];
    remarks = json['Remarks'];
    status = json['Status'];
    isActive = json['IsActive'];
    createdOn = json['CreatedOn'];
  }

  Map<String?, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['SetupId'] = this.setupId;
    data['ProjectId'] = this.projectId;
    data['PatientType'] = this.patientType;
    data['PatientId'] = this.patientId;
    data['EncounterType'] = this.encounterType;
    data['EncounterNo'] = this.encounterNo;
    data['OD_OS'] = this.oDOS;
    data['Brand'] = this.brand;
    data['BaseCurve'] = this.baseCurve;
    data['Power'] = this.power;
    data['Diameter'] = this.diameter;
    data['OZ'] = this.oZ;
    data['CT'] = this.cT;
    data['Blend'] = this.blend;
    data['Remarks'] = this.remarks;
    data['Status'] = this.status;
    data['IsActive'] = this.isActive;
    data['CreatedOn'] = this.createdOn;
    return data;
  }
}

class ListHISGetGlassPerscription {
  dynamic projectID;
  String? setupID;
  dynamic patientId;
  dynamic encounterType;
  dynamic encounterNo;
  String? visionType;
  double? rightEyeSpherical;
  dynamic rightEyeCylinder;
  dynamic rightEyeAxis;
  dynamic rightEyePrism;
  dynamic rightEyeVA;
  String? rightEyeRemarks;
  dynamic leftEyeSpherical;
  dynamic leftEyeCylinder;
  dynamic leftEyeAxis;
  dynamic leftEyePrism;
  dynamic leftEyeVA;
  String? leftEyeRemarks;
  dynamic pD;
  dynamic bVD;
  dynamic status;
  bool? isActive;
  String? createdOn;

  ListHISGetGlassPerscription(
      {this.projectID,
      this.setupID,
      this.patientId,
      this.encounterType,
      this.encounterNo,
      this.visionType,
      this.rightEyeSpherical,
      this.rightEyeCylinder,
      this.rightEyeAxis,
      this.rightEyePrism,
      this.rightEyeVA,
      this.rightEyeRemarks,
      this.leftEyeSpherical,
      this.leftEyeCylinder,
      this.leftEyeAxis,
      this.leftEyePrism,
      this.leftEyeVA,
      this.leftEyeRemarks,
      this.pD,
      this.bVD,
      this.status,
      this.isActive,
      this.createdOn});

  ListHISGetGlassPerscription.fromJson(Map<String, dynamic> json) {
    projectID = json['ProjectID'];
    setupID = json['SetupID'];
    patientId = json['PatientId'];
    encounterType = json['EncounterType'];
    encounterNo = json['EncounterNo'];
    visionType = json['VisionType'];
    rightEyeSpherical = json['RightEyeSpherical'];
    rightEyeCylinder = json['RightEyeCylinder'];
    rightEyeAxis = json['RightEyeAxis'];
    rightEyePrism = json['RightEyePrism'];
    rightEyeVA = json['RightEyeVA'];
    rightEyeRemarks = json['RightEyeRemarks'];
    leftEyeSpherical = json['LeftEyeSpherical'];
    leftEyeCylinder = json['LeftEyeCylinder'];
    leftEyeAxis = json['LeftEyeAxis'];
    leftEyePrism = json['LeftEyePrism'];
    leftEyeVA = json['LeftEyeVA'];
    leftEyeRemarks = json['LeftEyeRemarks'];
    pD = json['PD'];
    bVD = json['BVD'];
    status = json['Status'];
    isActive = json['IsActive'];
    createdOn = json['CreatedOn'];
  }

  Map<String?, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ProjectID'] = this.projectID;
    data['SetupID'] = this.setupID;
    data['PatientId'] = this.patientId;
    data['EncounterType'] = this.encounterType;
    data['EncounterNo'] = this.encounterNo;
    data['VisionType'] = this.visionType;
    data['RightEyeSpherical'] = this.rightEyeSpherical;
    data['RightEyeCylinder'] = this.rightEyeCylinder;
    data['RightEyeAxis'] = this.rightEyeAxis;
    data['RightEyePrism'] = this.rightEyePrism;
    data['RightEyeVA'] = this.rightEyeVA;
    data['RightEyeRemarks'] = this.rightEyeRemarks;
    data['LeftEyeSpherical'] = this.leftEyeSpherical;
    data['LeftEyeCylinder'] = this.leftEyeCylinder;
    data['LeftEyeAxis'] = this.leftEyeAxis;
    data['LeftEyePrism'] = this.leftEyePrism;
    data['LeftEyeVA'] = this.leftEyeVA;
    data['LeftEyeRemarks'] = this.leftEyeRemarks;
    data['PD'] = this.pD;
    data['BVD'] = this.bVD;
    data['Status'] = this.status;
    data['IsActive'] = this.isActive;
    data['CreatedOn'] = this.createdOn;
    return data;
  }
}
