} elseif ($zData['statusid'] > STATUS_MARKED) { $aFields[] = 'statusid'; $_POST['statusid'] = STATUS_MARKED; } // Only actually committed to the database if we're not in a submission, or when they are already filled in. $_POST['edited_by'] = $_AUTH['id']; $_POST['edited_date'] = date('Y-m-d H:i:s'); if (!$bSubmit && !(GET && ACTION == 'publish')) { // Put $zData with the old values in $_SESSION for mailing. // FIXME; change owner to owned_by_ in the load entry query of object_phenotypes.php. $zData['owned_by_'] = $zData['owner']; $zData['diseaseid_'] = $_DB->query('SELECT name FROM ' . TABLE_DISEASES . ' WHERE id = ?', array($zData['diseaseid']))->fetchColumn(); $_SESSION['work']['edits']['phenotype'][$nID] = $zData; } // FIXME: implement versioning in updateEntry! $_DATA->updateEntry($nID, $_POST, $aFields); // Get genes which are modified only when phenotype, individual and variant are marked or public. if ($zData['statusid'] >= STATUS_MARKED || $_POST['statusid'] >= STATUS_MARKED) { $aGenes = $_DB->query('SELECT DISTINCT t.geneid FROM ' . TABLE_TRANSCRIPTS . ' AS t ' . 'INNER JOIN ' . TABLE_VARIANTS_ON_TRANSCRIPTS . ' AS vot ON (vot.transcriptid = t.id) ' . 'INNER JOIN ' . TABLE_VARIANTS . ' AS vog ON (vog.id = vot.id) ' . 'INNER JOIN ' . TABLE_SCR2VAR . ' AS s2v ON (s2v.variantid = vog.id) ' . 'INNER JOIN ' . TABLE_SCREENINGS . ' AS s ON (s.id = s2v.screeningid) ' . 'INNER JOIN ' . TABLE_INDIVIDUALS . ' AS i ON (i.id = s.individualid) ' . 'INNER JOIN ' . TABLE_PHENOTYPES . ' AS p ON (p.individualid = i.id) ' . 'WHERE vog.statusid >= ? AND i.statusid >= ? AND p.id = ?', array(STATUS_MARKED, STATUS_MARKED, $nID))->fetchAllColumn(); if ($aGenes) { // Change updated date for genes. lovd_setUpdatedDate($aGenes); } } // Write to log... lovd_writeLog('Event', LOG_EVENT, 'Edited phenotype information entry ' . $nID); // Thank the user... if ($bSubmit) { header('Refresh: 3; url=' . lovd_getInstallURL() . 'submit/individual/' . $zData['individualid']); $_T->printHeader(); $_T->printTitle();