cfa97200252eecb2b8dfe20d9d65cd5afd0f3ba3
max
  Thu May 28 02:37:57 2020 -0700
more OMIM hgc changes, refs #18419

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 460a48e..32ee090 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -10654,95 +10654,87 @@
     }
 
 sqlFreeResult(&sr);
 printf("<tbody>\n");
 printf("</table>\n");
 }
 
 void printOmimGene2Details(struct trackDb *tdb, char *itemName, boolean encode)
 /* Print details of an omimGene2 entry. */
 {
 struct sqlConnection *conn  = hAllocConn(database);
 char query[256];
 struct sqlResult *sr;
 char **row;
 char *url = tdb->url;
-char *title1 = NULL;
-char *geneSymbol = NULL;
 char *chrom, *chromStart, *chromEnd;
 
 chrom      = cartOptionalString(cart, "c");
 chromStart = cartOptionalString(cart, "o");
 chromEnd   = cartOptionalString(cart, "t");
 
 printf("<div id='omimText'>");
 if (url != NULL && url[0] != 0)
     {
     printf("<B>MIM gene number: ");
     printf("<A HREF=\"%s%s\" target=_blank>", url, itemName);
-    printf("%s</A></B>", itemName);
-    sqlSafef(query, sizeof(query),
-          "select geneName from omimGeneMap2 where omimId=%s;", itemName);
-    sr = sqlMustGetResult(conn, query);
-    row = sqlNextRow(sr);
-    if (row != NULL)
-        {
-        if (row[0] != NULL)
-            {
-            title1 = cloneString(row[0]);
-                printf(" %s", title1);
-            }
-        }
-    else
-        {
-	printf("<BR>");
-	}
-    sqlFreeResult(&sr);
+    printf("%s</A></B><BR>", itemName);
 
     // disable NCBI link until they work it out with OMIM
     /*
     printf("<BR>\n");
     printf("<B>OMIM page at NCBI: ");
     printf("<A HREF=\"%s%s\" target=_blank>", ncbiOmimUrl, itemName);
     printf("%s</A></B>", itemName);
     */
 
-    // can use NOSQLINJ since itemName has already been checked to be a number
     struct dyString *symQuery = newDyString(1024);
     sqlDyStringPrintf(symQuery, "SELECT approvedSymbol from omimGeneMap2 where omimId=%s", itemName);
     char *approvSym = sqlQuickString(conn, symQuery->string);
     if (approvSym) {
-	printf("<BR><B>HGNC-approved symbol:</B> %s<BR>", approvSym);
-        freez(&approvSym);
+	printf("<B>HGNC-approved symbol:</B> %s", approvSym);
     }
+
+    sqlSafef(query, sizeof(query),
+          "select geneName from omimGeneMap2 where omimId=%s;", itemName);
+    char *longName = sqlQuickString(conn, query);
+    if (longName) {
+	printf(" &mdash; %s", longName);
+        freez(&longName);
+    }
+    puts("<BR>");
+
     printPosOnChrom(chrom, atoi(chromStart), atoi(chromEnd), NULL, FALSE, itemName);
 
     sqlSafef(query, sizeof(query),
           "select geneSymbol from omimGeneMap2 where omimId=%s;", itemName);
-    sr = sqlMustGetResult(conn, query);
-    row = sqlNextRow(sr);
-    if (row != NULL)
-        {
-	geneSymbol = cloneString(row[0]);
-        }
-    sqlFreeResult(&sr);
+    char *altSyms = sqlQuickString(conn, query);
 
-    if (geneSymbol!= NULL)
+    if (altSyms)
+        {
+        if (approvSym) 
             {
-	printf("<BR><B>Alternative symbols:</B> %s", geneSymbol);
+            char symRe[255];
+            safef(symRe, sizeof(symRe), "^%s, ", approvSym);
+            altSyms = replaceRegEx(altSyms, "", symRe, 0);
+            }
+	printf("<B>Alternative symbols:</B> %s", altSyms);
 	printf("<BR>\n");
+        freez(&altSyms);
         }
+    if (approvSym)
+        freez(&approvSym);
 
     // show RefSeq Gene link(s)
     sqlSafef(query, sizeof(query),
           "select distinct locusLinkId from %s l, omim2gene g, refGene r where l.omimId=%s and g.geneId=l.locusLinkId and g.entryType='gene' and chrom='%s' and txStart = %s and txEnd= %s",
 	  refLinkTable, itemName, chrom, chromStart, chromEnd);
     sr = sqlMustGetResult(conn, query);
     row = sqlNextRow(sr);
     if (row != NULL)
         {
         char *geneId;
         geneId = strdup(row[0]);
         sqlFreeResult(&sr);
 
         sqlSafef(query, sizeof(query),
               "select distinct l.mrnaAcc from %s l where locusLinkId = '%s' order by mrnaAcc asc", refLinkTable, geneId);