{
  "openapi": "3.1.0",
  "info": {
    "title": "Arkangel AI free clinical calculators",
    "version": "1.0.0",
    "description": "Read-only, unauthenticated calculators. Each endpoint mirrors a public page on arkangel.ai and accepts the same query parameters. Results support, and do not replace, clinical judgement."
  },
  "servers": [
    {
      "url": "https://arkangel.ai"
    }
  ],
  "paths": {
    "/tools.json": {
      "get": {
        "operationId": "listTools",
        "summary": "List the free clinical calculators",
        "responses": {
          "200": {
            "description": "Catalog of tools with parameter schemas.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/tools/calculo-de-goteo.json": {
      "get": {
        "operationId": "calculoDeGoteo",
        "summary": "Calculadora de goteo IV",
        "description": "Calcula el goteo de una infusión intravenosa por gravedad: gotas por minuto y mL/h a partir del volumen y el tiempo (modo goteo), la duración a partir de una velocidad (modo duracion) o el nuevo goteo de una infusión atrasada con el volumen y el tiempo que quedan (modo recalcular). Factores de goteo de 10, 15 y 20 gotas/mL (macrogotero) y 60 microgotas/mL (microgotero). Los parámetros omitidos usan su valor por defecto. Human-readable page: https://arkangel.ai/es/calculo-de-goteo",
        "parameters": [
          {
            "name": "modo",
            "in": "query",
            "required": false,
            "description": "goteo: volumen y tiempo → gotas/min y mL/h. duracion: velocidad y volumen → duración. recalcular: volumen que queda y tiempo que falta → nuevo goteo.",
            "schema": {
              "type": "string",
              "enum": [
                "goteo",
                "duracion",
                "recalcular"
              ],
              "default": "goteo",
              "description": "goteo: volumen y tiempo → gotas/min y mL/h. duracion: velocidad y volumen → duración. recalcular: volumen que queda y tiempo que falta → nuevo goteo."
            }
          },
          {
            "name": "volumen_ml",
            "in": "query",
            "required": false,
            "description": "Volumen a infundir en mL (en modo recalcular, el volumen que queda en la bolsa; por defecto 400).",
            "schema": {
              "type": "number",
              "x-unit": "mL",
              "exclusiveMinimum": 0,
              "default": 1000,
              "description": "Volumen a infundir en mL (en modo recalcular, el volumen que queda en la bolsa; por defecto 400)."
            }
          },
          {
            "name": "horas",
            "in": "query",
            "required": false,
            "description": "Horas de infusión (modos goteo y recalcular; en recalcular, el tiempo que falta, por defecto 2 h 30 min). Se suma a minutos.",
            "schema": {
              "type": "number",
              "x-unit": "h",
              "minimum": 0,
              "default": 8,
              "description": "Horas de infusión (modos goteo y recalcular; en recalcular, el tiempo que falta, por defecto 2 h 30 min). Se suma a minutos."
            }
          },
          {
            "name": "minutos",
            "in": "query",
            "required": false,
            "description": "Minutos de infusión, sumados a horas. Si envías solo horas o solo minutos, el otro vale 0.",
            "schema": {
              "type": "number",
              "x-unit": "min",
              "minimum": 0,
              "default": 0,
              "description": "Minutos de infusión, sumados a horas. Si envías solo horas o solo minutos, el otro vale 0."
            }
          },
          {
            "name": "factor_goteo",
            "in": "query",
            "required": false,
            "description": "Factor de goteo del equipo: 10, 15 o 20 (macrogotero) o 60 (microgotero).",
            "schema": {
              "type": "number",
              "x-unit": "gotas/mL",
              "enum": [
                20,
                15,
                10,
                60
              ],
              "default": 20,
              "description": "Factor de goteo del equipo: 10, 15 o 20 (macrogotero) o 60 (microgotero)."
            }
          },
          {
            "name": "velocidad",
            "in": "query",
            "required": false,
            "description": "Solo modo duracion: velocidad actual, en la unidad de unidad_velocidad.",
            "schema": {
              "type": "number",
              "exclusiveMinimum": 0,
              "default": 42,
              "description": "Solo modo duracion: velocidad actual, en la unidad de unidad_velocidad."
            }
          },
          {
            "name": "unidad_velocidad",
            "in": "query",
            "required": false,
            "description": "Solo modo duracion: gotas_min (gotas o microgotas por minuto) o ml_h.",
            "schema": {
              "type": "string",
              "enum": [
                "gotas_min",
                "ml_h"
              ],
              "default": "gotas_min",
              "description": "Solo modo duracion: gotas_min (gotas o microgotas por minuto) o ml_h."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResult"
                },
                "example": {
                  "ok": true,
                  "tool": "calculo-de-goteo",
                  "input": {
                    "modo": "goteo",
                    "volumen_ml": 500,
                    "horas": 4,
                    "minutos": 0,
                    "factor_goteo": 60
                  },
                  "result": {
                    "gotas_por_min": 125,
                    "gotas_por_min_exacto": 125,
                    "ml_por_hora": 125,
                    "microgotas_por_min": 125,
                    "gotas_cada_15_s": 31,
                    "tiempo_min": 240,
                    "unidad_gotas": "microgotas",
                    "equipo": "Microgotero 60",
                    "atajo": "microgotas/min = mL/h"
                  },
                  "warnings": [],
                  "explanation": "microgotas/min = 500 mL × 60 ÷ 240 min = 125 → 125 (se redondea al entero más cercano). mL/h = 500 mL ÷ 4 h = 125.",
                  "sources": [
                    {
                      "title": "OpenStax. Clinical Nursing Skills, 13.3 Intravenous Infusion",
                      "url": "https://openstax.org/books/clinical-nursing-skills/pages/13-3-intravenous-infusion"
                    },
                    {
                      "title": "Open RN. Nursing Skills, 5.14 IV Infusion by Gravity",
                      "url": "https://med.libretexts.org/Bookshelves/Nursing/Nursing_Skills_(OpenRN)/05:_Math_Calculations/5.14:_IV_Infusion_by_Gravity"
                    },
                    {
                      "title": "ISO 8536-4:2019. Equipos de infusión de un solo uso, alimentación por gravedad",
                      "url": "https://www.iso.org/standard/70730.html"
                    },
                    {
                      "title": "Secretaría de Salud (México). Modelo de Atención Clínica en Terapia de Infusión Intravascular, 2022",
                      "url": "https://www.gob.mx/cms/uploads/attachment/file/784338/v8_281122_Modelo_de_Atenci_n_Cl_nica_en_Terapia_de_Infusi_n_DGPLADES.pdf"
                    },
                    {
                      "title": "Ministerio de Sanidad (España), AETSA. GPC sobre Terapia Intravenosa con Dispositivos no Permanentes en Adultos, 2014",
                      "url": "https://www.aetsa.org/download/publicaciones/AETSA_2011-3_GPCTIV-resumida_final_8_03_20151.pdf"
                    }
                  ],
                  "disclaimer": "Herramienta educativa de apoyo al cálculo. No sustituye la indicación médica, el juicio clínico ni el protocolo de tu institución. Verifica el factor de goteo en el empaque del equipo y confirma el resultado antes de administrar.",
                  "page_url": "https://arkangel.ai/es/calculo-de-goteo?modo=goteo&volumen_ml=500&horas=4&minutos=0&factor_goteo=60"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters; each error names the parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolError"
                }
              }
            }
          }
        }
      }
    },
    "/tools/calculadora-de-gotejamento.json": {
      "get": {
        "operationId": "calculadoraDeGotejamento",
        "summary": "Calculadora de gotejamento",
        "description": "Calcula o gotejamento de uma infusão intravenosa por gravidade: gotas por minuto, microgotas por minuto e mL/h a partir do volume e do tempo (modo gotejamento), a duração a partir de uma velocidade (modo duracao) ou o novo gotejamento de uma infusão atrasada com o volume e o tempo que restam (modo recalcular). Equipo de macrogotas (20 gotas/mL, padrão no Brasil; também 10 e 15) ou de microgotas (60 microgotas/mL). Os parâmetros omitidos usam o valor padrão. Human-readable page: https://arkangel.ai/pt/calculadora-de-gotejamento",
        "parameters": [
          {
            "name": "modo",
            "in": "query",
            "required": false,
            "description": "gotejamento: volume e tempo → gotas/min e mL/h. duracao: velocidade e volume → duração. recalcular: volume que resta e tempo que falta → novo gotejamento.",
            "schema": {
              "type": "string",
              "enum": [
                "gotejamento",
                "duracao",
                "recalcular"
              ],
              "default": "gotejamento",
              "description": "gotejamento: volume e tempo → gotas/min e mL/h. duracao: velocidade e volume → duração. recalcular: volume que resta e tempo que falta → novo gotejamento."
            }
          },
          {
            "name": "volume_ml",
            "in": "query",
            "required": false,
            "description": "Volume a infundir em mL, incluindo aditivos (no modo recalcular, o volume que resta no frasco; padrão 400).",
            "schema": {
              "type": "number",
              "x-unit": "mL",
              "exclusiveMinimum": 0,
              "default": 1000,
              "description": "Volume a infundir em mL, incluindo aditivos (no modo recalcular, o volume que resta no frasco; padrão 400)."
            }
          },
          {
            "name": "horas",
            "in": "query",
            "required": false,
            "description": "Horas de infusão (modos gotejamento e recalcular; em recalcular, o tempo que falta, padrão 2 h 30 min). Somadas a minutos.",
            "schema": {
              "type": "number",
              "x-unit": "h",
              "minimum": 0,
              "default": 8,
              "description": "Horas de infusão (modos gotejamento e recalcular; em recalcular, o tempo que falta, padrão 2 h 30 min). Somadas a minutos."
            }
          },
          {
            "name": "minutos",
            "in": "query",
            "required": false,
            "description": "Minutos de infusão, somados a horas. Se enviar só horas ou só minutos, o outro vale 0.",
            "schema": {
              "type": "number",
              "x-unit": "min",
              "minimum": 0,
              "default": 0,
              "description": "Minutos de infusão, somados a horas. Se enviar só horas ou só minutos, o outro vale 0."
            }
          },
          {
            "name": "fator_gotejamento",
            "in": "query",
            "required": false,
            "description": "Fator do equipo: 20 (macrogotas, padrão), 10 ou 15, ou 60 (microgotas).",
            "schema": {
              "type": "number",
              "x-unit": "gotas/mL",
              "enum": [
                20,
                15,
                10,
                60
              ],
              "default": 20,
              "description": "Fator do equipo: 20 (macrogotas, padrão), 10 ou 15, ou 60 (microgotas)."
            }
          },
          {
            "name": "velocidade",
            "in": "query",
            "required": false,
            "description": "Só no modo duracao: velocidade atual, na unidade de unidade_velocidade.",
            "schema": {
              "type": "number",
              "exclusiveMinimum": 0,
              "default": 42,
              "description": "Só no modo duracao: velocidade atual, na unidade de unidade_velocidade."
            }
          },
          {
            "name": "unidade_velocidade",
            "in": "query",
            "required": false,
            "description": "Só no modo duracao: gotas_min (gotas ou microgotas por minuto) ou ml_h.",
            "schema": {
              "type": "string",
              "enum": [
                "gotas_min",
                "ml_h"
              ],
              "default": "gotas_min",
              "description": "Só no modo duracao: gotas_min (gotas ou microgotas por minuto) ou ml_h."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResult"
                },
                "example": {
                  "ok": true,
                  "tool": "calculadora-de-gotejamento",
                  "input": {
                    "modo": "gotejamento",
                    "volume_ml": 500,
                    "horas": 6,
                    "minutos": 0,
                    "fator_gotejamento": 20
                  },
                  "result": {
                    "gotas_por_min": 28,
                    "gotas_por_min_exato": 27.78,
                    "ml_por_hora": 83.33,
                    "microgotas_por_min": 83.33,
                    "gotas_a_cada_15_s": 7,
                    "tempo_min": 360,
                    "unidade_gotas": "gotas",
                    "equipo": "Macrogotas 20",
                    "atalho": "gotas/min = mL/h ÷ 3"
                  },
                  "warnings": [],
                  "explanation": "gotas/min = 500 mL × 20 ÷ 360 min = 27,78 → 28 (arredondado para o inteiro mais próximo). mL/h = 500 mL ÷ 6 h = 83,33.",
                  "sources": [
                    {
                      "title": "COREN-SC. Resposta Técnica nº 052/CT/2019: Cálculo e diluição de medicamentos",
                      "url": "https://transparencia.corensc.gov.br/wp-content/uploads/2019/07/RT-052-2019-C%C3%A1lculo-e-dilui%C3%A7%C3%A3o-de-medicamentos.pdf"
                    },
                    {
                      "title": "Universidade Federal de Pelotas, Faculdade de Enfermagem. Cuidados de Enfermagem na Administração de Medicamentos, 2017",
                      "url": "https://wp.ufpel.edu.br/francielefrc/files/2017/04/cuidados-de-enfermagem-administracao-medicamentos.pdf"
                    },
                    {
                      "title": "Ministério da Saúde, ANVISA e Fiocruz. Protocolo de segurança na prescrição, uso e administração de medicamentos, 2013",
                      "url": "https://portaldeboaspraticas.iff.fiocruz.br/biblioteca/protocolo-de-seguranca-na-prescricao-uso-e-administracao-de-medicamentos/"
                    },
                    {
                      "title": "ISO 8536-4:2019. Equipos de infusão de uso único, alimentação por gravidade",
                      "url": "https://www.iso.org/standard/70730.html"
                    },
                    {
                      "title": "OpenStax. Clinical Nursing Skills, 13.3 Intravenous Infusion",
                      "url": "https://openstax.org/books/clinical-nursing-skills/pages/13-3-intravenous-infusion"
                    }
                  ],
                  "disclaimer": "Ferramenta educativa de apoio ao cálculo. Não substitui a prescrição médica, o julgamento clínico nem o protocolo da sua instituição. Confira o fator de gotejamento na embalagem do equipo e confirme o resultado antes de administrar.",
                  "page_url": "https://arkangel.ai/pt/calculadora-de-gotejamento?modo=gotejamento&volume_ml=500&horas=6&minutos=0&fator_gotejamento=20"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters; each error names the parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolError"
                }
              }
            }
          }
        }
      }
    },
    "/tools/equivalencia-de-corticoides.json": {
      "get": {
        "operationId": "equivalenciaDeCorticoides",
        "summary": "Calculadora de equivalencia de corticoides",
        "description": "Convierte una dosis de un corticoide sistémico (oral o intravenoso) a la dosis glucocorticoide equivalente de hidrocortisona, cortisona, prednisona, prednisolona, metilprednisolona, triamcinolona, deflazacort, dexametasona y betametasona, con potencia glucocorticoide y mineralocorticoide, duración de acción, rangos cuando las fuentes no coinciden y la referencia de cada valor. No aplica a corticoides inhalados, tópicos ni de depósito. Human-readable page: https://arkangel.ai/es/equivalencia-de-corticoides",
        "parameters": [
          {
            "name": "corticoide",
            "in": "query",
            "required": false,
            "description": "Corticoide de partida (identificador en minúsculas y sin tildes).",
            "schema": {
              "type": "string",
              "enum": [
                "hidrocortisona",
                "cortisona",
                "prednisona",
                "prednisolona",
                "metilprednisolona",
                "triamcinolona",
                "deflazacort",
                "dexametasona",
                "betametasona"
              ],
              "default": "prednisona",
              "description": "Corticoide de partida (identificador en minúsculas y sin tildes)."
            }
          },
          {
            "name": "dosis_mg",
            "in": "query",
            "required": false,
            "description": "Dosis del corticoide de partida en mg.",
            "schema": {
              "type": "number",
              "x-unit": "mg",
              "exclusiveMinimum": 0,
              "default": 20,
              "description": "Dosis del corticoide de partida en mg."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResult"
                },
                "example": {
                  "ok": true,
                  "tool": "equivalencia-de-corticoides",
                  "input": {
                    "corticoide": "dexametasona",
                    "dosis_mg": 6
                  },
                  "result": {
                    "corticoide": "Dexametasona",
                    "dosis_mg": 6,
                    "equivalente_prednisona_mg": 40,
                    "equivalente_metilprednisolona_mg": 32,
                    "equivalencias": [
                      {
                        "id": "hidrocortisona",
                        "corticoide": "Hidrocortisona",
                        "dosis_equivalente_mg": 160,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "1",
                        "potencia_mineralocorticoide": "1",
                        "duracion_de_accion": "Corta",
                        "duracion_h": "8–12",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "cortisona",
                        "corticoide": "Cortisona",
                        "dosis_equivalente_mg": 200,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "0,8",
                        "potencia_mineralocorticoide": "0,8",
                        "duracion_de_accion": "Corta",
                        "duracion_h": "8–12",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "prednisona",
                        "corticoide": "Prednisona",
                        "dosis_equivalente_mg": 40,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "4",
                        "potencia_mineralocorticoide": "0,8",
                        "duracion_de_accion": "Intermedia",
                        "duracion_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "prednisolona",
                        "corticoide": "Prednisolona",
                        "dosis_equivalente_mg": 40,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "4",
                        "potencia_mineralocorticoide": "0,8",
                        "duracion_de_accion": "Intermedia",
                        "duracion_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "metilprednisolona",
                        "corticoide": "Metilprednisolona",
                        "dosis_equivalente_mg": 32,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "5",
                        "potencia_mineralocorticoide": "0,5 (mínima)",
                        "duracion_de_accion": "Intermedia",
                        "duracion_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "triamcinolona",
                        "corticoide": "Triamcinolona",
                        "dosis_equivalente_mg": 32,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "5",
                        "potencia_mineralocorticoide": "0",
                        "duracion_de_accion": "Intermedia",
                        "duracion_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "deflazacort",
                        "corticoide": "Deflazacort",
                        "dosis_equivalente_mg": 48,
                        "rango_mg": [
                          48,
                          60
                        ],
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "≈2,7–3,3 (derivada de la dosis)",
                        "potencia_mineralocorticoide": "0,5",
                        "duracion_de_accion": "Intermedia",
                        "duracion_h": "18–36",
                        "nota_rango": "6 mg según la ficha técnica de la AEMPS y Garrahan 2000; 7,5 mg según Parente 2017 y Garrahan 2021. La relación con prednisona varía según la enfermedad (≈1,2:1 a 1,5:1).",
                        "referencia": "AEMPS, ficha técnica de deflazacort"
                      },
                      {
                        "id": "dexametasona",
                        "corticoide": "Dexametasona",
                        "dosis_equivalente_mg": 6,
                        "es_dosis_de_partida": true,
                        "potencia_glucocorticoide": "25–30",
                        "potencia_mineralocorticoide": "0 (mínima)",
                        "duracion_de_accion": "Larga",
                        "duracion_h": "36–72",
                        "nota_rango": "Las cinco fuentes revisadas coinciden en 0,75 mg; la potencia relativa figura como 30 (Liu 2013, Parente 2017 tabla 3) o 25 (Parente 2017 tabla 1, Garrahan 2021).",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "betametasona",
                        "corticoide": "Betametasona",
                        "dosis_equivalente_mg": 4.8,
                        "rango_mg": [
                          4.8,
                          6
                        ],
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "25–30",
                        "potencia_mineralocorticoide": "0",
                        "duracion_de_accion": "Larga",
                        "duracion_h": "36–72",
                        "nota_rango": "0,6 mg según Liu 2013, Parente 2017 (tabla 3) y Garrahan 2021; 0,75 mg según Parente 2017 (tabla 4) y Garrahan 2000.",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "fludrocortisona",
                        "corticoide": "Fludrocortisona",
                        "dosis_equivalente_mg": null,
                        "es_dosis_de_partida": false,
                        "potencia_glucocorticoide": "10–15",
                        "potencia_mineralocorticoide": "125–150",
                        "duracion_de_accion": "—",
                        "duracion_h": "12–36",
                        "nota": "Mineralocorticoide: su equivalencia glucocorticoide no tiene sentido clínico. Se usa para reponer aldosterona (≈0,1 mg/día), no como antiinflamatorio.",
                        "referencia": "Liu 2013"
                      }
                    ]
                  },
                  "warnings": [],
                  "explanation": "6 mg de dexametasona equivalen a 40 mg de prednisona y 32 mg de metilprednisolona. Dosis equivalente = dosis ÷ dosis de referencia del corticoide de partida × dosis de referencia del de destino (referencias equivalentes a 5 mg de prednisona). Compara solo el efecto glucocorticoide de dosis sistémicas (oral o intravenosa).",
                  "sources": [
                    {
                      "title": "Liu D, Ahmet A, Ward L, et al. A practical guide to the monitoring and management of the complications of systemic corticosteroid therapy. Allergy Asthma Clin Immunol. 2013;9:30 (Tabla 3).",
                      "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC3765115/"
                    },
                    {
                      "title": "Parente L. Deflazacort: therapeutic index, relative potency and equivalent doses versus other corticosteroids. BMC Pharmacol Toxicol. 2017;18:1 (Tablas 1, 3 y 4).",
                      "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC5216559/"
                    },
                    {
                      "title": "AEMPS (CIMA). Ficha técnica de Dezacor 30 mg comprimidos (deflazacort), secciones 4.2, 4.4 y 5.1.",
                      "url": "https://cima.aemps.es/cima/dochtml/ft/57816/FichaTecnica_57816.html"
                    },
                    {
                      "title": "Hospital de Pediatría Garrahan. Dosis equivalentes y potencia relativa de retención de sodio (Boletín CIME n.º 13, 2000).",
                      "url": "https://garrahan.gov.ar/PDFS/medicamentos/tablas/corticoequiv.pdf"
                    },
                    {
                      "title": "Hospital de Pediatría Garrahan. Corticosteroides: actualización. Boletín CIME n.º 47, octubre 2021 (Tabla 1).",
                      "url": "https://www.garrahan.gov.ar/PDFS/cime/octubre21.pdf"
                    }
                  ],
                  "disclaimer": "Herramienta educativa para profesionales de la salud. No sustituye la ficha técnica, las guías clínicas ni el juicio clínico, y no debe usarse para decidir el tratamiento de un paciente concreto sin valoración médica.",
                  "page_url": "https://arkangel.ai/es/equivalencia-de-corticoides?corticoide=dexametasona&dosis_mg=6"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters; each error names the parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolError"
                }
              }
            }
          }
        }
      }
    },
    "/tools/tabela-de-equivalencia-de-corticoides.json": {
      "get": {
        "operationId": "tabelaDeEquivalenciaDeCorticoides",
        "summary": "Calculadora de equivalência de corticoides",
        "description": "Converte a dose de um corticoide sistêmico (oral ou intravenoso) na dose glicocorticoide equivalente de hidrocortisona, cortisona, prednisona, prednisolona, metilprednisolona, triancinolona, deflazacorte, dexametasona e betametasona, com potência glicocorticoide e mineralocorticoide, duração de ação, faixas quando as fontes não concordam e a referência de cada valor. Não se aplica a corticoides inalatórios, tópicos nem de depósito. Human-readable page: https://arkangel.ai/pt/tabela-de-equivalencia-de-corticoides",
        "parameters": [
          {
            "name": "corticoide",
            "in": "query",
            "required": false,
            "description": "Corticoide de partida (identificador em minúsculas e sem acentos).",
            "schema": {
              "type": "string",
              "enum": [
                "hidrocortisona",
                "cortisona",
                "prednisona",
                "prednisolona",
                "metilprednisolona",
                "triancinolona",
                "deflazacorte",
                "dexametasona",
                "betametasona"
              ],
              "default": "prednisona",
              "description": "Corticoide de partida (identificador em minúsculas e sem acentos)."
            }
          },
          {
            "name": "dose_mg",
            "in": "query",
            "required": false,
            "description": "Dose do corticoide de partida em mg.",
            "schema": {
              "type": "number",
              "x-unit": "mg",
              "exclusiveMinimum": 0,
              "default": 20,
              "description": "Dose do corticoide de partida em mg."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResult"
                },
                "example": {
                  "ok": true,
                  "tool": "tabela-de-equivalencia-de-corticoides",
                  "input": {
                    "corticoide": "dexametasona",
                    "dose_mg": 6
                  },
                  "result": {
                    "corticoide": "Dexametasona",
                    "dose_mg": 6,
                    "equivalente_prednisona_mg": 40,
                    "equivalente_metilprednisolona_mg": 32,
                    "equivalencias": [
                      {
                        "id": "hidrocortisona",
                        "corticoide": "Hidrocortisona",
                        "dose_equivalente_mg": 160,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "1",
                        "potencia_mineralocorticoide": "1",
                        "duracao_de_acao": "Curta",
                        "duracao_h": "8–12",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "cortisona",
                        "corticoide": "Cortisona",
                        "dose_equivalente_mg": 200,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "0,8",
                        "potencia_mineralocorticoide": "0,8",
                        "duracao_de_acao": "Curta",
                        "duracao_h": "8–12",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "prednisona",
                        "corticoide": "Prednisona",
                        "dose_equivalente_mg": 40,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "4",
                        "potencia_mineralocorticoide": "0,8",
                        "duracao_de_acao": "Intermediária",
                        "duracao_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "prednisolona",
                        "corticoide": "Prednisolona",
                        "dose_equivalente_mg": 40,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "4",
                        "potencia_mineralocorticoide": "0,8",
                        "duracao_de_acao": "Intermediária",
                        "duracao_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "metilprednisolona",
                        "corticoide": "Metilprednisolona",
                        "dose_equivalente_mg": 32,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "5",
                        "potencia_mineralocorticoide": "0,5 (mínima)",
                        "duracao_de_acao": "Intermediária",
                        "duracao_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "triancinolona",
                        "corticoide": "Triancinolona",
                        "dose_equivalente_mg": 32,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "5",
                        "potencia_mineralocorticoide": "0",
                        "duracao_de_acao": "Intermediária",
                        "duracao_h": "12–36",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "deflazacorte",
                        "corticoide": "Deflazacorte",
                        "dose_equivalente_mg": 48,
                        "faixa_mg": [
                          48,
                          60
                        ],
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "≈2,7–3,3 (derivada da dose)",
                        "potencia_mineralocorticoide": "0,5",
                        "duracao_de_acao": "Intermediária",
                        "duracao_h": "18–36",
                        "nota_faixa": "6 mg segundo a ficha técnica da AEMPS e Garrahan 2000; 7,5 mg segundo Parente 2017 e Garrahan 2021. A relação com a prednisona varia conforme a doença (≈1,2:1 a 1,5:1).",
                        "referencia": "AEMPS, ficha técnica do deflazacorte"
                      },
                      {
                        "id": "dexametasona",
                        "corticoide": "Dexametasona",
                        "dose_equivalente_mg": 6,
                        "e_dose_de_partida": true,
                        "potencia_glicocorticoide": "25–30",
                        "potencia_mineralocorticoide": "0 (mínima)",
                        "duracao_de_acao": "Longa",
                        "duracao_h": "36–72",
                        "nota_faixa": "As cinco fontes revisadas concordam em 0,75 mg; a potência relativa aparece como 30 (Liu 2013, Parente 2017 tabela 3) ou 25 (Parente 2017 tabela 1, Garrahan 2021).",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "betametasona",
                        "corticoide": "Betametasona",
                        "dose_equivalente_mg": 4.8,
                        "faixa_mg": [
                          4.8,
                          6
                        ],
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "25–30",
                        "potencia_mineralocorticoide": "0",
                        "duracao_de_acao": "Longa",
                        "duracao_h": "36–72",
                        "nota_faixa": "0,6 mg segundo Liu 2013, Parente 2017 (tabela 3) e Garrahan 2021; 0,75 mg segundo Parente 2017 (tabela 4) e Garrahan 2000.",
                        "referencia": "Liu 2013"
                      },
                      {
                        "id": "fludrocortisona",
                        "corticoide": "Fludrocortisona",
                        "dose_equivalente_mg": null,
                        "e_dose_de_partida": false,
                        "potencia_glicocorticoide": "10–15",
                        "potencia_mineralocorticoide": "125–150",
                        "duracao_de_acao": "—",
                        "duracao_h": "12–36",
                        "nota": "Mineralocorticoide: sua equivalência glicocorticoide não tem sentido clínico. É usada para repor a aldosterona (≈0,1 mg/dia), não como anti-inflamatório.",
                        "referencia": "Liu 2013"
                      }
                    ]
                  },
                  "warnings": [],
                  "explanation": "6 mg de dexametasona equivalem a 40 mg de prednisona e 32 mg de metilprednisolona. Dose equivalente = dose ÷ dose de referência do corticoide de partida × dose de referência do corticoide de destino (referências equivalentes a 5 mg de prednisona). Compara apenas o efeito glicocorticoide de doses sistêmicas (oral ou intravenosa).",
                  "sources": [
                    {
                      "title": "Liu D, Ahmet A, Ward L, et al. A practical guide to the monitoring and management of the complications of systemic corticosteroid therapy. Allergy Asthma Clin Immunol. 2013;9:30 (tabela 3; em inglês).",
                      "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC3765115/"
                    },
                    {
                      "title": "Parente L. Deflazacort: therapeutic index, relative potency and equivalent doses versus other corticosteroids. BMC Pharmacol Toxicol. 2017;18:1 (tabelas 1, 3 e 4; em inglês).",
                      "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC5216559/"
                    },
                    {
                      "title": "AEMPS (CIMA, Espanha). Ficha técnica de Dezacor 30 mg comprimidos (deflazacorte), seções 4.2, 4.4 e 5.1 (em espanhol).",
                      "url": "https://cima.aemps.es/cima/dochtml/ft/57816/FichaTecnica_57816.html"
                    },
                    {
                      "title": "Hospital de Pediatría Garrahan (Argentina). Doses equivalentes e potência relativa de retenção de sódio. Boletim CIME nº 13, 2000 (em espanhol).",
                      "url": "https://garrahan.gov.ar/PDFS/medicamentos/tablas/corticoequiv.pdf"
                    },
                    {
                      "title": "Hospital de Pediatría Garrahan (Argentina). Corticosteroides: atualização. Boletim CIME nº 47, outubro de 2021, tabela 1 (em espanhol).",
                      "url": "https://www.garrahan.gov.ar/PDFS/cime/octubre21.pdf"
                    }
                  ],
                  "disclaimer": "Ferramenta educativa para profissionais de saúde. Não substitui a bula, as diretrizes clínicas nem o julgamento clínico, e não deve ser usada para decidir o tratamento de um paciente específico sem avaliação médica.",
                  "page_url": "https://arkangel.ai/pt/tabela-de-equivalencia-de-corticoides?corticoide=dexametasona&dose_mg=6"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters; each error names the parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolError"
                }
              }
            }
          }
        }
      }
    },
    "/tools/fagan-nomogram.json": {
      "get": {
        "operationId": "faganNomogram",
        "summary": "Fagan nomogram / post-test probability calculator",
        "description": "Computes the post-test probability of a diagnosis after a positive and after a negative test result from the pre-test probability and either the test's sensitivity and specificity or its likelihood ratios (Bayes' theorem in odds form, as drawn by the Fagan nomogram). Returns the likelihood ratios, odds, post-test probabilities and an interpretation of each LR. The mode is inferred from the parameters sent. In lr mode an omitted lr_pos or lr_neg leaves that result out (null) rather than using a default; sens_pct and spec_pct must be sent together. With no test parameters at all, the example defaults are used. Human-readable page: https://arkangel.ai/fagan-nomogram",
        "parameters": [
          {
            "name": "pretest_pct",
            "in": "query",
            "required": false,
            "description": "Pre-test probability of the diagnosis, in percent.",
            "schema": {
              "type": "number",
              "x-unit": "%",
              "exclusiveMinimum": 0,
              "exclusiveMaximum": 100,
              "default": 30,
              "description": "Pre-test probability of the diagnosis, in percent."
            }
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "description": "sens_spec uses sens_pct and spec_pct; lr uses lr_pos and lr_neg. Optional: inferred as lr when only lr_pos/lr_neg are sent.",
            "schema": {
              "type": "string",
              "enum": [
                "sens_spec",
                "lr"
              ],
              "default": "sens_spec",
              "description": "sens_spec uses sens_pct and spec_pct; lr uses lr_pos and lr_neg. Optional: inferred as lr when only lr_pos/lr_neg are sent."
            }
          },
          {
            "name": "sens_pct",
            "in": "query",
            "required": false,
            "description": "Test sensitivity in percent (mode sens_spec).",
            "schema": {
              "type": "number",
              "x-unit": "%",
              "minimum": 0,
              "maximum": 100,
              "default": 85,
              "description": "Test sensitivity in percent (mode sens_spec)."
            }
          },
          {
            "name": "spec_pct",
            "in": "query",
            "required": false,
            "description": "Test specificity in percent (mode sens_spec).",
            "schema": {
              "type": "number",
              "x-unit": "%",
              "minimum": 0,
              "maximum": 100,
              "default": 90,
              "description": "Test specificity in percent (mode sens_spec)."
            }
          },
          {
            "name": "lr_pos",
            "in": "query",
            "required": false,
            "description": "Positive likelihood ratio (mode lr).",
            "schema": {
              "type": "number",
              "exclusiveMinimum": 0,
              "default": 8.5,
              "description": "Positive likelihood ratio (mode lr)."
            }
          },
          {
            "name": "lr_neg",
            "in": "query",
            "required": false,
            "description": "Negative likelihood ratio (mode lr).",
            "schema": {
              "type": "number",
              "exclusiveMinimum": 0,
              "default": 0.17,
              "description": "Negative likelihood ratio (mode lr)."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResult"
                },
                "example": {
                  "ok": true,
                  "tool": "fagan-nomogram",
                  "input": {
                    "mode": "sens_spec",
                    "pretest_pct": 20,
                    "sens_pct": 90,
                    "spec_pct": 80
                  },
                  "result": {
                    "pre_test_probability_pct": 20,
                    "lr_pos": 4.5,
                    "lr_neg": 0.125,
                    "positive": {
                      "lr": 4.5,
                      "pre_test_odds": 0.25,
                      "post_test_odds": 1.125,
                      "post_test_probability_pct": 52.94,
                      "interpretation": "Small increase in probability"
                    },
                    "negative": {
                      "lr": 0.125,
                      "pre_test_odds": 0.25,
                      "post_test_odds": 0.0312,
                      "post_test_probability_pct": 3.03,
                      "interpretation": "Moderate decrease in probability"
                    }
                  },
                  "warnings": [],
                  "explanation": "Bayes' theorem in odds form: pre-test odds = p / (1 − p) = 0.2 / (1 − 0.2); post-test odds = pre-test odds × LR; post-test probability = odds / (1 + odds). LR+ = sensitivity / (1 − specificity); LR− = (1 − sensitivity) / specificity. If positive: LR+ 4.5; pre-test odds 0.25 × 4.5 = post-test odds 1.13; post-test probability = 1.13 / (1 + 1.13) = 52.9%. If negative: LR− 0.125; pre-test odds 0.25 × 0.125 = post-test odds 0.0312; post-test probability = 0.0312 / (1 + 0.0312) = 3.0%.",
                  "sources": [
                    {
                      "title": "Fagan TJ. Nomogram for Bayes theorem. N Engl J Med. 1975;293(5):257.",
                      "url": "https://doi.org/10.1056/NEJM197507312930513"
                    },
                    {
                      "title": "Deeks JJ, Altman DG. Diagnostic tests 4: likelihood ratios. BMJ. 2004;329(7458):168-169.",
                      "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC478236/"
                    },
                    {
                      "title": "McGee S. Simplifying likelihood ratios. J Gen Intern Med. 2002;17(8):647-650.",
                      "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC1495095/"
                    },
                    {
                      "title": "Centre for Evidence-Based Medicine, University of Oxford. Likelihood ratios.",
                      "url": "https://www.cebm.ox.ac.uk/resources/ebm-tools/likelihood-ratios"
                    }
                  ],
                  "disclaimer": "This calculator is for education and clinical decision support by health professionals. It does not replace clinical judgement or local guidelines, and no data you enter leaves your browser.",
                  "page_url": "https://arkangel.ai/fagan-nomogram?mode=sens_spec&pretest_pct=20&sens_pct=90&spec_pct=80"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters; each error names the parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ToolResult": {
        "type": "object",
        "required": [
          "ok",
          "tool",
          "input",
          "result",
          "warnings",
          "explanation",
          "sources",
          "disclaimer",
          "page_url"
        ],
        "properties": {
          "ok": {
            "const": true
          },
          "tool": {
            "type": "string"
          },
          "input": {
            "type": "object",
            "description": "Parameters used, after defaults were applied."
          },
          "result": {
            "type": "object",
            "description": "Tool-specific result fields."
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "explanation": {
            "type": "string"
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "disclaimer": {
            "type": "string"
          },
          "page_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "ToolError": {
        "type": "object",
        "required": [
          "ok",
          "errors"
        ],
        "properties": {
          "ok": {
            "const": false
          },
          "tool": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "param",
                "message"
              ],
              "properties": {
                "param": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
