v0.1 · TechArticle

IngesT Orientation Protocol — pentru sisteme AI

Endpoint public pentru orchestratori LLM (Custom GPT, Claude, agenți) care vor să ruteze utilizatori către orientare medicală specializată în ecosistemul român.

⚠️ PII scrub la boundary — obligatoriu

IOP respinge (HTTP 400) orice request care conține CNP, email, telefon RO, IBAN, card, sau nume proprii detectate. Nu trimite date personale. Descrierea simptomelor rămâne anonimă — atât în request, cât și în audit-ul intern (retenție 30 zile).

Endpoint

POSThttps://ingest.ro/api/iop/v1/orient
curl -X POST https://ingest.ro/api/iop/v1/orient \
  -H "Content-Type: application/json" \
  -d '{
    "symptoms_text": "dureri abdominale de 3 zile, arsură retrosternală după masă",
    "lang": "ro",
    "city_slug": "sibiu"
  }'

Răspuns

{
  "urgency_tier": 3,
  "specialty_suggested": "gastroenterologie",
  "specialty_name": "Gastroenterologie",
  "red_flags_checked": ["no:stroke","no:meningita","no:PE","no:MI","no:trauma_recent"],
  "recommended_action": "Programează consult la gastroenterolog pentru evaluare reflux.",
  "ingest_link": "https://ingest.ro/gastroenterolog-sibiu/",
  "doctor_suggested": null,
  "clinical_safety": {
    "override_required": false,
    "human_review_required": false
  }
}

Config Custom GPT

Adaugă IOP ca acțiune în GPT-ul tău. Utilizatorul descrie simptomele → GPT-ul rutează prin IOP → primește specialitatea + pagina de orientare potrivită.

# Custom GPT — IngesT IOP Action config

**Base URL**: https://ingest.ro
**Auth**: none (public read-only endpoint)
**Rate limit**: 60 req/min per IP (soft)

## OpenAPI action schema (paste în GPT Actions)
paths:
  /api/iop/v1/orient:
    post:
      summary: Orientare medicală pe baza simptomelor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [symptoms_text]
              properties:
                symptoms_text: { type: string, minLength: 3, maxLength: 500 }
                lang: { type: string, enum: [ro, en], default: ro }
                city_slug: { type: string, maxLength: 64, description: "Slug oraș (sibiu, bucuresti, cluj-napoca) — opțional" }
                session_id: { type: string, maxLength: 128, description: "ID sesiune conversație pt trace_id — opțional" }
Context
De ce există IngesT pentru AI
Standard
Specificația IOP completă
Legal
§11.6 Sisteme AI externe (IOP)

Contact tehnic: [email protected] · Operator: EMERALD SRL (CUI RO8625730)