<?php

//treba da napravim da mi vraca rec oznacenu na osnovu prvih 1408 anamneza
//a da pustim da sam oznaci ostale
//i da pritom izracuna koliko posto je oznacio po anamnezi
//i da izracunam koliko ukupno reci ima, pa tu procenat oznacenih i neoznacenih

//M0 na osnovu stop reci, dijagnoza i lekova
//M1 na osnovu nasih resursa ne racunajuci gresku
//M2 na osnovu nasih resursa racunajuci gresku i ako ne obelezi traziti preko kosinus similaritija rec koja je najslicnija i probati ispravku na dijakriticke simbole
//probati ispravku dijakritickog i oznacavanje sa najslicnijom i ngram videti sta daje i automatsko znacavanje brojeva svuda

function konvertujOznaku($res, $broj)
{
    if($broj>20)
    {
        $broj=($broj - ($broj%10))/10;
    }
    switch($broj)
    {
        case -1:$oznaka=1; break;//oznacen nemedicinski
        case 0: $oznaka=0; break;//neoznacen
        case 1:$oznaka=2;break; //oznacen medicinski
        case 2:$oznaka=2; break;
        case 3: $oznaka=2;break;
        case 4:$oznaka=2;break;
        case 5:$oznaka=2;break;
        case 6: $oznaka=1;break;
        case 7:$oznaka=1;break;
        case 8:$oznaka=2;break;
        case 9: $oznaka=1;break;
        case 10:$oznaka=1;break;
        case 11:$oznaka=2;break;
        case 12: $oznaka=1;break;
        case 13:$oznaka=2;break;
        case 14:$oznaka=1;break;
        case 15:$oznaka=1; break;
        case 16: $oznaka=1;break;
        case 17:$oznaka=1;break;
        case 18:$oznaka=2;break;
        case 20:$oznaka=2;break;
    }
    if($broj==19 && $res==0) $oznaka=2;
    if($broj==19 && $res==1) $oznaka=0;
    return $oznaka;
}


function zameni_slovo($rec, $slovo, $zamena)
{
   $recr=$rec;
    if(strpos($rec, $slovo)>=0)
    {
   $recr = str_replace($slovo,$zamena,$rec);
  // echo $recr."<br/>";
    }
  return $recr;
}

function zameni_jedan_dijakriticki_i_klasifikuj($rec)
{
    $oznake["oznaka"]=0; $oznake["skracenica"]=0; $oznake["tudjica"]=0;
    $slova = array("dj", "c","c", "s", "z");
    $zamene = array("dx", "cx","cy", "sx", "zx");
    $i=0;
    while($oznake["oznaka"]==0 && $i<5)
    {
    $recr = zameni_slovo($rec, $slova[$i], $zamene[$i]);
    if($recr!=$rec)
    {
        $oznake=oznaci_rec_na_osnovu($recr);
    }
    $i++;
    }
    return $oznake;
}

function zameni_sve_dijakriticki_i_klasifikuj($rec)
{
    $oznake["oznaka"]=0;$oznake["skracenica"]=0; $oznake["tudjica"]=0;
    $slova = array("dj", "c","c", "s", "z");
    $zamene = array("dx", "cx","cy", "sx", "zx");
    $i=0;
    while($oznake["oznaka"]==0 && $i<5)
    {
    $recr = zameni_slovo($rec, $slova[$i], $zamene[$i]);
    if($recr!=$rec)
    {
        $oznake=oznaci_rec_na_osnovu($recr);
        $rec=$recr;
    }
    $i++;
    }
    return $oznake;
}


/*
$nizz=zameni_jedan_dijakriticki_i_klasifikuj("izvestaj");
echo $nizz["oznaka"];
$nizz=zameni_jedan_dijakriticki_i_klasifikuj("djcsz");
echo $nizz["oznaka"];*/

function oznaci_rec_na_osnovu($rec)
{
    $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
       
  $sql = "SELECT `oznaka`,`skracenica`,`tudjica` FROM `oznaceno_morbili` where `id_anamneze`<1409 and rec like '".$rec."' and tip_greske = 0  and skracenica = 0  limit 1";
  $result = $conn->query($sql);  
  if ($result->num_rows > 0) {
   
    while($row = $result->fetch_assoc()) {
      $niz['oznaka']=$row["oznaka"];
      $niz['oznaka']= konvertujOznaku(1,$niz['oznaka']);
      $niz['skracenica']=$row["skracenica"];
     // $niz['ispravka']=$row["ispravka"];
      $niz['tudjica']=$row["tudjica"];
    }
    return $niz;
  }
   else 
      {
         
        $niz['oznaka']=0;
      $niz['skracenica']=0;
      $niz['tudjica']=0;
      return $niz;
      }}
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      
  }
   
}


function oznaci_rec_na_osnovu_dela($rec)
{
    $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
       
  $sql = "SELECT `oznaka`,`skracenica`,`tudjica` FROM `oznaceno_morbili` where `id_anamneze`<1409 and rec like '".$rec."%' and tip_greske = 0  and skracenica = 0  limit 1";
  $result = $conn->query($sql);  
  if ($result->num_rows > 0) {
   
    while($row = $result->fetch_assoc()) {
      $niz['oznaka']=$row["oznaka"];
      $niz['oznaka']= konvertujOznaku(1,$niz['oznaka']);
      $niz['skracenica']=$row["skracenica"];
     // $niz['ispravka']=$row["ispravka"];
      $niz['tudjica']=$row["tudjica"];
    }
    return $niz;
  }
   else 
      {
         
        $niz['oznaka']=0;
      $niz['skracenica']=0;
      $niz['tudjica']=0;
      return $niz;
      }}
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      
  }
   
}

function select_stop_words($letter)
{
     $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
       
  $sqlstop = "SELECT naziv FROM stop_rec_dist2 where naziv like '".$letter."%'";
  $resultstop = $conn->query($sqlstop);  
  if ($resultstop->num_rows > 0) {
   
    while($row = $resultstop->fetch_assoc()) {
      $stopreci[$i]=$row["naziv"];
      $i++;
    }
    return $stopreci;
  }
   else
      {
          echo "Zero rows!";
      }}
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      
  }
   
}

function select_skracenice($rec)
{
     $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
       
  $sqlskr = "SELECT oznaka FROM skracenice where skracenica like '".$rec."' and licna=0 limit 1";
  $resultskr = $conn->query($sqlskr);  
  if ($resultskr->num_rows > 0) {
   
    while($row = $resultskr->fetch_assoc()) {
       $niz['oznaka']=$row['oznaka'];
      $niz['skracenica']=0;
      $niz['tudjica']=0;
     
      
    }
     return $niz;
  }
   else
      {
          $niz['oznaka']=0;
      $niz['skracenica']=0;
      $niz['tudjica']=0;
       return $niz;
      }}
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      return null;
  }
   
}

function oznaka_uporedi($id, $rec)
{
    $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
       
  $sql = "SELECT oznaka FROM oznaceno_morbili where id_anamneze=".$id." and rec like '".$rec."'";
  $result = $conn->query($sql);  
  if ($result->num_rows > 0) {
   
    while($row = $result->fetch_assoc()) {
      $oznaka=$row["oznaka"];
      $oznaka = konvertujOznaku(1,$oznaka);
    }
    return $oznaka;
  }
   else
      {
          return null;
      }}
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      
  }
}

function zameni_sounds($rec)
{
     $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
       
  $sql = "SELECT oznaka FROM oznaceno_morbili where `id_anamneze`<1409 and rec sounds like '".$rec."' and tip_greske = 0  and skracenica = 0  limit 1";
  $result = $conn->query($sql);  
  if ($result->num_rows > 0) {
   
    while($row = $result->fetch_assoc()) {
      $oznaka=$row["oznaka"];
       $oznaka = konvertujOznaku(1,$oznaka);
    }
    return $oznaka;
  }
   else
      {
          return null;
      }}
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      
  }
}

function oznaci($id,$tekst)
{
//podela na reci
//za svaku rec pitaj da li je broj
//da li je stop rec
//da li je ima u diskretizovanim recima bez ispravke, ako je ima koja je oznaka i vratiti oznaku na osnovu broja
//automatski odrediti negaciju i opseg
if(!$tekst)
{
$original = strtolower($_POST['tekst']);
}
else
{
   $original = $tekst;
}
$string = trim(preg_replace('/\s\s+/', '-', $original));
$anamneza0 = str_replace(' ', '-', $string);
$anamneza6 = str_replace(',', '-', $anamneza0);
$anamneza7 = str_replace('.', '-', $anamneza6);
//$string1=trim(preg_replace("/[^A-Za-z\-0-9,.]/", "", $anamneza0));
$string1=trim(preg_replace("/[^A-Za-z\-0-9]/", "", $anamneza7));
$anamneza5 = str_replace('-', ' ', $string1);
$string = trim(preg_replace('/\s\s+/', ' ', $anamneza5));
//$anamneza6 = str_replace(',', '/ ', $anamneza5);
//$anamneza7 = str_replace('.', '/ ', $anamneza6);
$reci = explode(" ",$string);
$i=0;

$conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "<table border='1'><tr><th>Reč</th><th>Oznaka</th><th>Oznaka stvarna</th><th>Skraćenica</th><th>Tuđica</th></tr>"; $j=0;$k=0;
while($i<count($reci))
{
            $dija=false;$dobro=false;

   $isn=is_numeric($reci[$i]);
   $oznake = oznaci_rec_na_osnovu($reci[$i]);
    if($isn && $oznake["oznaka"]==0)
    {
        $oznake["oznaka"]=1; $oznake["skracenica"]=0; $oznake["tudjica"]=0;
    }
   
                        
             if(strlen($reci[$i])<4 && $oznake["oznaka"]==0)
                {
                 $oznake = select_skracenice($reci[$i]);
                 if($oznake["oznaka"]>0)
                    {
                    $dobro = true;
                    }
                }         
 
                         
    if($oznake["oznaka"]==0)
    {
        $oznake=zameni_jedan_dijakriticki_i_klasifikuj($reci[$i]);
        
        if($oznake["oznaka"]==0)
        {
            $oznake=zameni_sve_dijakriticki_i_klasifikuj($reci[$i]);
        }
        else
        {
            $dobro = true;
        }
        if($oznake["oznaka"]!=0)
        {
            $dobro = true;
        }
        else
        {
         
                $oznake["oznaka"]=zameni_sounds($reci[$i]);
                if($oznake["oznaka"]>0)
                {
                $dobro = true;
                }
                
                 if($oznake["oznaka"]==0)
                 {
                $oznake = oznaci_rec_na_osnovu_dela($reci[$i]);
                 if($oznake["oznaka"]>0)
                    {
                    $dobro = true;
                    }
                 }  
            }
            
        }
            
        
    

                    //}
   $stvarna=oznaka_uporedi($id, $reci[$i]);
    if ($oznake["oznaka"]!=0)
    {
        $j++;
    }
    if($oznake["oznaka"]==$stvarna && $stvarna!=0)
    { 
        $k++;
    
    if(!$dobro)
    {
    echo "<tr style='background-color:LightBlue'><td>".$reci[$i]."</td><td>".$oznake["oznaka"]."</td><td>".$stvarna."</td><td>".$oznake["skracenica"]."</td><td>".$oznake["tudjica"]."</td></tr>";
   }
   else{
       echo "<tr style='background-color:LightGreen'><td>".$reci[$i]."</td><td>".$oznake["oznaka"]."</td><td>".$stvarna."</td><td>".$oznake["skracenica"]."</td><td>".$oznake["tudjica"]."</td></tr>";
   }
    }
    else
    {
         echo "<tr style='background-color:Red'><td>".$reci[$i]."</td><td>".$oznake["oznaka"]."</td><td>".$stvarna."</td><td>".$oznake["skracenica"]."</td><td>".$oznake["tudjica"]."</td></tr>";
    }
    
     //u bazu upis 
   $sql="INSERT INTO metoda_M2 (id_anamneze, rec, oznaka_M2, oznaka_konvertovana) VALUES ('".$id."', '".$reci[$i]."', '".$oznake["oznaka"]."', '".$stvarna."')";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}
    $i++;
    
}
$m=($j/count($reci))*100;
echo "Oznaceno je ".$m."% reči.";
$n=($k/count($reci))*100;
echo "Dobro je oznaceno ".$n."% reči.";
$vrati["oznaceno"]=$j;
$vrati["dobro"]=$k;
$vrati["ukupno"]=count($reci);
$conn->close(); 
return $vrati;
}

function oznaci_anamneze_m2($id)
{
     $conn = mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_ehealth");
   if (!mysqli_connect_errno())
   {
      
  $sql = "SELECT id, anamneza FROM morbili_new2 where id>".$id." and id < 2113";
  $result = $conn->query($sql);
$sumaOznaceno =0; $sumaUkupno=0; $sumaDobro=0;
if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
         echo "<br/>Anamneza ".$row['id']."<br/>";
        $vrati1 = oznaci($row['id'], $row['anamneza']);
$sumaOznaceno+=$vrati1["oznaceno"];
$sumaUkupno+=$vrati1["ukupno"];
$sumaDobro+=$vrati1["dobro"];
    }
    $procenat=$sumaOznaceno/$sumaUkupno;
    $procenatD=$sumaDobro/$sumaOznaceno;
    echo "<br/>Oznacenih reci ".$sumaOznaceno."<br/>";
    echo "Ukupno reci ".$sumaUkupno."<br/>";
    echo "Procenat oznacenih ".$procenat."<br/>";
    echo "Procenat dobro oznacenih ".$procenatD."<br/>";
        echo "Broj dobro oznacenih ".$sumaDobro."<br/>";

  }
   }
  else
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      
  }
   
}



oznaci_anamneze_m2(1408);
?>



