示例#1
0
 function createDiag($res, $i)
 {
     global $options;
     global $stopAffichage;
     $mod = new ModeliXe("HprimXMLDiag.html");
     $mod->SetModeliXe();
     $tabActe = array();
     $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$i]));
     $type = $res['TYPE'][$i];
     $idpass = $tabActe[0];
     $idu = $tabActe[1];
     $nomu = $tabActe[2];
     $pren = $tabActe[3];
     $sexe = $tabActe[4];
     $dtnai = $tabActe[5];
     $dtdem = $tabActe[6];
     $hhdem = $tabActe[7];
     $action = $tabActe[9];
     $idact = $tabActe[10];
     $cdccam = $tabActe[11];
     $cddiags = $tabActe[12];
     $dtr = $tabActe[15];
     $hhr = $tabActe[16];
     $nomumed = $tabActe[17];
     $prenmed = $tabActe[18];
     $adeli = $tabActe[19];
     $ufr = $tabActe[20];
     if ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI9') {
         $this->adeliMedecin = sprintf('%09d', $adeli);
     } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED') {
         $this->adeliMedecin = $nomumed . ' ' . $prenmed;
     } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED10') {
         $this->adeliMedecin = substr($nomumed . ' ' . $prenmed, 0, 10);
     } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI') {
         $this->adeliMedecin = $adeli;
     } else {
         $this->adeliMedecin = '';
     }
     if ($action == 'creation') {
         $action = utf8_encode('création');
     }
     $date = new clDate();
     if ($options->getOption('HprimXML_NomFic')) {
         $nomFic = $options->getOption('HprimXML_NomFic') . '_' . $res['ID'][$i] . '';
     } else {
         $nomFic = 'fic' . $options->getOption('HprimXML_ChaineFic') . 'TV2_' . $res['ID'][$i] . '';
     }
     $num = $res['ID'][$i];
     $pati = new clPatient($res['DISCR'][$i], '');
     if (!$pati->getID()) {
         $pati = new clPatient($res['DISCR'][$i], 'Sortis');
     }
     $datadmi = new clDate($pati->getDateAdmission());
     $datexam = new clDate($pati->getDateExamen());
     $datsort = new clDate($pati->getDateSortie());
     $this->codeMedecinUrgentiste = $pati->getMatriculeMedecin();
     if ($options->getOption("ChoixHeureAffectationActes") == "Heure d'admission") {
         $datdema = $datadmi;
     } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure d'examen") {
         $datdema = $datexam;
     } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure de sorti") {
         $datdema = $datsort;
     } else {
         if ($datadmi->getDatetime() != '1999-12-31 00:00:00' and $datsort->getDatetime() != '1999-12-31 00:00:00') {
             $time = (int) ($datadmi->getTimestamp() / 2) + $datsort->getTimestamp() / 2;
         } elseif ($datadmi->getDatetime() != '1999-12-31 00:00:00') {
             $time = $datadmi->getTimestamp();
         } else {
             $time = $datsort->getTimestamp();
         }
         $datdema = new clDate($time);
         $datmed = new clDate($time);
         //eko ( $datadmi->getTimestamp ( ).' + '.$datsort->getTimestamp ( ).' = '.$time.' = '.$datdema -> getTimestamp ( ) ) ;
         //eko ( $datadmi->getDatetime ( ).' + '.$datsort->getDatetime ( ).' = '.$time.' = '.$datdema -> getDatetime ( ) ) ;
     }
     $dtdem = $datdema->getDate('Y-m-d');
     $hhdem = $datdema->getDate('H:i:s');
     if ($options->getOption('HprimXML_DateProduction') == 'Heure médiane') {
         $date = $datmed;
     } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure admission') {
         $date = $datadmi;
     } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure examen') {
         $date = $datadmi;
     } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure sortie') {
         $date = $datsort;
     }
     if ($options->getOption('HprimXML_DateT')) {
         $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s"));
     } else {
         $mod->MxText('dateHeureProduction', $date->getDatetime());
     }
     if ($options->getOption('HprimXML_DateVenue') == 'Heure médiane') {
         $dateve = $datmed;
     } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure admission') {
         $dateve = $datadmi;
     } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure examen') {
         $dateve = $datadmi;
     } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure sortie') {
         $dateve = $datsort;
     } else {
         $dateve = $datdema;
     }
     $dtven = $dateve->getDate('Y-m-d');
     $hhven = $dateve->getDate('H:i:s');
     $mod->MxText('identifiantMessage', $res['ID'][$i]);
     if ($options->getOption('HprimXML_DateT')) {
         $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s"));
     } else {
         $mod->MxText('dateHeureProduction', $date->getDatetime());
     }
     $mod->MxText('codeEmetteur', $options->getOption('HprimXML_Emet') ? $options->getOption('HprimXML_Emet') : $res['DISCR'][$i]);
     $mod->MxText('codeDestinataire', $options->getOption('HprimXML_Dest'));
     $mod->MxText('patientEmetteur', $idu);
     $mod->MxText('patientRecepteur', $idu);
     $mod->MxText('sexe', $sexe);
     $mod->MxText('patientNom', $nomu);
     $mod->MxText('patientPrenom', $pren);
     if ($dtnai != "00/00/0000") {
         $mod->MxText('patientNaissance', $dtnai);
     } else {
         $mod->MxText('patientNaissance', "");
     }
     $mod->MxText('venueRecepteur', $idpass);
     $mod->MxText('venueDate', $dtven);
     $mod->MxText('venueHeure', $hhven);
     $mod->MxText('action', $action);
     $mod->MxText('rumEmetteur', $idpass);
     $mod->MxText('rumDate', $dtr);
     $mod->MxText('ADELI', $this->adeliMedecin);
     //$mod -> MxText ( 'rumUF', $ufr ) ;
     $mod->MxText('rumUF', $pati->getUF() ? $pati->getUF() : $ufr);
     $mod->MxText('rumUFDate', $dtdem);
     $mod->MxText('rumUFHeure', $hhdem);
     switch ($options->getOption('HprimXML_CIM10_encodage')) {
         case 'alphanum':
             $cdccam = ereg_replace("[^A-Za-z0-9]", "", $cdccam);
             break;
         case 'alphanumcross':
             $cdccam = ereg_replace("[^A-Za-z0-9+]", "", $cdccam);
             break;
         default:
             $cdccam = $cdccam;
             break;
     }
     $mod->MxText('cim10princ', $cdccam);
     $tabd = explode('~', $cddiags);
     //eko ( count ( $tabd ).' : '.$cddiags );
     if (count($tabd) < 1 or $cddiags == '~' or $cddiags == '') {
         //$mod -> MxBloc ( 'diagsign', 'replace', '<diagnosticSignificatif><codeCim10/></diagnosticSignificatif>' ) ;
         //eko ( "ici" ) ;
         $mod->MxBloc('diagssign', 'replace', ' ');
     } else {
         for ($i = 0; isset($tabd[$i]); $i++) {
             switch ($options->getOption('HprimXML_CIM10_encodage')) {
                 case 'alphanum':
                     $codeCim10sign = ereg_replace("[^A-Za-z0-9]", "", $tabd[$i]);
                     break;
                 case 'alphanumcross':
                     $codeCim10sign = ereg_replace("[^A-Za-z0-9+]", "", $tabd[$i]);
                     break;
                 default:
                     $codeCim10sign = $tabd[$i];
                     break;
             }
             $mod->MxText('diagssign.diagsign.codeCim10sign', $codeCim10sign);
             $mod->MxBloc('diagssign.diagsign', 'loop');
         }
     }
     if ($options->getOption('HprimXML_NomFic') and $options->getOption('HprimXML_NomModulo')) {
         $nomFic = $options->getOption('HprimXML_NomFic') . sprintf('%03d', $res['ID'][$deb] % 1000);
     }
     $this->genFile($mod->MxWrite("1"), $num, $nomFic, array(), "diagxml/");
 }