@@ -86,13 +86,17 @@ Meteor.publish({
8686 let url = config . externalSearchOptions . url . replace ( / , + $ / , "" ) + "/" ;
8787 let paramsDict = { }
8888 let geneField = config . externalSearchOptions . gene_field ? config . externalSearchOptions . gene_field : "geneId"
89+ let annotationField = config . externalSearchOptions . annotation_field ? config . externalSearchOptions . annotation_field : ""
8990 if ( config . externalSearchOptions . query_param ) {
9091 paramsDict [ config . externalSearchOptions . query_param ] = query . query
9192 } else {
9293 url += query . query
9394 }
9495 if ( config . externalSearchOptions . field_param ) {
9596 paramsDict [ config . externalSearchOptions . field_param ] = geneField
97+ if ( config . externalSearchOptions . annotation_field ) {
98+ paramsDict [ config . externalSearchOptions . field_param ] += "," + annotationField
99+ }
96100 }
97101
98102 if ( config . externalSearchOptions . count_param ) {
@@ -103,9 +107,15 @@ Meteor.publish({
103107 url = url + "?" + new URLSearchParams ( paramsDict )
104108 const response = HTTP . get ( url ) ;
105109 if ( response . statusCode === 200 ) {
106- geneResults = response . data . data . map ( result => result . _source [ geneField ] )
110+ geneResults = response . data . data . map ( result => {
111+ if ( config . externalSearchOptions . annotation_field ) {
112+ return { "ID" : result . _source [ geneField ] , "annotationName" : result . _source [ annotationField ] }
113+ } else {
114+ return { "ID" : result . _source [ geneField ] }
115+ }
116+ } )
107117 }
108- transformedQuery = { genomeId : { $in : queryGenomeIds } , ID : { $in : geneResults } }
118+ transformedQuery = { genomeId : { $in : queryGenomeIds } , $or : geneResults }
109119 } else {
110120 transformedQuery = { ...query , genomeId : { $in : queryGenomeIds } } ;
111121 }
@@ -120,7 +130,13 @@ Meteor.publish({
120130 if ( typeof geneId === 'undefined' ) {
121131 Object . assign ( query , { 'subfeatures.ID' : transcriptId } ) ;
122132 } else {
123- Object . assign ( query , { ID : geneId } ) ;
133+ Object . assign ( query , {
134+ $or : [
135+ { 'ID' : geneId } ,
136+ { 'subfeatures.ID' : geneId } ,
137+ { 'subfeatures.protein_id' : geneId } ,
138+ ] ,
139+ } ) ;
124140 }
125141
126142 return Genes . find ( query ) ;
0 commit comments