anchor.diff:  ^^^^^^^^^^^^^^^^^^^^^^^
   Mappings are needed because of the variations in terminology used between disparate data sources.
   
  -image:images/figures/mapping_terminology.png[scale="75%"]
  +image:images/figures/mapping_terminology.png[]
   
   Initial Steps
   ^^^^^^^^^^^^^
  
positive.code: ~~~~~~~~~~~~~~
  OpenFurther utilizes the i2b2 web client as a front-end for querying data. The user interface has been modified to support federated querying.
  
  image:images/figures/i2b2_ui_query_results.png[scale="75%"]
  
  Hooking OpenFurther into i2b2
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
negative.code: ~~~~~~~~~~~~~~~~~~~~
  Data source adapters are facades around an existing data source. Data source adapters can be entirely custom for any given implementation or they can use a pre-written adapter if their data source is already in a well-known format such as OMOP, i2b2, OpenEMR, etc
  
  image:images/figures/data_source_adapters.png[]
  
  * Data source adapters follow the chain-of-responsibility pattern. The process of adapting a query is broken down into several small steps and each output is passed on to the next step. Data source adapters typically have 4 commons steps. 
  
  