$planning->guid = $prat->_guid;
$planning->hour_min = "07";
$planning->hour_max = "20";
$planning->pauses = array("07", "12", "19");
$whereHP["plageop_id"] = " IS NULL";
for ($i = 0; $i < $nbDays; $i++) {
    $jour = CMbDT::date("+{$i} day", $debut);
    $where["date"] = $whereInterv["date"] = $whereHP["date"] = "= '{$jour}'";
    if (CAppUI::pref("showIntervPlanning")) {
        // HORS PLAGE
        $horsPlage = new COperation();
        /** @var COperation[] $horsPlages */
        $horsPlages = $horsPlage->loadList($whereHP);
        CMbObject::massLoadFwdRef($horsPlages, "chir_id");
        foreach ($horsPlages as $_horsplage) {
            $lenght = CMBDT::minutesRelative("00:00:00", $_horsplage->temp_operation);
            $op = new CPlanningRange($_horsplage->_guid, $jour . " " . $_horsplage->time_operation, $lenght, $_horsplage, "3c75ea", "horsplage");
            $planning->addRange($op);
        }
        // INTERVENTIONS
        /** @var CPlageOp[] $intervs */
        $interv = new CPlageOp();
        $intervs = $interv->loadList($whereInterv);
        CMbObject::massLoadFwdRef($intervs, "chir_id");
        foreach ($intervs as $_interv) {
            $range = new CPlanningRange($_interv->_guid, $jour . " " . $_interv->debut, CMbDT::minutesRelative($_interv->debut, $_interv->fin), CAppUI::tr($_interv->_class), "bbccee", "plageop");
            $planning->addRange($range);
        }
    }
    $plages = $plage->loadList($where);
    CMbObject::massLoadFwdRef($plages, "chir_id");
Exemplo n.º 2
0
 /**
  * Prepare the data to send from the given sejour
  *
  * @param CSejour      $sejour           The sejour
  * @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 function getDataFromSejour($sejour, $encoding, $modality, $calling_ae_title, $dicom_config)
 {
     $libelle = '';
     $date = '';
     $time = '';
     $patient = $sejour->loadRefPatient();
     $sejour->updateFormFields();
     $operation = $sejour->loadRefCurrOperation(CMbDT::dateTime());
     if ($operation->_id) {
         $operation->updateFormFields();
         $operation->loadRefPlageOp();
         if ($operation->libelle) {
             $libelle = substr($operation->libelle, 0, 64);
         } else {
             $libelle = 'Pas de libellé';
         }
         if ($operation->date) {
             $date = str_replace('-', '', $operation->date);
         } else {
             $date = str_replace('-', '', $operation->_ref_plageop->date);
         }
         if ($operation->time_operation) {
             $time = str_replace(':', '', $operation->time_operation) . '.000000';
         } else {
             $time = str_replace(':', '', CMbDT::time()) . '.000000';
         }
     } else {
         $libelle = "Pas de libellé";
         $date = str_replace('-', '', CMBDT::date());
         $time = str_replace(':', '', CMbDT::time()) . '.000000';
     }
     $chir = $sejour->loadRefPraticien();
     $patient->loadIPP();
     $sejour->loadNDA();
     $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_id, $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 add 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;
 }