API Endpoints
Health Checks
GET /healthy
Simple health check returning {"status": "healthy"}.
Response:
{
"status": "healthy"
}GET /health
Detailed health check with database connectivity status.
Response:
{
"status": "healthy",
"database": "connected"
}AI/Diagnosis Endpoints
All AI endpoints accept AnamnesisRequest (patient data) and return structured predictions. These endpoints proxy requests to the AI Service.
POST /api/ai/predict_diagnosis
Get disease diagnosis predictions with probabilities.
Request Body: AnamnesisRequest
Response: DiagnosisPrediction
{
"diagnoses": [
{
"disease": "Psoriasis",
"probability": 0.85,
"confidence": "high"
}
]
}Error Responses:
400 Bad Request- Validation errors in request data502 Bad Gateway- AI service unavailable or error
POST /api/ai/red_flags
Check for urgent medical conditions requiring immediate attention.
Request Body: AnamnesisRequest
Response: RedFlags
{
"hasRedFlags": true,
"flags": ["rapid_growth", "bleeding"],
"urgency": "high"
}POST /api/ai/image_validity
Validate image quality and suitability for diagnosis.
Request Body: ImageValidityRequest
{
"imageUrl": "https://storage.blob.core.windows.net/...",
"imageData": "base64_encoded_image"
}Response: ImageValidityResponse
{
"isValid": true,
"score": 0.92,
"issues": []
}POST /api/ai/triage
Assess patient urgency and priority level.
Request Body: AnamnesisRequest
Response: TriageResponse
{
"priority": "high",
"urgencyScore": 8.5,
"recommendedAction": "physician_review_within_24h"
}POST /api/ai/next_question
Get next adaptive questionnaire question based on previous answers.
Request Body: AnamnesisRequest
Response: NextQuestionResponse
{
"questionId": "symptom_duration",
"questionText": "How long have you had this symptom?",
"questionType": "multiple_choice",
"options": ["<1 week", "1-4 weeks", ">1 month"]
}Common Endpoints
POST /api/common/store_images
Upload base64-encoded images to Azure Blob Storage.
Request Parameters:
image(string, required): Base64-encoded image datafiletype(string, optional): MIME type (e.g., āimage/jpegā)tenant(string, optional): Tenant identifier (default: ādefaultā)
Request Example:
{
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
"filetype": "image/jpeg",
"tenant": "maccabi"
}Response: ImageUploadResponse
{
"imageName": "maccabi1697123456.789",
"url": "https://dermadetect.blob.core.windows.net/dermadetect-images/maccabi1697123456.789"
}Error Responses:
400 Bad Request- Invalid file type500 Internal Server Error- Azure storage not configured or upload failed