Skip to content
Xiaoling edited this page Aug 16, 2016 · 1 revision

This is the place for documentation of the datamed UI source code.

1. Main functionalities of the UI:

  • Configuration
  • Pre search (NLP, terminology)
  • Construct ES search query
  • Search ES
  • Organize search result
  • Display (search,search-repository,display-item)

2. Side functionalities of the UI:

  •       Account login
    
  •       Save search
    
  •       Advanced search
    
  •       Dataset Similarity search
    
  •       Spelling correction
    
  •       Share function
    
  •       Sort function
    
  •       Collection function
    
  •       Grant link function
    
  •       Submit repository function
    
  •       Tracking activity function 
    
  •       Filter by data type
    
  •       Filter by accessibility and authentication
    
  •       Similarity function
    
  •       Auto Correction function
    

3. Files Structures

###3.1 Controllers (control the logic, call the models,render the result array to views)

####3.1.1 Main controller

  • Index.php
  • search.php
  • Search-repository.php
  • display-item.php

####3.1.2 Advanced function

  • Advanced.php (show advanced search page)

####3.1.3 Side functions

  • expanded-query.php (show synonyms in single page)
  • gant_details.php (page to show grant details info )
  • manage_submit_repository.php(page to manage submitted repo)
  • submit_repository.php (page to submit repo)
  • Share.php (page for share search result)

3.1.4 Account functions

  • Login.php
  • Change.php
  • Collections.php
  • forgot_password.php
  • google_login.php
  • Manage_collections.php
  • recentactivity.php
  • Register.php
  • Reset.php
  • Reset_password.php
  • SavedSearch.php

###3.2 Model (Class and functions to interact with backend ES and MySQL, Terminology, NLP Server) ####3.2.1 Class #####3.2.1.1 ES Related

  • ElasticSearch.php (class to construct the basic ES query and generate results)
  • ExpansionSearch.php(extend ElasticSearch, generate ES results using synonyms)
  • Parser.php (class to pass boolean search query)
  • Context.php (class for analyzing boolean logic)
  • BooleanSearch.php(extend ElasticSearch, for boolean search)
  • NLPSearch.php (extend ExpansionSearch, get NLP and synonyms, not modified yet)
  • SearchBuilder.php( class to construct a ElasticSearch class and process ES results)
  • ConstructSearchView.php (class to construct view data for search page)
  • ConstructSearchRepoView.php (class to construct view data for search-repo page)
  • SingleItemDisplayService (class for display single item page)
  • RepositoryBase.php (class for represents repository base functionality)
  • Repositories.php(class for construct repository class for all repo)
  • Repository (Repo class for each Repo, details about the repo):
    • ArrayExpress.php
    • Bioproject.php
    • Cia.php
    • ClinicalTrials.php
    • Ctn.php
    • Cvrg.php
    • Dataverse.php
    • DbGap.php
    • Dryad.php
    • Gemma.php
    • Geo.php
    • Linc.php
    • Mpd.php
    • Neuromorpho.php
    • Niddkcr.php
    • MURSA.php
    • openFMRI.php
    • Pdb.php
    • Peptideatlas.php
    • Physiobank.php
    • Proteomexchange.php
    • Sra.php
    • Yped.php
  • GrantSearch.php (class for Grant search)
  • PubmedGrantService.php (class for process grant search)
  • PubmedPublication.php(class for pubmed related publication)
  • Pubmed.php(class for pubmed object)
  • GrantSearch.php (extend ElasticSearch, get NIH export grant info)
  • SimilarDatasetsService (class for similarity dataset):
    • Gemma.php
    • Lincs.php
    • Pdb.php
  • DBController.php (class connect to mySql database)
  • RepoRepository.php (class for repo search)
  • RepositoriesRep.php (class for construct Repository,same as Repositories for data search)
3.2.1.2 Database Related in database folder
  • Collection.php (class for collection for users)
  • GoogleUser.php (class for google User)
  • Search.php (class for user search info)
  • StudyConsent.php (class for user study consent info)
  • User.php (class for user account)
  • UserCollection.php (class for user collection)

####3.2.2 Functions

  • AutoCorrection.php (functions for auto correction feature)
  • AdvancedSearchService.php
  • SubmitDataService.php (functions for submit repo page)
  • Utilties.php (some help functions)
  • WriteMysqlLog.php (function to write log to MySql)
  • TrackActivity.php (script for tack user activity)
  • AoutService.php(function for about page)

3.3 Views (get result array from model and show)

####3.3.1 Index (for index.php page)

  • NewFeatures.php
  • PilotProjects.php
  • Repositories.php
  • SearchPanel.php
  • Statistics.php

####3.3.2 Search (for search.php page)

  • Accessibility.php
  • Authorization.php
  • BreadCrumb.php
  • Datatypes.php
  • Pagination.php
  • PartialActivities.php
  • Repositories.php
  • Result_status.php
  • Results.php
  • search_details.php
  • Sorting.php
  • Switch_view.php
  • Synonym.php

####3.3.3 SearchRepository (for search-repository.php page)

  • Breadcrumb.php
  • Filters.php
  • Pilot_projects.php
  • Results.php
  • Sorting.php

####3.3.4 Advanced(for advanced search)

  • Builder.php

####3.3.5 DisplayItem(for display-item.php page)

  • Result.php (show dataset detail info according to data)
  • Similar_dataset.php (show similarity dataset part)
  • PubmedGrant.php (showing grant panel in the right)
  • RelatedPublications.php(show related publication in the right)

####3.3.6 Account(for account related pages)

  • ForgotPassword.php
  • ProfileCollections.php
  • ProfileRecentAcivity.php
  • ProfileSaveSearch.php
  • ResetPassword.php
  • ViewLogin.php
  • ViewProfile.php
  • ViewRegister.php

####3.3.7 Collections(for collection functions)

  • Collections.php
  • ManageCollectionItems.php
  • ManageCollections.php

####3.3.8 GrantDetails (for grant_details.php page)

  • grant_details.php (show grant details )

####3.3.9 Submit (for submit_repository.php and manage_repository.php page)

  • manage_repository.php
  • Submit_repository.php

####3.3.10 About(for about page)

  • About.php (view for about page)

####3.3.11 Others

  • Header.php
  • Footer.php
  • Feedback.php
  • Search_panel.php
  • breadcrumb.php
  • Recent.php
  • Savedsearch.php
  • Share.php
  • no_item_found.php

###3.4 Config

  • Config.php
  • Datasources.php

###3.5 Supporting pages

  • Help.php
  • About.php
  • 403.php
  • 404.php
  • Error.php
  • DataTypes.php
  • Repository_list.php
  • Questionaire.php
  • Feedback.php
  • Schedule_email.php (script for send user email one month after survey) ###3.6 Css
  • Theme.css
  • Expand.css
  • Style.css (used in gwas)

###3.7 Img

####3.7.1 Help

  • And.jpg
  • Not.jpg
  • Or.jpg

####3.7.2 Pilot projects

  • DataDiscoveryindex.png
  • Datarank.png
  • GWAS.png
  • ISEE-DELVE.png

####3.7.3 Repositories /repo.png (total 23 png).

####3.7.4 Others

  • Biocaddie-logo-transparent.png
  • biocaddie_png2.png
  • Ut-logo.png
  • favicon.png
  • Tag-line-colors.jpg
  • Spinner.gif
  • Search.png
  • User.png
  • Sign-in-with-google.png

3.8 Ajax

  • DeleteCollectionItems.php
  • DeleteCollections.php
  • DeleteSearch.php
  • SaveSearch.php
  • SearchSuggestionService.php
  • StudyConsent.php
  • WhatsThis.php (used for autocompletion)

3.9 Fonts

Roboto-Regular.ttf

3.10 Js

  • Js.cookie.js
  • Global.scripts.js
  • Jquery.shorten-1.0.js
  • Jquery.suggest.js
  • Npm.js
  • Loadingoverlay.min.js
  • Bootstrap.js
  • Bootstrap.min.js
  • Bootstrap-dropdown.js
  • Page.scripts
    • Index.js
    • Login.js
    • SearchRepo.js
    • Submit.js
    • Savedsearch.js
    • Register.js
    • Recentactivity.js
    • Advanced.js
    • Collections.js
    • about.js
    • manage_collections.js

###3.11 Lib

  • Google_api_php_client
  • Html-contact-form-captcha
  • Password.php

###3.12 GWAS (GWAS pilot project)

  • Config.php
  • Gwas_header.php
  • Gwas_index.php
  • Gwas_result.php
  • Gwas_result_template.php
  • Helper_functions.php
  • pagination.php

###3.13 Vendor

  • Composer
  • Elasticsearch
  • Guzzle
  • Monolog
  • Pimple
  • Psr
  • Symfony
  • Google
  • Knplabs
  • swiftmailer
  • autoload.php