A system for accessing health care data comprising: an authentication module configured to receive a data request from a user of a client device and authenticate the data request by determining a relationship between the user and the data being requested and granting or denying access to the data based on the relationship, wherein the data request includes one or more filters describing one or more patients and responsive to the user being an administrator and the data request being for laboratory test results, the authentication module being configured to deny the administrator access to the data request; a plurality of data sources, each data source including health care data associated with one or more patients; and a first data retrieval service module coupled to the client device and to the data sources, the first data retrieval service module being configured to: determine a topology describing a relationship between the first data retrieval service module and the data sources to determine access instructions for communicating the data request to the plurality of data sources; update the access instructions by transmitting delegation requests to the plurality of data sources; receive the data request from authentication module and transmit the data request to a first set of data sources from the plurality of data sources; receive health care data corresponding to the data request and pointers describing how to access the health care data within the first set of data sources from the first set of data sources; generate a catalog from the received health care data and pointers received from the first set of data sources that is organized into a single result set; reformat at least a portion of the catalog into a format for use by the client device based on the data request and transmit at least a portion of the reformatted catalog to the client device; and a data cache coupled to the first data retrieval source module, the data cache being configured to update a set of previously generated catalogs to include the reformatted catalog, wherein the set of previously generated catalogs reduces a time for returning the data being requested to the client device. an authentication module configured to receive a data request from a user of a client device and authenticate the data request by determining a relationship between the user and the data being requested and granting or denying access to the data based on the relationship, wherein the data request includes one or more filters describing one or more patients and responsive to the user being an administrator and the data request being for laboratory test results, the authentication module being configured to deny the administrator access to the data request; a plurality of data sources, each data source including health care data associated with one or more patients; and a first data retrieval service module coupled to the client device and to the data sources, the first data retrieval service module being configured to: determine a topology describing a relationship between the first data retrieval service module and the data sources to determine access instructions for communicating the data request to the plurality of data sources; update the access instructions by transmitting delegation requests to the plurality of data sources; receive the data request from authentication module and transmit the data request to a first set of data sources from the plurality of data sources; receive health care data corresponding to the data request and pointers describing how to access the health care data within the first set of data sources from the first set of data sources; generate a catalog from the received health care data and pointers received from the first set of data sources that is organized into a single result set; reformat at least a portion of the catalog into a format for use by the client device based on the data request and transmit at least a portion of the reformatted catalog to the client device; and a data cache coupled to the first data retrieval source module, the data cache being configured to update a set of previously generated catalogs to include the reformatted catalog, wherein the set of previously generated catalogs reduces a time for returning the data being requested to the client device. determine a topology describing a relationship between the first data retrieval service module and the data sources to determine access instructions for communicating the data request to the plurality of data sources; update the access instructions by transmitting delegation requests to the plurality of data sources; receive the data request from authentication module and transmit the data request to a first set of data sources from the plurality of data sources; receive health care data corresponding to the data request and pointers describing how to access the health care data within the first set of data sources from the first set of data sources; generate a catalog from the received health care data and pointers received from the first set of data sources that is organized into a single result set; reformat at least a portion of the catalog into a format for use by the client device based on the data request and transmit at least a portion of the reformatted catalog to the client device; and a data cache coupled to the first data retrieval source module, the data cache being configured to update a set of previously generated catalogs to include the reformatted catalog, wherein the set of previously generated catalogs reduces a time for returning the data being requested to the client device.