Source code for tooluniverse.health_disparities_tool

"""
Health Disparities Tool

Provides information about health disparities data sources including:
- CDC Social Vulnerability Index (SVI)
- County Health Rankings

Note: Many of these data sources are file-based (CSV downloads) rather than REST APIs.
This tool provides information and links to access the data.
"""

from typing import Dict, Any
from .base_tool import BaseTool
from .tool_registry import register_tool


[docs] @register_tool("HealthDisparitiesTool") class HealthDisparitiesTool(BaseTool): """Health disparities data information tool."""
[docs] def __init__(self, tool_config): super().__init__(tool_config) self.endpoint = tool_config["fields"]["endpoint"]
[docs] def _get_svi_info(self, arguments: Dict[str, Any]) -> Dict[str, Any]: """Get SVI data source information.""" year = arguments.get("year") geography = arguments.get("geography", "county") # SVI is typically released every 2 years # Common years: 2020, 2018, 2016, 2014, etc. base_url = "https://www.atsdr.cdc.gov/placeandhealth/svi" data_sources = [] # Provide information about available SVI datasets if year: data_sources.append({ "year": year, "geography": geography, "download_url": f"{base_url}/data_documentation_download.html", "documentation_url": f"{base_url}/index.html" }) else: # Provide info for recent years for y in [2020, 2018, 2016]: data_sources.append({ "year": y, "geography": geography, "download_url": f"{base_url}/data_documentation_download.html", "documentation_url": f"{base_url}/index.html" }) return { "data": { "data_sources": data_sources, "note": "SVI data is available as downloadable CSV files. Visit the download URL to access the data. Data includes social vulnerability indicators at county, census tract, and state levels." }, "metadata": { "source": "CDC ATSDR Social Vulnerability Index", "endpoint": self.endpoint, "query": arguments, }, }
[docs] def _get_county_rankings_info(self, arguments: Dict[str, Any]) -> Dict[str, Any]: """Get County Health Rankings information.""" year = arguments.get("year") state = arguments.get("state") base_url = "https://www.countyhealthrankings.org" data_sources = [{ "year": year or "latest", "state": state or "all", "access_url": f"{base_url}/explore-health-rankings" }] return { "data": { "data_sources": data_sources, "note": "County Health Rankings data is available through their website. Visit the access URL to explore and download county-level health data. Data includes health outcomes, health factors, and health behaviors by county." }, "metadata": { "source": "County Health Rankings & Roadmaps", "endpoint": self.endpoint, "query": arguments, }, }
[docs] def run(self, arguments: Dict[str, Any]) -> Dict[str, Any]: """Execute the health disparities tool.""" if self.endpoint == "svi": return self._get_svi_info(arguments) elif self.endpoint == "county_rankings": return self._get_county_rankings_info(arguments) else: return {"error": f"Unknown endpoint: {self.endpoint}"}