Exemple #1
0
 /**
  * @param $rule
  * @return bool
  */
 private function ckProcedures($rule)
 {
     if (isset($rule['concepts']['PROC']) && !empty($rule['concepts']['PROC'])) {
         $count = 0;
         foreach ($rule['concepts']['PROC'] as $concept) {
             $procedures = $this->Procedures->getPatientProceduresByPidAndCode($this->Patient->getPatientPid(), $concept['concept_code']);
             if (empty($procedures)) {
                 continue;
             }
             if ($concept['frequency_interval'] == 0) {
                 $count++;
                 continue;
             }
             $frequency = 0;
             foreach ($procedures as $procedure) {
                 if ($this->isWithInterval($procedure['create_date'], $concept['frequency_interval'], $concept['frequency_operator'], 'Y-m-d H:i:s')) {
                     $frequency++;
                     if ($concept['frequency'] == $frequency) {
                         break;
                     }
                 }
             }
             if ($concept['frequency_operator'] == '' || $this->compare($frequency, $concept['frequency_operator'], $concept['frequency'])) {
                 $count++;
             }
         }
         return $count == count($rule['concepts']['PROC']);
     }
     return true;
 }