/**
  * Récupération des éléments Reponses de l'acquittement
  *
  * @return array
  */
 function getAcquittementReponsesServeurActivitePmsi()
 {
     $xpath = new CHPrimXPath($this);
     $statut = $xpath->queryAttributNode("/hprim:a{$this->acquittement}/hprim:enteteMessage", null, "statut");
     $query = "/hprim:{$this->evenement}/hprim:enteteMessageAcquittement";
     $enteteMessageAcquittement = $xpath->queryUniqueNode($query);
     $observations = array();
     if ($statut == "ok") {
         $d = array();
         $observations[] =& $d;
         $observation = $xpath->queryUniqueNode("hprim:observation", $enteteMessageAcquittement);
         $d['code'] = chunk_split($xpath->queryTextNode("hprim:code", $observation, "", false), 4, ' ');
         $d['libelle'] = $xpath->queryTextNode("hprim:libelle", $observation, "", false);
         $d['commentaire'] = $xpath->queryTextNode("hprim:commentaire", $observation, "", false);
     } else {
         $query = "/hprim:{$this->evenements}/hprim:reponses/*";
         $reponses = $xpath->query($query);
         foreach ($reponses as $_reponse) {
             $d = array();
             $observation = $xpath->queryUniqueNode("hprim:observations/hprim:observation", $_reponse);
             $d['code'] = chunk_split($xpath->queryTextNode("hprim:code", $observation, "", false), 4, ' ');
             $d['libelle'] = $xpath->queryTextNode("hprim:libelle", $observation, "", false);
             $d['commentaire'] = $xpath->queryTextNode("hprim:commentaire", $observation, "", false);
             $observations[] = $d;
         }
     }
     return $observations;
 }
 /**
  * Sauvegarde des INSC
  *
  * @param CPatient $patient Patient
  * @param DOMNode  $node    Elément NumeroIdentifiantSante
  *
  * @return void
  */
 function storeINSC(CPatient $patient, DOMNode $node)
 {
     $xpath = new CHPrimXPath($node->ownerDocument);
     $list_insc = $xpath->query("insC", $node);
     $insc = new CINSPatient();
     $insc->type = "C";
     $insc->patient_id = $patient->_id;
     foreach ($list_insc as $_insc) {
         $ins = $xpath->queryTextNode("valeur", $_insc);
         $date = $xpath->queryTextNode("dateEffet", $_insc);
         if (!$ins) {
             continue;
         }
         $insc->ins_patient_id = null;
         $insc->date = null;
         $insc->provider = null;
         $insc->ins = $ins;
         $insc->loadMatchingObject();
         if ($insc->date < $date) {
             $insc->date = $date;
             $insc->provider = $this->_ref_sender->nom;
         }
         $insc->store();
     }
 }
 /**
  * Mapping des actes NGAP
  *
  * @param DOMNode $node Node
  * @param array   $data Datas
  *
  * @return array
  */
 function mappingActeNGAP(DOMNode $node, $data)
 {
     $xpath = new CHPrimXPath($node->ownerDocument);
     $acteNGAP = array();
     $acteNGAP["code"] = $xpath->queryTextNode("hprim:lettreCle", $node);
     $acteNGAP["coefficient"] = $xpath->queryTextNode("hprim:coefficient", $node);
     $acteNGAP["quantite"] = $xpath->queryTextNode("hprim:quantite", $node);
     $acteNGAP["date"] = $xpath->queryTextNode("hprim:execute/hprim:date", $node);
     $acteNGAP["heure"] = $xpath->queryTextNode("hprim:execute/hprim:heure", $node);
     $acteNGAP["numero_dent"] = $xpath->queryTextNode("hprim:positionDentaire", $node);
     $acteNGAP["comment"] = $xpath->queryTextNode("hprim:commentaire", $node);
     $acteNGAP = array_merge($acteNGAP, $this->getMontant($node));
     $minoration = $xpath->queryUniqueNode("hprim:minorMajor/hprim:minoration", $node);
     $acteNGAP["minor_pct"] = $xpath->queryTextNode("hprim:pourcentage", $minoration);
     $acteNGAP["minor_coef"] = $xpath->queryTextNode("hprim:coefficient", $minoration);
     $majoration = $xpath->queryUniqueNode("hprim:minorMajor/hprim:majoration", $node);
     $acteNGAP["major_pct"] = $xpath->queryTextNode("hprim:pourcentage", $majoration);
     $acteNGAP["major_coef"] = $xpath->queryTextNode("hprim:coefficient", $majoration);
     $acteNGAP["facturable"] = $xpath->queryAttributNode(".", $node, "facturable");
     $acteNGAP["rapportExoneration"] = $xpath->queryAttributNode(".", $node, "rapportExoneration");
     $acteNGAP["executionNuit"] = $xpath->queryAttributNode(".", $node, "executionNuit");
     $acteNGAP["executionDimancheJourFerie"] = $xpath->queryAttributNode(".", $node, "executionDimancheJourFerie");
     $medecin = $xpath->query("hprim:prestataire/hprim:medecins/hprim:medecin", $node);
     $mediuser_id = $this->getMedecin($medecin->item(0));
     $idSourceActeNGAP = $this->getIdSource($node, false);
     $idCibleActeNGAP = $this->getIdCible($node, false);
     $action = $xpath->queryAttributNode(".", $node, "action");
     return array("idSourceIntervention" => $data['idSourceIntervention'], "idCibleIntervention" => $data['idCibleIntervention'], "idSourceActeNGAP" => $idSourceActeNGAP, "idCibleActeNGAP" => $idCibleActeNGAP, "action" => $action, "acteNGAP" => $acteNGAP, "executant_id" => $mediuser_id);
 }
 /**
  * Récupération des observations de l'acquittement patient
  *
  * @return array
  */
 function getAcquittementObservationPatients()
 {
     $xpath = new CHPrimXPath($this);
     $statut = $xpath->queryAttributNode("/hprim:acquittementsPatients/hprim:enteteMessageAcquittement", null, "statut");
     $query = "/hprim:acquittementsPatients/hprim:enteteMessageAcquittement";
     $enteteMessageAcquittement = $xpath->queryUniqueNode($query);
     $observations = array();
     if ($statut == "OK") {
         $d = array();
         $observations[] =& $d;
         $observation = $xpath->queryUniqueNode("hprim:observation", $enteteMessageAcquittement);
         $d['code'] = chunk_split($xpath->queryTextNode("hprim:code", $observation, "", false), 4, ' ');
         $d['libelle'] = $xpath->queryTextNode("hprim:libelle", $observation, "", false);
         $d['commentaire'] = $xpath->queryTextNode("hprim:commentaire", $observation, "", false);
     } else {
         $query = "/hprim:acquittementsPatients/hprim:erreursAvertissements/*";
         $erreursAvertissements = $xpath->query($query);
         foreach ($erreursAvertissements as $erreurAvertissement) {
             $d = array();
             $observation = $xpath->queryUniqueNode("hprim:observations/hprim:observation", $erreurAvertissement);
             $d['code'] = chunk_split($xpath->queryTextNode("hprim:code", $observation, "", false), 4, ' ');
             $d['libelle'] = $xpath->queryTextNode("hprim:libelle", $observation, "", false);
             $d['commentaire'] = $xpath->queryTextNode("hprim:commentaire", $observation, "", false);
             $observations[] = $d;
         }
     }
     return $observations;
 }
 function getTypeEvenementPatient()
 {
     $xpath = new CHPrimXPath($this);
     $evenementPatient = $xpath->query("/hprim:evenementsPatients/hprim:evenementPatient/*");
     $type = null;
     $evenements = CHPrimXMLEventPatient::$evenements;
     foreach ($evenementPatient as $_evenementPatient) {
         if (array_key_exists($_evenementPatient->tagName, $evenements)) {
             $type = $_evenementPatient->tagName;
         }
     }
     return $type;
 }