function evidence_generate_edit($previous_edit_id = null, $variant_id = null, $row = array()) { if ($previous_edit_id) { $row = evidence_get_edit($previous_edit_id); $variant_id = $row["variant_id"]; } else { if ($variant_id) { $row["variant_id"] = $variant_id; } else { if (!$row["variant_id"]) { die("evidence_edit_id_generate(): need either previous edit id or variant id"); } } } $row["is_draft"] = 1; $row["is_delete"] = 0; $row["previous_edit_id"] = $previous_edit_id; $row["edit_oid"] = $_SESSION["user"]["oid"]; unset($row["edit_id"]); unset($row["edit_timestamp"]); unset($row["signoff_oid"]); unset($row["signoff_timestamp"]); $sqlfields = "edit_timestamp=NOW()"; $sqlparams = array(); foreach ($row as $column => $value) { $sqlfields .= ", {$column}=?"; $sqlparams[] = $value; } theDb()->query("INSERT INTO edits SET {$sqlfields}", $sqlparams); $new_edit_id = theDb()->getOne("SELECT LAST_INSERT_ID()"); return theDb()->getRow("SELECT * FROM edits WHERE edit_id=?", array($new_edit_id)); }
while ($row =& $q->fetchRow()) { // create the variant, and an "initial edit/add" row in edits table $gene_aa = $row["gene_aa"]; if (eregi('([a-z0-9]+):([0-9]+) ?([a-z][a-z][a-z])>([a-z][a-z][a-z])', $gene_aa, $r)) { $gene_aa = "{$r['1']} {$r['3']}{$r['2']}{$r['4']}"; } else { if (eregi('([a-z0-9]+):([a-z]+)([0-9]+)([a-z]+)', $gene_aa, $r)) { $gene_aa = "{$r['1']} {$r['2']}{$r['3']}{$r['4']}"; } } $variant_id = evidence_get_variant_id($gene_aa, false, false, false, true); if (!$variant_id && $row["rsid"]) { $variant_id = evidence_get_variant_id("rs" . $row["rsid"], false, false, false, true); } $edit_id = evidence_get_latest_edit($variant_id, 0, 0, 0, true, array("variant_impact" => "pharmacogenetic")); $latestrow = evidence_get_edit($edit_id); if (in_array($latestrow["variant_impact"], array("not reviewed", "none", "unknown"))) { $newrow = evidence_generate_edit(null, null, $latestrow); $newrow["variant_impact"] = "pharmacogenetic"; $new_edit_id = evidence_save_draft(null, $newrow); evidence_submit($new_edit_id); ++$n_marked_pharma; } if (ereg('^[0-9]+$', $row["pmid"])) { evidence_get_latest_edit($variant_id, $row["pmid"], 0, 0, true); } $did[$variant_name] = $variant_id; theDb()->query("UPDATE pharmgkb SET variant_id=? WHERE pharmgkb_id=?", array($variant_id, $row["pharmgkb_id"])); ++$n; if ($n % 100 == 0) { print "{$n}...";