Example #1
0
<?php

/* $Id $ */
/**
 * @package Mediboard
 * @subpackage sip
 * @version $Revision: 19269 $
 * @author SARL OpenXtrem
 * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 */
CCanDo::checkAdmin();
$receiver = new CDestinataireHprim();
$receivers = $receiver->loadMatchingList();
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("receivers", $receivers);
$smarty->display("configure.tpl");
Example #2
0
 if ($sejour->_ref_prescripteurs) {
     $sejour->loadRefsPrescripteurs();
 }
 $sejour->loadRefAdresseParPraticien();
 $sejour->_ref_patient->loadRefsFwd();
 $sejour->loadRefsActes();
 foreach ($sejour->_ref_actes_ccam as $actes_ccam) {
     $actes_ccam->loadRefPraticien();
 }
 $sejour->loadRefsAffectations();
 $sejour->loadNDA();
 $sejour->loadLogs();
 $sejour->loadRefsConsultations();
 $sejour->loadRefsConsultAnesth();
 $sejour->_ref_last_log->type = "create";
 $dest_hprim = new CDestinataireHprim();
 $dest_hprim->message = "patients";
 $dest_hprim->loadMatchingObject();
 if (!$sejour->_NDA) {
     $nda = new CIdSante400();
     //Paramétrage de l'id 400
     $nda->object_class = "CSejour";
     $nda->object_id = $nda->_id;
     $nda->tag = $dest_hprim->_tag_sejour;
     $nda->loadMatchingObject();
     $sejour->_NDA = $nda->id400;
 }
 if (CAppUI::conf("sip send_sej_pa") && $sejour->_etat != "preadmission") {
     continue;
 }
 if (CAppUI::conf("sip sej_no_numdos") && $sejour->_NDA && $sejour->_NDA != "-") {
Example #3
0
$max = $sip_config["export_segment"];
$max = min($max, $count);
CAppUI::stepAjax("Export de {$max} sur {$count} objets de type 'CPatient' à partir de l'ID '{$idMin}'", UI_MSG_OK);
// Time limit
$seconds = max($max / 20, 120);
CAppUI::stepAjax("Limite de temps du script positionné à '{$seconds}' secondes", UI_MSG_OK);
CApp::setTimeLimit($seconds);
// Export réel
$errors = 0;
$patients = $patient->loadList($where, $patient->_spec->key, "0, {$max}");
$echange = 0;
foreach ($patients as $patient) {
    $patient->loadIPP();
    $patient->loadRefsSejours();
    $patient->_ref_last_log->type = "create";
    $receiver = new CDestinataireHprim();
    $receiver->load(CAppUI::conf("sip export_dest"));
    $receiver->loadConfigValues();
    if (!$patient->_IPP) {
        $IPP = new CIdSante400();
        //Paramétrage de l'id 400
        $IPP->object_class = "CPatient";
        $IPP->object_id = $patient->_id;
        $IPP->tag = $receiver->_tag_patient;
        $IPP->loadMatchingObject();
        $patient->_IPP = $IPP->id400;
    }
    if (CAppUI::conf("sip pat_no_ipp") && $patient->_IPP && $patient->_IPP != "-" || !$receiver->_configs["send_all_patients"] && empty($patient->_ref_sejours)) {
        continue;
    }
    $dom = new CHPrimXMLEnregistrementPatient();
Example #4
0
                $notification->store();
            } else {
                $notification->date_echange = "";
                $notification->store();
            }
        } else {
            $notification->date_echange = "";
            $notification->store();
        }
    }
} else {
    // Chargement de l'objet
    /** @var CEchangeHprim $echange_hprim */
    $echange_hprim = new $echange_hprim_classname();
    $echange_hprim->load($echange_hprim_id);
    $dest_hprim = new CDestinataireHprim();
    $dest_hprim->load($echange_hprim->receiver_id);
    $source = CExchangeSource::get("{$dest_hprim->_guid}-evenementPatient");
    $source->setData($echange_hprim->_message);
    $source->send();
    $acquittement = $source->getACQ();
    if ($acquittement) {
        $domGetAcquittement = new CHPrimXMLAcquittementsPatients();
        $domGetAcquittement->loadXML($acquittement);
        $doc_valid = $domGetAcquittement->schemaValidate(null, false, $dest_hprim->display_errors);
        if ($doc_valid) {
            $echange_hprim->statut_acquittement = $domGetAcquittement->getStatutAcquittementPatient();
        }
        $echange_hprim->acquittement_valide = $doc_valid ? 1 : 0;
        $echange_hprim->date_echange = CMbDT::dateTime();
        $echange_hprim->_acquittement = $acquittement;
Example #5
0
 if ($sejour->_ref_prescripteurs) {
     $sejour->loadRefsPrescripteurs();
 }
 $sejour->loadRefAdresseParPraticien();
 $sejour->_ref_patient->loadRefsFwd();
 $sejour->loadRefsActes();
 foreach ($sejour->_ref_actes_ccam as $actes_ccam) {
     $actes_ccam->loadRefPraticien();
 }
 $sejour->loadRefsAffectations();
 $sejour->loadNDA();
 $sejour->loadLogs();
 $sejour->loadRefsConsultations();
 $sejour->loadRefsConsultAnesth();
 $sejour->_ref_last_log->type = "create";
 $dest_hprim = new CDestinataireHprim();
 $dest_hprim->load(CAppUI::conf("sip export_dest"));
 $dest_hprim->loadConfigValues();
 if (!$sejour->_NDA) {
     $nda = new CIdSante400();
     //Paramétrage de l'id 400
     $nda->object_class = "CSejour";
     $nda->object_id = $sejour->_id;
     $nda->tag = $dest_hprim->_tag_sejour;
     $nda->loadMatchingObject();
     $sejour->_NDA = $nda->id400;
 }
 if (!$sejour->_ref_patient->_IPP) {
     $IPP = new CIdSante400();
     $IPP->object_class = "CPatient";
     $IPP->object_id = $sejour->_ref_patient->_id;
 /**
  * Mapping et enregistrement de la venue
  *
  * @param CSejour     &$newVenue          Séjour
  * @param array       $data               Datas
  * @param string      $etatVenueEliminee  État de la venue à éliminer
  * @param CIdSante400 &$idexVenue         Idex de la venue
  * @param CIdSante400 &$idexVenueEliminee Idex de la venue à éliminer
  *
  * @return array
  */
 private function mapAndStoreVenue(&$newVenue, $data, $etatVenueEliminee, CIdSante400 &$idexVenue, CIdSante400 &$idexVenueEliminee)
 {
     $sender = new CDestinataireHprim();
     $sender->nom = $data['idClient'];
     $sender->loadMatchingObject();
     $messages = array();
     // Mapping de la venue a éliminer
     $newVenue = $this->mappingVenue($data['venueEliminee'], $newVenue);
     // Mapping de la venue a garder
     $newVenue = $this->mappingVenue($data['venue'], $newVenue);
     // Notifier les autres destinataires
     $newVenue->_eai_sender_guid = $sender->_guid;
     // Séjour retrouvé
     if ($newVenue->loadMatchingSejour() || $newVenue->_id) {
         $messages['_code_NumDos'] = "A121";
         $messages['_code_Venue'] = "store";
     } else {
         $messages['_code_NumDos'] = "I122";
         $messages['_code_Venue'] = "create";
     }
     $messages['msgVenue'] = $newVenue->store();
     $messages['commentaire'] = CEAISejour::getComment($newVenue);
     $idexVenue->object_id = $newVenue->_id;
     $idexVenue->last_update = CMbDT::dateTime();
     $messages['msgNumDosVenue'] = $idexVenue->store();
     $idexVenueEliminee->tag = $etatVenueEliminee != "préadmission" ? CAppUI::conf('dPplanningOp CSejour tag_dossier_cancel') . $sender->_tag_sejour : CAppUI::conf('dPplanningOp CSejour tag_dossier_pa') . $sender->_tag_sejour;
     $idexVenueEliminee->object_id = $newVenue->_id;
     $idexVenueEliminee->last_update = CMbDT::dateTime();
     $messages['msgNumDosVenueEliminee'] = $idexVenueEliminee->store();
     return $messages;
 }
Example #7
0
 if ($sejour->_ref_prescripteurs) {
     $sejour->loadRefsPrescripteurs();
 }
 $sejour->loadRefAdresseParPraticien();
 $sejour->_ref_patient->loadRefsFwd();
 $sejour->loadRefsActes();
 foreach ($sejour->_ref_actes_ccam as $actes_ccam) {
     $actes_ccam->loadRefPraticien();
 }
 $sejour->loadRefsAffectations();
 $sejour->loadNDA();
 $sejour->loadLogs();
 $sejour->loadRefsConsultations();
 $sejour->loadRefsConsultAnesth();
 $sejour->_ref_last_log->type = "create";
 $dest_hprim = new CDestinataireHprim();
 $dest_hprim->load(CAppUI::conf("smp export_dest"));
 $dest_hprim->loadConfigValues();
 if (!$sejour->_NDA) {
     $nda = new CIdSante400();
     //Paramétrage de l'id 400
     $nda->object_class = "CSejour";
     $nda->object_id = $sejour->_id;
     $nda->tag = $dest_hprim->_tag_sejour;
     $nda->loadMatchingObject();
     $sejour->_NDA = $nda->id400;
 }
 if (!$sejour->_ref_patient->_IPP) {
     $IPP = new CIdSante400();
     $IPP->object_class = "CPatient";
     $IPP->object_id = $sejour->_ref_patient->_id;
     CAppUI::stepAjax("Type de l'échange invalide", UI_MSG_ERROR);
 }
 $files = CAppUI::readFiles($path);
 ini_set("memory_limit", "512M");
 CApp::setTimeLimit(360);
 CMbObject::$useObjectCache = false;
 $counter = 0;
 foreach ($files as $_file) {
     $xmlfile = file_get_contents("{$path}/{$_file}");
     // Chargement du fichier XML
     $domEvenement->loadXML($xmlfile);
     // Création de l'échange
     $echg_hprim = new CEchangeHprim();
     $data = $domEvenement->getEnteteEvenementXML($evt);
     $data = array_merge($data, $domEvenement->getContentsXML());
     $dest_hprim = new CDestinataireHprim();
     $dest_hprim->register($data['idClient']);
     $echg_hprim->date_production = $data['dateHeureProduction'];
     $echg_hprim->date_echange = date("Y-m-d H:m:s", filemtime("{$path}/{$_file}"));
     $echg_hprim->group_id = CGroups::loadCurrent()->_id;
     $echg_hprim->receiver_id = $dest_hprim->_id;
     $echg_hprim->type = $domEvenement->type;
     $echg_hprim->sous_type = $domEvenement->sous_type;
     $echg_hprim->_message = utf8_encode($xmlfile);
     $doc_valid = $domEvenement->schemaValidate(null, false, $dest_hprim->display_errors);
     $echg_hprim->message_valide = $doc_valid ? 1 : 0;
     if ($type == "pmsi") {
         $echg_hprim->object_class = "CSejour";
         $echg_hprim->object_id = str_replace("sj", "", $data['idSourceVenue']);
         $echg_hprim->id_permanent = $data['idCibleVenue'];
     } elseif ($type == "actes") {