Problema:Buscar información de elementos genómicos.
Permitir al usuario ingresar un término de búsqueda relacionado un elemento específico del modelo (p. ej., variación, gene, fenotipo) y que es de interés para el usuario. Para guiar la búsqueda, se recomienda mostrar sugerencias (o ejemplos) sobre términos de búsqueda que pueden ser ingresados y que producen resultados reales al ser consultados.
El término de búsqueda debe soportar varias alternativas de búsqueda relacionadas a las propiedades del elemento genómico. Por ejemplo, para buscar información de un gen, el usuario puede indicar como término de búsqueda cualquiera de las dos opciones: el símbolo del gen (es decir, la abreviación de su nombre) o el identificador del gen en la base de conocimiento Gen Ontology. Es recomendable flexibilizar la búsqueda permitiendo que el término de búsqueda a) pueda ser una lista de términos (p. ej., una lista de símbolos de genes) o b) permita el uso de comodines (* ó ?) par encontrar coincidencias.
El patrón se crea instanciando la clase “Search”. El atributo “termOfSearch” captura el término de búsqueda ingresado por el usuario. El método “search()”, ejecutado cuando el usuario solicita buscar, construye la cadena de consulta utilizando el término de búsqueda y realiza la consulta de datos al elemento específico del modelo (clase “GenomicElement”).
La Imagen 6.16 es una porción de la interfaz de usuario principal del sitio Mastermind que presenta tres cajas de texto, una por cada alternativa de búsqueda (enfermedad, gen, variación genética). El texto en cada caja de texto sugiere la información que se puede buscar y la forma de ingresar el término de búsqueda. Así, una variación genética puede ser buscada indicando su identificador expresado en nomenclatura HGVS (p. ej., c.179T>A) o el cambio que produce en la proteína (p. ej., V600E).