Skip to main content
Glama

Medical Calculator MCP Service

qtc_hodges_calculator.py4.12 kB
""" QTc Hodges Calculator """ from typing import Dict, Any from medcalc import ( BaseCalculator, CalculatorInfo, Parameter, ParameterType, ValidationResult, CalculationResult, register_calculator ) from medcalc.utils import round_number @register_calculator("qtc_hodges") class QTcHodgesCalculator(BaseCalculator): """QTc Hodges计算器实现""" def get_info(self) -> CalculatorInfo: return CalculatorInfo( id=58, name="QTc Hodges Calculator", category="cardiology", description="Calculate corrected QT interval using Hodges formula", parameters=[ Parameter( name="qt_interval", type=ParameterType.NUMERIC, required=True, unit="msec", min_value=200, max_value=800, description="QT interval in milliseconds" ), Parameter( name="heart_rate", type=ParameterType.NUMERIC, required=True, unit="bpm", min_value=30, max_value=250, description="Heart rate in beats per minute" ) ] ) def validate_parameters(self, parameters: Dict[str, Any]) -> ValidationResult: """验证参数""" errors = [] # 获取参数值 qt_interval = parameters.get("qt_interval") heart_rate = parameters.get("heart_rate") # 验证QT间期范围 if qt_interval is not None: if not (200 <= qt_interval <= 800): errors.append("QT interval must be between 200 and 800 msec") # 验证心率范围 if heart_rate is not None: if not (30 <= heart_rate <= 250): errors.append("Heart rate must be between 30 and 250 bpm") return ValidationResult( is_valid=len(errors) == 0, errors=errors ) def calculate(self, parameters: Dict[str, Any]) -> CalculationResult: """执行计算""" qt_interval = parameters.get("qt_interval") heart_rate = parameters.get("heart_rate") # 计算RR间期(秒) rr_interval_sec = round_number(60 / heart_rate) # 计算QTc: QTc = QT间期 + 1.75 * [(60/RR间期) - 60] qtc = round_number(qt_interval + 1.75 * ((60 / rr_interval_sec) - 60)) # 生成解释 explanation = self._generate_explanation(qt_interval, heart_rate, rr_interval_sec, qtc) return CalculationResult( value=qtc, unit="msec", explanation=explanation, metadata={ "qt_interval": qt_interval, "heart_rate": heart_rate, "rr_interval": rr_interval_sec, "formula": "QTc = QT + 1.75 * [(60/RR) - 60]" } ) def _generate_explanation(self, qt_interval: float, heart_rate: float, rr_interval_sec: float, qtc: float) -> str: """生成计算解释""" explanation = "The corrected QT interval using the Hodges formula is computed as QTc = QT interval + 1.75 * [(60 /rr_interval_sec) - 60], " explanation += "where QT interval is in msec, and RR interval is given as 60/(heart rate).\n\n" explanation += f"The patient's heart rate is {heart_rate} beats per minute.\n" explanation += f"The QT interval is {qt_interval} msec.\n" explanation += f"The RR interval is computed as 60/(heart rate), and so the RR interval is 60/{heart_rate} = {rr_interval_sec}.\n" explanation += f"Hence, plugging in these values, we will get {qt_interval} + 1.75 * [(60/{rr_interval_sec}) - 60] = {qtc}.\n" explanation += f"The patient's corrected QT interval (QTc) is {qtc} msec." return explanation

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/winninghealth/medcalcmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server