# Shrine Webclient The MedCo plugin of the Shrine weblient can be found at `shrine-webclient/src/main/html/js-i2b2/cells/plugins/MedCo/`. It is structured as follows: - `assets/`: folder containing (most of) the html of the plugin and the css files. - `php/`: folder containing the php requests to the database to fecth genes, protein positions and variant names/ids. - `cell_config_data.js`: configuration file of the plugin. - `cryptolib.js`, `cryptolib.map.js`: contain some of the unlynx functions that were transpiled from go to javascript by using gopherjs. These functions are used for example to encrypt and decrypt. Information about the generation of these files can be found in `/shrine-webclient/src/main/tools/README.md`. - `auto-complete.min.js`: library used to obtain interactive autocompletion in the popups (i.e. by gene. by protein position and by variant name). - `d3.min.js`, `d3pie.min.js`: d3 library which is used to show the patient counts with a pie. - `MedCo_ctrl.js`: contains the two functions to initialize and unload the plugin and also the (hardcoded) private key of the user. - `MedCo_ctrl_Dates.js`: code to manage the date constraints when building the query. - `MedCo_popups.js`: contains the code of all the popups needed by the MedCo plugin. - `MedCo_QryTool.js`: contains all the functions used to manage the query, e.g. creation/deletion of panels, drop/deletion of concepts, run query, show response. - `MedCo_tests.js`: code to manage the Test tab of the plugin. That tab is used to run predefined query for easy testing. - `MedCo_background.js`: code to run encryption and decryption in background (with Workers). - `group.toml`: contains the description of the cothority servers. It is used to compute the aggregate key which will be used to encrypt the sensitive parameter of the query. If any of the keys of the server get changed you should update this file.