/**
  * Chargement du patient
  *
  * @return CPatient
  */
 function loadRefPatient()
 {
     return $this->_ref_patient = $this->_ref_operation->loadRefPatient();
 }
 /**
  * Prepare the data to send from the given operation
  *
  * @param COperation   $operation        The operation
  * @param string       $encoding         The encoding
  * @param string       $modality         The target modality
  * @param string       $calling_ae_title The AE title who requested the worklist
  * @param CDicomConfig $dicom_config     The Exchange Dicom
  *
  * @return array
  */
 protected static function getDataFromOperation($operation, $encoding, $modality, $calling_ae_title, $dicom_config)
 {
     $patient = $operation->loadRefPatient();
     $operation->updateFormFields();
     $operation->loadRefPlageOp();
     $sejour = $operation->loadRefSejour();
     $chir = $operation->loadRefChir();
     $patient->loadIPP();
     $sejour->loadNDA();
     $libelle = "";
     if ($operation->libelle) {
         $libelle = substr($operation->libelle, 0, 64);
     } else {
         $libelle = "Pas de libellé";
     }
     $date = "";
     if ($operation->date) {
         $date = str_replace("-", "", $operation->date);
     } else {
         $date = str_replace("-", "", $operation->_ref_plageop->date);
     }
     $time = "";
     if ($operation->time_operation) {
         $time = str_replace(":", "", $operation->time_operation);
         $time .= ".000000";
     } else {
         $time = str_replace(':', '', CMbDT::time()) . '.000000';
     }
     $sejour_id = $sejour->_id;
     if ($sejour->_NDA) {
         $sejour_id = $sejour->_NDA;
     }
     $patient_id = $patient->_id;
     if ($patient->_IPP) {
         $patient_id = $patient->_IPP;
     }
     $age = intval(substr(trim($patient->_age), 0, 2));
     $chir_name = "{$chir->_user_last_name} {$chir->_user_first_name}";
     $data = array(0x8 => array(0x50 => self::encodeValue($sejour_id, $encoding)), 0x10 => array(0x10 => self::encodeValue("{$patient->nom}^{$patient->prenom}", $encoding), 0x20 => self::encodeValue("{$patient_id}", $encoding), 0x30 => self::encodeValue(str_replace("-", "", $patient->naissance), $encoding), 0x40 => self::encodeValue(strtoupper($patient->sexe), $encoding)), 0x20 => array(0xd => self::encodeValue($sejour_id, $encoding)), 0x38 => array(0x10 => self::encodeValue($sejour->_NDA, $encoding)), 0x40 => array(0x100 => array(array(array("group_number" => 0x8, "element_number" => 0x60, "value" => self::encodeValue($modality, $encoding)), array("group_number" => 0x40, "element_number" => 0x1, "value" => self::encodeValue($calling_ae_title, $encoding)), array("group_number" => 0x40, "element_number" => 0x2, "value" => self::encodeValue($date, $encoding)), array("group_number" => 0x40, "element_number" => 0x3, "value" => self::encodeValue($time, $encoding)), array("group_number" => 0x40, "element_number" => 0x6, "value" => self::encodeValue($chir_name, $encoding)), array("group_number" => 0x40, "element_number" => 0x7, "value" => self::encodeValue($libelle, $encoding)), array("group_number" => 0x40, "element_number" => 0x9, "value" => self::encodeValue($sejour_id, $encoding)))), 0x1001 => self::encodeValue($sejour_id, $encoding)));
     /* We had the field 0x0032,0x1032 if it's configured */
     if ($dicom_config->send_0032_1032) {
         if (!array_key_exists(0x32, $data)) {
             $data[0x32] = array();
         }
         $data[0x32][0x1032] = self::encodeValue($chir_name, $encoding);
         /* Add the field into the sequence of item 0x0040,0x0100 */
         /*$data[0x0040][0x0100][0][] = array(
             "group_number" => 0x0032,
             "element_number" => 0x1032, "value" => self::encodeValue($chir_name, $encoding)
           );*/
     }
     return $data;
 }
$check_lists_no_has = $check_items_no_has_categories = $listValidateurs_no_has = array();
$listAnesthType = array();
if ($selOp->_id) {
    $selOp->canDo();
    $selOp->loadRefs();
    $selOp->loadRefsFiles();
    $selOp->loadRefsDocs();
    $consult_anesth = $selOp->loadRefsConsultAnesth();
    $consult_anesth->countDocItems();
    $consultation = $consult_anesth->loadRefConsultation();
    $consultation->countDocItems();
    $consultation->canRead();
    $consultation->canEdit();
    $selOp->loadRefPlageOp(true);
    $selOp->loadRefChir()->loadRefFunction();
    $selOp->loadRefPatient();
    $selOp->loadRefCommande();
    $date = CMbDT::date($selOp->_datetime);
    // Récupération de l'utilisateur courant
    $currUser = CMediusers::get();
    $currUser->isAnesth();
    $currUser->isPraticien();
    $selOp->countExchanges();
    $selOp->loadBrancardage();
    $selOp->isCoded();
    $selOp->_ref_consult_anesth->loadRefsTechniques();
    $sejour = $selOp->_ref_sejour;
    $sejour->loadRefDossierMedical();
    $sejour->_ref_dossier_medical->loadRefsBack();
    $sejour->loadRefsConsultAnesth();
    $sejour->_ref_consult_anesth->loadRefsFwd();
<?php

/**
 * Onglet d'accouchement pour une parturiente en salle d'opération
 *  
 * @category Maternite
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html 
 * @version  SVN: $Id:$ 
 * @link     http://www.mediboard.org
 */
$operation_id = CValue::get("operation_id");
$operation = new COperation();
$operation->load($operation_id);
$operation->loadRefPlageOp(1);
$sejour = $operation->loadRefSejour(true);
$grossesse = $sejour->loadRefGrossesse();
$grossesse->loadRefsSejours();
$grossesse->loadRefsConsultations();
foreach ($grossesse->_ref_consultations as $_consult) {
    $_consult->loadRefPlageConsult();
}
$grossesse->_semaine_grossesse = ceil(CMbDT::daysRelative($grossesse->_date_fecondation, CMbDT::date($operation->_datetime)) / 7);
$grossesse->_terme_vs_operation = CMbDT::daysRelative($grossesse->terme_prevu, CMbDT::date($operation->_datetime));
$patient = $operation->loadRefPatient();
$smarty = new CSmartyDP();
$smarty->assign("operation", $operation);
$smarty->display("inc_vw_grossesse.tpl");