dac44e990b86650b4168048f3c7d43bf0be0f86b chinhli Mon Aug 8 14:49:45 2011 -0700 initial geneReviews aork diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 36c755c..deacdd9 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -23749,30 +23749,86 @@ hgTracksPathAndSettings(), database, bed->chrom, bed->chromStart+1, bed->chromEnd); printf("%-20s %-10s %9d %9d %5d %5d %1s", bed->name, bed->chrom, bed->chromStart+1, bed->chromEnd, (bed->chromEnd - bed->chromStart),bed->score, bed->strand); printf(""); } printf("
"); printTrackHtml(tdb); hFreeConn(&conn); } +void doGeneReviews(struct trackDb *tdb, char *itemName) +/* generate the detail page for geneReviews */ +{ +struct sqlConnection *conn = hAllocConn(database); +struct sqlResult *sr; +char **row; +//char *table = tdb->table; +char query[512]; +int start = cartInt(cart, "o"); +int num = 4; +int i; +char *clickMsg = "Click 'Short name' link below to search GeneReviews"; +boolean firstTime = TRUE; + +genericHeader(tdb, itemName); +genericBedClick(conn, tdb, itemName, start, num); + +printf("
GeneReview available for %s:
",itemName); +printf("%s
",clickMsg); +safef(query, sizeof(query), "select grShort, diseaseID, diseaseName from geneReviewsRefGene where geneSymbol='%s'", itemName); +sr = sqlGetResult(conn, query); +while ((row = sqlNextRow(sr)) != NULL) + { + char *grShort = *row++; + char *diseaseID = *row++; + char *diseaseName = *row++; + + + printf("
");
+        if (firstTime)
+        {
+        firstTime = FALSE;
+        
+            // #1234567890123456789012345678901234567890
+        printf("Short name               Disease ID       GeneTests disease name
"); + printf("-----------------------------------------------------------"); + printf("-----------------------------------------------------------"); + printf("----------------------------------
"); + } + printf("%s", grShort, grShort); + if (strlen(grShort) <= 20) { + for (i = 0; i < 28-strlen(grShort); i ++ ) + { + printf("%s", " " ); + } + } + printf("%-10s %s
", diseaseID, diseaseName); + printf("
"); + } /* end while */ + + printf("
"); + printTrackHtml(tdb); + hFreeConn(&conn); + + +} /* end of doGeneReviews */ void doMiddle() /* Generate body of HTML. */ { char *track = cartString(cart, "g"); char *item = cartOptionalString(cart, "i"); char *parentWigMaf = cartOptionalString(cart, "parentWigMaf"); struct trackDb *tdb = NULL; if (hIsGisaidServer()) { validateGisaidUser(cart); } @@ -24963,30 +25019,34 @@ { doT2gDetails(tdb, item); } else if (tdb != NULL && startsWith("bedDetail", tdb->type)) { doBedDetail(tdb, NULL, item); } else if (startsWith("numtS", table)) { doNumtS(tdb, item); } else if (startsWith("cosmic", table)) { doCosmic(tdb, item); } +else if (startsWith("geneReviews", table)) + { + doGeneReviews(tdb, item); + } else if (tdb != NULL) { genericClickHandler(tdb, item, NULL); } else { cartWebStart(cart, database, "%s", track); printf("Sorry, clicking there doesn't do anything yet (%s).", track); } /* End of 1000+ line dispatch on table involving 100+ if/elses. */ if (didCartHtmlStart) cartHtmlEnd(); }