* @version $Revision: 6069 $ * @author SARL OpenXtrem * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html */ // Check params if (null == ($exchange_source_name = CValue::get("exchange_source_name"))) { CAppUI::stepAjax("Aucun nom de source d'échange spécifié", UI_MSG_ERROR); } $exchange_source = CExchangeSource::get($exchange_source_name, "ftp", false, null, false); $ftp = new CFTP(); $ftp->init($exchange_source); try { $ftp->testSocket(); CAppUI::stepAjax("CFTP-success-connection", E_USER_NOTICE, $ftp->hostname, $ftp->port); $ftp->connect(); CAppUI::stepAjax("CFTP-success-authentification", E_USER_NOTICE, $ftp->username); if ($ftp->passif_mode) { CAppUI::stepAjax("CFTP-msg-passive_mode"); } $sent_file = CAppUI::conf('root_dir') . "/offline.php"; $remote_file = $ftp->fileprefix . "test.txt"; $ftp->sendFile($sent_file, $remote_file); CAppUI::stepAjax("CFTP-success-transfer_out", E_USER_NOTICE, $sent_file, $remote_file); $get_file = "tmp/offline.php"; $ftp->getFile($remote_file, $get_file); CAppUI::stepAjax("CFTP-success-transfer_in", E_USER_NOTICE, $remote_file, $get_file); $ftp->delFile($remote_file); CAppUI::stepAjax("CFTP-success-deletion", E_USER_NOTICE, $remote_file); } catch (CMbException $e) { $e->stepAjax(); }
*/ CCanDo::checkRead(); // Envoi à la source créée 'HL7 v.2' $exchange_source = CExchangeSource::get("hl7v2", "ftp"); $extension = $exchange_source->fileextension; $ftp = new CFTP(); $ftp->init($exchange_source); $ftp->connect(); if (!($list = $ftp->getListFiles($ftp->fileprefix))) { CAppUI::stepAjax("Le répertoire ne contient aucun fichier", UI_MSG_ERROR); } $messages = array(); foreach ($list as $filepath) { if (substr($filepath, -strlen($extension)) == $extension) { $filename = tempnam("", "hl7"); $ftp->getFile($filepath, $filename); $hl7v2_reader = new CHL7v2Reader(); $message = $hl7v2_reader->readFile($filename); if (!$message) { $message = new CHL7v2Message(); } $message->filename = basename($filepath); $message->_errors_msg = !$message->isOK(CHL7v2Error::E_ERROR); $message->_warnings_msg = !$message->isOK(CHL7v2Error::E_WARNING); $message->_xml = CMbString::highlightCode("xml", $message->toXML()->saveXML()); $messages[] = $message; unlink($filename); } else { // $ftp->delFile($filepath); } }
$list = $ftp->getListFiles($ftp->fileprefix); } catch (CMbException $e) { CAppUI::stepAjax($e->getMessage(), UI_MSG_WARNING); } if (empty($list)) { CAppUI::stepAjax("Le répertoire ne contient aucun fichier", UI_MSG_ERROR); } $sender_ftp = new CSenderFTP(); $sender_ftp->user_id = CUser::get()->_id; $sender_ftp->loadMatchingObject(); $count = CAppUI::conf("eai max_files_to_process"); $list = array_slice($list, 0, $count); foreach ($list as $filepath) { if (substr($filepath, -strlen($extension)) == $extension) { $filename = basename($filepath); $hprimFile = $ftp->getFile($filepath, "tmp/hprim21/{$filename}"); // Création de l'échange $echg_hprim21 = new CEchangeHprim21(); $echg_hprim21->group_id = CGroups::loadCurrent()->_id; $echg_hprim21->sender_class = $sender_ftp->_class; $echg_hprim21->sender_id = $sender_ftp->_id; $echg_hprim21->date_production = CMbDT::dateTime(); $echg_hprim21->store(); $hprimReader = new CHPrim21Reader(); $hprimReader->_echange_hprim21 = $echg_hprim21; $hprimReader->readFile($hprimFile); // Mapping de l'échange $echg_hprim21 = $hprimReader->bindEchange($hprimFile); if (!count($hprimReader->error_log)) { $echg_hprim21->message_valide = true; $ftp->delFile($filepath);