-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroot.php
113 lines (100 loc) · 5.96 KB
/
root.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
session_start();
ini_set( 'display_errors', 0 );
include 'RandomWalk.php';
include 'functions.php';
// recupere les cui de la variable globale
$cui_array = $_SESSION["TableResultaCui"] ;
$rela_array= $_SESSION["TableResultRela"] ;
foreach ($_SESSION["TableResultaCui"] as $fields) {
$array_temp=to_root($fields['code'],$_SESSION["sab"],$_SESSION["parametre"] );
if(!empty($array_temp[0]))
{
unset($array_temp1); unset($final_temp);
$array_temp1=$array_temp[0];
$final_temp= array_merge($cui_array,$array_temp1);
$cui_array = unique_multidim_array($final_temp,"code");
// contient l'extention vers la racine
}
if(!empty($array_temp[1]))
{
unset($array_temp1); unset($final_temp);
$array_temp1=$array_temp[1];
$final_temp= array_merge($rela_array,$array_temp[1]);
$rela_array = unique_multidim_rela_array($final_temp);
// il faut faire quelque chose pour que le tableau soit unique
}
}
$_SESSION["TableResultaCui_r"] = $cui_array;
$_SESSION["TableResultRela_r"]= $rela_array;
// changer les tableau en jason avnt de les retourner a l'appel jquery du boutton
echo json_encode(array($cui_array,$rela_array));
// fonction qui permet de retrouver l'ensemble des cui jusqu'a la racine
function to_root($cui, $sab, $pram){
$conn = db();
$root_array=[];
$root_array_rela=[];
$cui_prec=$cui;
// retrouver la racine en utilisant la table mrhier
$sql = "SELECT PTR FROM umls.mrhier where CUI like '".$cui."' and ".$sab." LIMIT 1 ";
$result = $conn->query($sql);
if ($result->num_rows > 0){
while($row = $result->fetch_assoc()) {
$auis = explode(".", $row['PTR']);
$auis=array_reverse($auis);
// il faudrait inversé l'exploide (le tableau)
}
// parcourir la racine retrouvé pour extraire les cui un par un de chaque aui
// parcourir le nouveau table a l'enver pour rerouver les cui ainsi que la relation entre le cui precedent et suivant
foreach ($auis as $value){
$sqlaui = "SELECT cui,str FROM umls.mrconso where (ts='P' and stt='PF') and (aui like '".$value."') and ".$sab." limit 1; ";
$resultaui = $conn->query($sqlaui);
if ($resultaui->num_rows > 0){
while($rowaui = $resultaui->fetch_assoc()) {
$root_array[]=array (
"code" => $rowaui['cui'],
"desc" => $rowaui['str'],
"degree" => 0,
"co-occur" => 0
); //recherche la relation qui existe entre le cui retrouver et les precedant
//$sqlrela = "SELECT rel,rela FROM umls.mrrel force index(X_MRREL_CUI1,X_MRREL_CUI2) where cui1 = '".$cui_prec."' and cui2 = '".$rowaui['cui']."' and ".$sab." and (cui1 <> cui2) limit 1";
// $sqlrela = "SELECT rel,rela FROM umls.mrrel force index(X_MRREL_CUI1,X_MRREL_CUI2) where cui1 = '".$cui_prec."' and cui2 = '".$rowaui['cui']."'";
$sqlrela = "select rel,rela from umls.mrrel force index(X_MRREL_CUI1,X_MRREL_CUI2) where (".$pram." ) and (".sab." )and cui1 = '".$cui_prec."' and cui2 = '".$rowaui['cui']."' AND (rela is not null) group by cui1,cui2,rel,rela ";
$resultrela = $conn->query($sqlrela);
if ($resultrela->num_rows > 0){
while($rowrela = $resultrela->fetch_assoc()) {
$root_array_rela[]=array (
"concept_1" => $cui_prec,
"concept_2" => $rowaui['cui'],
"rel" => $rowrela['rel'],
"rela" => $rowrela['rela'] );
//[$cui_prec,$rowaui['cui'],$rowrela['rel'],$rowrela['rela']];
$cui_prec =$rowaui['cui'];
}
}else{
$sqlrela = "select rel,rela from umls.mrrel force index(X_MRREL_CUI1,X_MRREL_CUI2) where (".$pram." ) and (".sab." )and cui1 = '".$cui_prec."' and cui2 = '".$rowaui['cui']."' group by cui1,cui2,rel,rela ";
$resultrela = $conn->query($sqlrela);
if ($resultrela->num_rows > 0){
while($rowrela = $resultrela->fetch_assoc()) {
$root_array_rela[]=array (
"concept_1" => $cui_prec,
"concept_2" => $rowaui['cui'],
"rel" => $rowrela['rel'],
"rela" => $rowrela['rela'] );
//[$cui_prec,$rowaui['cui'],$rowrela['rel'],$rowrela['rela']];
$cui_prec =$rowaui['cui'];
}
}
}
}
}
}
return array($root_array,$root_array_rela);
// to export after $root_array_rela,
}
}