Skip to Content
ServicesAI ServiceAPI Endpoints

API Endpoints

Diagnosis Prediction

POST /api/v1/diagnosis/predict

Predict disease diagnosis based on patient anamnesis.

Request Body:

{ "age": 45, "gender": "male", "bodyLocation": "trunk", "symptoms": [ { "type": "redness", "severity": 7, "duration": 14 } ], "images": [ { "url": "https://storage.blob.core.windows.net/...", "quality": 0.95 } ] }

Response:

{ "diagnoses": [ { "disease": "Psoriasis", "probability": 0.85, "confidence": "high" }, { "disease": "Eczema", "probability": 0.12, "confidence": "medium" } ], "metadata": { "model_version": "v2.1.0", "inference_time_ms": 245 } }

Red Flags Detection

POST /api/v1/diagnosis/red_flags

Detect urgent medical conditions requiring immediate attention.

Request Body: Same as diagnosis prediction

Response:

{ "hasRedFlags": true, "flags": [ { "type": "rapid_growth", "severity": "high", "description": "Lesion shows rapid growth pattern" }, { "type": "bleeding", "severity": "medium", "description": "Spontaneous bleeding reported" } ], "urgency": "high", "recommendation": "Immediate physician consultation required" }

Image Quality Validation

POST /api/v1/image_quality/validate

Validate image quality and suitability for diagnosis.

Request Body:

{ "imageUrl": "https://storage.blob.core.windows.net/...", "imageData": "base64_encoded_image_optional" }

Response:

{ "isValid": true, "score": 0.92, "issues": [], "feedback": { "blur": 0.05, "lighting": 0.95, "framing": 0.90 } }

Example with Issues:

{ "isValid": false, "score": 0.45, "issues": [ "Image is too blurry", "Poor lighting detected", "Lesion not properly framed" ], "feedback": { "blur": 0.65, "lighting": 0.30, "framing": 0.40 } }

Patient Triage

POST /api/v1/diagnosis/triage

Assess patient urgency and assign priority level.

Request Body: Same as diagnosis prediction

Response:

{ "priority": "high", "urgencyScore": 8.5, "estimatedWaitTime": "24 hours", "recommendedAction": "physician_review_within_24h", "reasoning": [ "Red flags detected", "Symptoms indicate potential urgent condition" ] }

Adaptive Questionnaire

POST /api/v1/questionnaire/next

Get next question in adaptive questionnaire flow.

Request Body:

{ "previousAnswers": [ { "questionId": "chief_complaint", "answer": "rash" }, { "questionId": "duration", "answer": "2_weeks" } ], "bodyLocation": "trunk" }

Response:

{ "questionId": "symptom_itching", "questionText": "Is the rash itchy?", "questionType": "yes_no", "options": [ { "value": "yes", "label": "Yes" }, { "value": "no", "label": "No" } ], "importance": "high", "isRequired": true }

Questionnaire Complete:

{ "questionId": null, "questionText": null, "isComplete": true, "completeness": 0.95, "readyForDiagnosis": true }

Error Responses

All endpoints return standard error format:

400 Bad Request

{ "error": "Validation error", "details": [ { "field": "age", "message": "must be between 0 and 120" } ] }

500 Internal Server Error

{ "error": "Model inference failed", "message": "TensorFlow model error: ..." }

503 Service Unavailable

{ "error": "Service temporarily unavailable", "message": "Model loading in progress" }
Last updated on