public function getProcessWarnings()
{
$warnings = array();
$el_diag = $this->getElement('Element_OphCoTherapyapplication_Therapydiagnosis');
$sides = array();
if ($el_diag->hasLeft()) {
$sides[] = 'left';
}
if ($el_diag->hasRight()) {
$sides[] = 'right';
}
if ($api = Yii::app()->moduleAPI->get('OphCiExamination')) {
$missing_sides = array();
foreach ($sides as $side) {
if (!$api->getInjectionManagementComplexInEpisodeForDisorder($this->event->episode->patient, $this->event->episode, $side, $el_diag->{$side . '_diagnosis1_id'}, $el_diag->{$side . '_diagnosis2_id'})) {
$missing_sides[] = $side;
}
}
foreach ($missing_sides as $missing) {
$warnings[] = 'No Injection Management has been created for ' . $missing . ' diagnosis.';
}
// if the application doesn't have a given side, the VA value can be NR (e.g. eye missing etc)
// but if it does, then we need an actual VA value.
if (!$api->getLetterVisualAcuityForEpisodeLeft($this->event->episode, !$el_diag->hasLeft(), $this->event->event_date)) {
$warnings[] = 'Visual acuity not found for left eye.';
}
if (!$api->getLetterVisualAcuityForEpisodeRight($this->event->episode, !$el_diag->hasRight(), $this->event->event_date)) {
$warnings[] = 'Visual acuity not found for right eye.';
}
}
if ($api = Yii::app()->moduleAPI->get('OphTrConsent')) {
$procedures = Procedure::model()->findAll(array('condition' => 'snomed_code = :snomed or snomed_code = :snomed2 ', 'params' => array(':snomed' => $this::SNOMED_INTRAVITREAL_INJECTION, ':snomed2' => $this::SNOMED_PDT)));
foreach ($sides as $side) {
$sideHasConsent = false;
foreach ($procedures as $procedure) {
if ($api->hasConsentForProcedure($this->event->episode, $procedure, $side)) {
$sideHasConsent = true;
break;
}
}
if (!$sideHasConsent) {
$warnings[] = 'Consent form is required for ' . $side . ' eye.';
}
}
}
return $warnings;
}