<?php
error_reporting(0);
include "../includes/config/config.php";
include "functions.php";
include 'log_entry.php';
$patientsList_array =array();
$patient_array = array();
$medicine_array = array();
$medicine_array_ext = array();

$page = $limit = $search="";


$page = $_GET['_page'];
$limit = $_GET['_limit'];
$search =  $_REQUEST['_search'];

$sql_opd = "SELECT b.patient_name,b.emp_code,b.father_name,b.gender,b.employer_contractor_id,b.designation_id,b.dept_id,b.dob,a.* FROM employee_appointment a left join  patient_master b on b.id = a.emp_id WHERE a.attended_status= 'DRP' and a.appointment_type= 'I'";


if (!empty($limit)) {
    $sql_opd .= "ORDER BY a.appointment_id DESC LIMIT $page , $limit";
}
    
    if (!empty($search)) {
        $sql_opd .= "and ( b.patient_name like '%$search%' or b.emp_code like '%$search%')"; 
    }
      


error_log("OPD::" .$sql_opd);
$fetch_patients = mysqli_query($conn, $sql_opd) or die(mysqli_error($conn));
$count = 1;
while ($row_patients = mysqli_fetch_assoc($fetch_patients)) {
    $patient_array['count'] = $count++;
    $age = isset($row_patients['dob']) ? date_diff(date_create($row_patients['dob']), date_create('today'))->y : "Not Available";
    $patient_array['appointment_id'] = $row_patients['appointment_id'];
    if ($row_patients['IsEmergency'] == 1) {

                $patient_array['ans'] = "Yes";
            } else {

                $patient_array['ans'] = "No";
            }
    $patient_array['employer_contractor'] = getTableFieldValue('employer_contractor', 'employer_contractor_name', 'id', $row_patients['employer_contractor_id'], '');
    $patient_array['designation'] = getTableFieldValue('designation', 'designation_name', 'designation_id', $row_patients['designation_id'], '');
    $patient_array['dept'] = getTableFieldValue('department', 'dept_name', 'dept_id', $row_patients['dept_id'], '');  
    $patient_array['patient_name'] = $row_patients['patient_name'];
    $patient_array['emp_code'] = $row_patients['emp_code'];
    $patient_array['father_name'] = $row_patients['father_name'];
    $patient_array['gender'] = $row_patients['gender'];
    $patient_array['ticket_no'] = $row_patients['ticket_no'];
    $patient_array['incident_location'] = $row_patients['incident_location'];
    $patient_array['remarks_rece'] = $row_patients['remarks_rece'];
    $patient_array['bp_sbp'] = $row_patients['bp_sbp'];
    $patient_array['bp_dbp'] = $row_patients['bp_dbp'];
    // $patient_array['pulse'] = $row_patients['pulse'];
    $patient_array['temperature'] = $row_patients['temperature'];
    $patient_array['spo2_percent'] = $row_patients['spo2_percent'];
    $patient_array['blood_sugar_rbs'] = $row_patients['blood_sugar_rbs'];
    $patient_array['blood_sugar_fbs'] = $row_patients['blood_sugar_fbs'];
    $patient_array['blood_sugar_ppbs'] = $row_patients['blood_sugar_ppbs'];
    $patient_array['remarks_rece'] = $row_patients['remarks_rece'];
    $patient_array['followup_to_opd'] = $row_patients['followup_to_opd'];
    $patient_array['injury_cause'] = $row_patients['injury_cause'];
    $patient_array['injury_procedure'] = $row_patients['injury_procedure'];
    // $patient_array['appointment_date'] = $row_patients['appointment_date'];
    $patient_array['injury_time'] = date_format(date_create($row_patients['injury_time']), "d-M-Y h:i:sa");;
    $patient_array['dept'] = getTableFieldValue('department', 'dept_name', 'dept_id', $rows_patients['dept'], '');
    $patient_array['remarks'] = $row_patients['remarks'];
    $patient_array['followup_to_opd'] = $row_patients['followup_to_opd'];
    $patient_array['followup'] = $row_patients['followup'];
    $patient_array['additional_recommendations'] = nl2br($row_patients['external_treatments']);
    
    $patient_array['dob'] = (string)$age;
    $patient_array['appointment_date'] = date_format(date_create($row_patients['appointment_date']), "d-M-Y h:i:sa");
    $complaints_ids = $row_patients['complaints'];
    $complaints_ids_array = array();
    $complaints_ids_array = explode(",", $complaints_ids);
    $patient_array['complaints'] = "";
    for ($i = 0; $i < count($complaints_ids_array); $i++) {
        if ($i == 0) {
            $patient_array['complaints'] = getTableFieldValue('complaints', 'complaint', 'complaint_id', $complaints_ids_array[$i]);
        } else {
            $patient_array['complaints'] = $patient_array['complaints'] . "," . getTableFieldValue('complaints', 'complaint', 'complaint_id', $complaints_ids_array[$i]);
        }
    }
    $findings_ids = $row_patients['examination_remarks'];
    $findings_ids_array = array();
    $findings_ids_array = explode(",", $findings_ids);
    $patient_array['examination_remarks'] = "";
    for ($i = 0; $i < count($findings_ids_array); $i++) {
        if ($i == 0) {
            $patient_array['examination_remarks'] = getTableFieldValue('examination_findings', 'examination_finding', 'id', $findings_ids_array[$i]);
        } else {
            $patient_array['examination_remarks'] = $patient_array['examination_remarks'] . "," . getTableFieldValue('examination_findings', 'examination_finding', 'id', $findings_ids_array[$i]);
        }
    }

    $ailment_names_ids = $row_patients['ailments_new'];
    $ailment_names_ids_array = array();
    $ailment_names_ids_array = explode(",", $ailment_names_ids);
    $patient_array['diagnosis'] = "";
    for ($i = 0; $i < count($ailment_names_ids_array); $i++) {
        if ($i == 0) {
            $patient_array['diagnosis'] = getTableFieldValue('ailment', 'ailment_name', 'ailment_id', $ailment_names_ids_array[$i]);
        } else {
            $patient_array['diagnosis'] = $patient_array['diagnosis'] . "," . getTableFieldValue('ailment', 'ailment_name', 'ailment_id', $ailment_names_ids_array[$i]);
        }
    }

    $injury_type_ids = $row_patients['injury_types_new'];
    $injury_type_ids_array = array();
    $injury_type_ids_array = explode(",", $injury_type_ids);
    $patient_array['injury_types_new'] = "";
    for ($i = 0; $i < count($injury_type_ids_array); $i++) {
        if ($i == 0) {
            $patient_array['injury_types_new'] = getTableFieldValue('injury_type', 'injury_type_name', 'injury_type_id', $injury_type_ids_array[$i]);
        } else {
            $patient_array['injury_types_new'] = $patient_array['injury_types_new'] . "," . getTableFieldValue('injury_type', 'injury_type_name', 'injury_type_id', $injury_type_ids_array[$i]);
        }
    }
    $injury_class_ids = $row_patients['injury_classes_new'];
    $injury_class_ids_array = array();
    $injury_class_ids_array = explode(",", $injury_class_ids);
    $patient_array['injury_classes_new'] = "";
    for ($i = 0; $i < count($injury_class_ids_array); $i++) {
        if ($i == 0) {
            $patient_array['injury_classes_new'] = getTableFieldValue('injury_class', 'inj_class_name', 'inj_class_id', $injury_class_ids_array[$i]);
        } else {
            $patient_array['injury_classes_new'] = $patient_array['injury_classes_new'] . "," . getTableFieldValue('injury_class', 'inj_class_name', 'inj_class_id', $injury_class_ids_array[$i]);
        }
    }
    $injury_parts_ids = $row_patients['injury_parts_new'];
    $injury_parts_ids_array = array();
    $injury_parts_ids_array = explode(",", $injury_parts_ids);
    $patient_array['injury_parts_new'] = "";
    for ($i = 0; $i < count($injury_parts_ids_array); $i++) {
        if ($i == 0) {
            $patient_array['injury_parts_new'] = getTableFieldValue('injury_part', 'inj_name', 'inj_id', $injury_parts_ids_array[$i]);
        } else {
            $patient_array['injury_parts_new'] = $patient_array['injury_parts_new'] . "," . getTableFieldValue('injury_part', 'inj_name', 'inj_id', $injury_parts_ids_array[$i]);
        }
    }

    $patient_array['medicines'] = array();

    $patient_array['medicines_ext'] = array();

    $fetch_medicines = mysqli_query($conn, "SELECT 
        item_id,
        frequency_id,
        for_days,item_qty,issued_qty,dosage,dosage_category_id,timing_id 
     FROM treatment 
     WHERE appointment_id = ".$row_patients['appointment_id'].""
   ) or die(mysqli_error($conn));
    $count=1;

    while ($row_medicines = mysqli_fetch_assoc($fetch_medicines)) {
        $medicine_array['dose']=$count++;
        $medicine_array['item_id']=(int)$row_medicines['item_id'];
        $medicine_array['item_name']=getItemWithFormName($row_medicines['item_id']);
        $medicine_array['frequency_id']=getTableFieldValue('medicine_frequency', 'frequency_description', 'frequency_id', $row_medicines['frequency_id'], '');
        $medicine_array['for_days']=$row_medicines['for_days'];
        $medicine_array['item_qty']=$row_medicines['item_qty'];
        $medicine_array['issued_qty']=$row_medicines['issued_qty'];
        $medicine_array['dosage']=$row_medicines['dosage'];
        $medicine_array['dosage_category_id']=getTableFieldValue('dosage_category','dosage_category','dosage_category_id',$row_medicines['dosage_category_id']);
        $medicine_array['timing_id']=getTableFieldValue('medicine_timings', 'timing_description', 'timing_id', $row_medicines['timing_id']);
        array_push($patient_array['medicines'],$medicine_array);
    }

    $fetch_medicines_ext = mysqli_query($conn, "SELECT 
        item_name,
        frequency,
        for_days,item_qty,dosage,dosage_category_id,timing 
     FROM treatment_external 
     WHERE appointment_id = ".$row_patients['appointment_id'].""
   ) or die(mysqli_error($conn));
    $count=1;

    while ($row_medicines = mysqli_fetch_assoc($fetch_medicines)) {
        $medicine_array_ext['id']=$count++;
        $medicine_array_ext['frequency']=$row_medicines_ext['frequency'];
        $medicine_array_ext['for_days']=$row_medicines_ext['for_days'];
        $medicine_array_ext['item_qty']=$row_medicines_ext['item_qty'];
        $medicine_array_ext['dosage']=$row_medicines_ext['dosage'];
        $medicine_array_ext['dosage_category_id']=getTableFieldValue('dosage_category','dosage_category','dosage_category_id',$row_medicines_ext['dosage_category_id']);
        $medicine_array_ext['timing']=$row_medicines_ext['timing'];
        array_push($patient_array['medicines_ext'],$medicine_array_ext);
    }

    array_push($patientsList_array,$patient_array);
}

$jsonData = json_encode($patientsList_array, JSON_PRETTY_PRINT);


echo $jsonData; 

?>