Ejemplo n.º 1
0
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));
}
Ejemplo n.º 2
0
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}...";