/** * 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(); } }
/** * Récupère les INS du patient * * @param DOMNode $node PID3 * @param CPatient $patient Patient * * @return void */ function getINS(DOMNode $node, CPatient $patient) { if (!$patient->_id) { return; } $list_ins = $this->query("PID.3[CX.5[text() = 'INS-C' or text() = 'INS-A']]", $node); $ins = new CINSPatient(); $ins->patient_id = $patient->_id; foreach ($list_ins as $_ins) { $ins->ins_patient_id = null; $ins->date = null; $ins->provider = null; $valeur = $this->queryTextNode("CX.1", $_ins); $date = $this->queryTextNode("CX.7", $_ins); $type = $this->queryTextNode("CX.5", $_ins); if (!$valeur) { continue; } $type = substr($type, -1); $ins->ins = $valeur; $ins->type = $type; $ins->loadMatchingObject(); if ($date && $ins->date < $date) { $ins->date = CMbDT::dateTime($date); $ins->provider = $this->_ref_sender->nom; } $ins->store(); } }