Saltar al contenido principal

Evaluación de severidad automática local

POST /severity-assessment/automatic/local evalúa la severidad de una condición conocida en un único sitio corporal. La mayoría de las subpuntuaciones se derivan de la imagen mediante inteligencia artificial; la petición también incluye cualquier dato clínico que la imagen no puede proporcionar (edad del paciente, síntomas reportados por el paciente, porcentaje de área corporal de la región). El conjunto de estas entradas está fijo por sistema de puntuación y se lista en la tabla de campos de petición a continuación.

Petición

import requests
import base64

base_url = "<base_url>"
url = f"{base_url}/severity-assessment/automatic/local"

image_path = "<path_to_image>"
with open(image_path, "rb") as f:
image_data = base64.b64encode(f.read()).decode("utf-8")

# bodySite, scoringSystem code, and questionnaireResponse.item are discovered from
# helper endpoints at integration time see "Shared schema".
json_payload = {
"payload": {
"contentAttachment": {
"data": image_data,
"contentType": "image/jpeg"
}
},
"bodySite": "<body_site_code>",
"knownCondition": {
"conclusion": { "text": "<plain-text condition>" }
},
"scoringSystem": {
"<scoring_system_code>": {
"questionnaireResponse": {
"item": { "<item_code>": "<answer_value>" }
}
}
}
}

headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <access_token>"
}

response = requests.post(url, json=json_payload, headers=headers)
result = response.json()

Campos de la petición

La cabecera Authorization es el token portador estándar; ver Cabecera de autenticación.

Respuesta

{
"resourceType": "DiagnosticReport",
"identifier": {
"use": "official",
"value": "f426f15d-fcea-4bd0-942e-7528bf163c5d"
},
"status": "preliminary",
"issued": "2026-01-29T13:16:38.666795",
"analysisDuration": 0.19751,
"mediaValidity": { /* see the "Image quality assessment" common building block */ },
"patientEvolution": {
// Only the scoring system you requested is populated; the keys for all
// other supported scorers are present with a `null` value.
"<scoring_system_code>": {
"score": {
"value": 1.6,
"interpretation": {
"category": "Mild",
"intensity": 1
},
"additionalData": {
"globalScoreContribution": { "value": 1.6 }
}
},
"item": {
// The set of components varies by scoring system; their full definitions
// are returned by GET /questionnaires?code=<scoring_system_code>.
"<component_code>": {
"code": { "text": "<human-readable component name>" },
"value": 2,
"additionalData": { "aiConfidence": { "value": 95.4 } }
}
},
"media": {
"attachment": {
"maskRaw": { /* raw probability mask, base64-encoded image */ },
"maskBinary": { /* binarised mask */ },
"segmentation": { /* coloured segmentation overlay */ }
}
}
}
}
}

Campos de nivel superior

Los campos FHIR de nivel superior siguen la envoltorio de respuesta FHIR compartida, y el bloque mediaValidity sigue la sección compartida Evaluación de calidad de imagen.

  • patientEvolution objeto con clave según código de sistema de puntuación. Solo se popula el sistema de puntuación que solicitaste; todos los demás son null.

patientEvolution.<scoringSystem>.score

"score": {
"value": 1.6,
"interpretation": {
"category": "Mild",
"intensity": 1
},
"additionalData": {
"globalScoreContribution": { "value": 1.6 }
}
}
  • score.value puntuación numérica de severidad, específica de la escala según el sistema de puntuación.
  • score.interpretation.category etiqueta categórica (p. ej. None, Mild, Moderate, Severe).
  • score.interpretation.intensity código de intensidad categórica: 1 (baja), 2 (moderada), 3 (alta).
  • score.additionalData.globalScoreContribution.value la contribución de este sitio corporal a la puntuación global (cuerpo completo). Útil cuando posteriormente combines múltiples llamadas a automatic/local en una severidad general única.

patientEvolution.<scoringSystem>.item

Cada item.<component> es una subpuntuación que contribuyó a score.value. El conjunto de componentes varía según el sistema de puntuación y es devuelto por GET /questionnaires?code=<scoring_system_code>.

  • item.<component>.code.text nombre legible del componente.
  • item.<component>.value puntuación numérica del componente, en el rango definido por el sistema de puntuación (típicamente 0–4).
  • item.<component>.additionalData.aiConfidence.value confianza de la IA (0–100) en la subpuntuación. Los componentes que suministraste como datos clínicos en la petición no incluyen un campo aiConfidence, porque el valor provino de tu entrada en lugar del modelo.

patientEvolution.<scoringSystem>.media.attachment

Máscaras de imagen para visualización; no las uses para decisiones clínicas por sí solas.

  • maskRaw Máscara de probabilidad codificada en Base64. La intensidad del píxel corresponde a la confianza del modelo en que el píxel pertenece a la lesión.
  • maskBinary Máscara binaria codificada en Base64 (lesión vs. fondo) obtenida mediante el umbralizado de maskRaw.
  • segmentation Superposición coloreada codificada en Base64 sobre la imagen original, adecuada para visualización directa en tu interfaz de usuario.
maskRawmaskBinarysegmentation
Máscara de probabilidad decodificadaMáscara binaria decodificadaSuperposición de segmentación coloreada decodificada sobre la imagen original