<?php
//importation de la librairie nuSOAP
require_once('nusoap/lib/nusoap.php');
// On crée un objet soap server
$server = new soap_server;
//configuration de notre serveur SOAP
$server->configureWSDL('DBMGPWebService', 'DBMGPWebService');
$server->register(
'getListofPatientsGP', // method name
array('codeInami' => 'xsd:string'), // input parameters
array('return' => 'xsd:string'), // output parameters
'urn:DBMGPWebService', // namespace
'urn:DBMGPWebService#getListofPatientsGP', // SOAPAction
'rpc', // style
'encoded'
); // use*/
// Implémentation de la méthode web
// Cette méthode retourne la liste des Code Patient liés au médecin traitant dont le codeInami est
// passé en paramètre
function getListofPatientsGP($codeInami)
{ //return $codeInami;
include ("connexion.php");
// $codeInami=substr($codeInami,0,6);
if ($conn==false)
{throw new soap_fault("Server", "Oracle", "echec connexion");
}
//Procédure stockée
$query = 'BEGIN PKG_MED_EXT.PRC_GetListOfPatientsGP(:codeInami, :message); END;';
//préparer la requête stockée avec oracle et retourner l'identifiant de la requête
$stmt = oci_parse($conn,$query);
//Si problème retourner un msg erreur
if (!$stmt)
{
throw new soap_fault(-1,"failed to prepare query(reason :".oci_error(!$stmt).")");
}
//Associer une variable PHP à une variable SQL Oracle
oci_bind_by_name($stmt,":codeInami",$codeInami,6);
// Créer a new cursor resource
$message = oci_new_cursor($conn);
// Associer la variable curseur $message à l'argumentt correspondnat oracle
oci_bind_by_name($stmt,":message",$message,-1,OCI_B_CURSOR);
// exécution de la requête (de la procédure stockée) si problème msg erreur
if (!oci_execute($stmt))
{
throw new soap_fault(-1,"failed to execute query (reason:".oci_error($stmt).")");
}
// Exécuter le curseur
oci_execute($message);
$cursor = array();
oci_fetch_all($message, $cursor, null, null, OCI_FETCHSTATEMENT_BY_ROW);
include("Deconnexion.php");
return $cursor;
//return new soapval('return', 'xsd:array()',$cursor);
}
//isset renvoie true si la variable est définie sinon renvoie false
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>