📚 Documentation API tRPC

Guide complet pour intégrer MediConnect Africa à vos systèmes externes

🚀 Introduction

MediConnect Africa expose une API tRPC (TypeScript RPC) permettant aux développeurs d'intégrer les fonctionnalités de la plateforme à leurs systèmes externes. Cette documentation décrit tous les endpoints disponibles et comment les utiliser.

📮 Importer dans Postman

Téléchargez notre collection Postman préconfigurée avec tous les endpoints pour tester rapidement l'API:

📥 Télécharger Collection Postman

Base URL

Tous les appels API doivent être adressés à:

https://mediconnect4africa.com/api/trpc

Format des Requêtes

Les requêtes tRPC utilisent un format JSON spécifique. Chaque requête contient:

{
  "0": {
    "json": {
      "param1": "value1",
      "param2": "value2"
    }
  }
}

Format des Réponses

Les réponses tRPC sont structurées comme suit:

{
  "result": {
    "data": {
      "json": {
        "success": true,
        "data": { /* données retournées */ }
      }
    }
  }
}

🔐 Authentification

MediConnect Africa utilise OAuth 2.0 pour l'authentification. Les utilisateurs doivent d'abord se connecter via le portail Manus OAuth, puis les tokens de session sont stockés dans les cookies.

Flux d'Authentification

  1. L'utilisateur clique sur "Se connecter"
  2. Redirection vers le portail Manus OAuth
  3. Authentification et consentement
  4. Redirection vers le callback avec code d'autorisation
  5. Échange du code contre un token de session
  6. Cookie de session stocké automatiquement

Endpoints d'Authentification

GET auth.me

Récupère les informations de l'utilisateur actuellement connecté.

Réponse

{
  "result": {
    "data": {
      "json": {
        "id": "user-123",
        "email": "user@example.com",
        "name": "John Doe",
        "role": "user"
      }
    }
  }
}
POST auth.logout

Déconnecte l'utilisateur actuellement connecté.

Réponse

{
  "result": {
    "data": {
      "json": {
        "success": true
      }
    }
  }
}

📡 Endpoints Disponibles

Chatbot

POST chatbot.sendMessage

Envoie un message au chatbot IA et reçoit une réponse.

Paramètres

Paramètre Type Description
message * string Le message à envoyer au chatbot
conversationId string ID de la conversation existante (optionnel)

Exemple de Requête

curl -X POST https://mediconnect4africa.com/api/trpc/chatbot.sendMessage \
  -H "Content-Type: application/json" \
  -d '{
    "0": {
      "json": {
        "message": "Quels sont vos tarifs?",
        "conversationId": null
      }
    }
  }'
POST chatbot.rateResponse

Envoie une notation (👍/👎) pour une réponse du chatbot.

Paramètres

Paramètre Type Description
messageId * string ID du message à noter
rating * boolean true pour 👍, false pour 👎

Spécialités Cliniques

GET specialties.list

Liste toutes les spécialités médicales disponibles.

Réponse

{
  "result": {
    "data": {
      "json": [
        {
          "id": "spec-1",
          "name": "Cardiologie",
          "description": "Maladies du cœur et des vaisseaux sanguins"
        },
        {
          "id": "spec-2",
          "name": "Dermatologie",
          "description": "Maladies de la peau"
        }
      ]
    }
  }
}

Consultations Médicales

POST consultations.record

Enregistre une nouvelle consultation médicale avec pathologie.

Paramètres

Paramètre Type Description
patientId * string ID du patient
pathologyName * string Nom de la pathologie/affection
consultationDate * string Date de consultation (ISO 8601)

Dashboard Ministère

GET health.pathologyStats

Récupère les statistiques des pathologies par mois.

Paramètres

Paramètre Type Description
year * number Année (ex: 2026)
month number Mois (1-12, optionnel)
GET health.medicationStats

Récupère les statistiques des médicaments les plus vendus.

Paramètres

Paramètre Type Description
year * number Année (ex: 2026)
country string Code pays (optionnel)

💡 Exemples d'Intégration

Exemple 1: Appel au Chatbot avec JavaScript

JavaScript/Node.js
const message = "Comment s'inscrire?";
const response = await fetch('https://mediconnect4africa.com/api/trpc/chatbot.sendMessage', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cookie': 'session=...' // Session cookie
  },
  body: JSON.stringify({
    "0": {
      "json": {
        "message": message,
        "conversationId": null
      }
    }
  })
});

const data = await response.json();
const botResponse = data.result.data.json.response;
console.log(botResponse);

Exemple 2: Récupérer les Statistiques du Ministère

Python
import requests
import json

url = 'https://mediconnect4africa.com/api/trpc/health.pathologyStats'
params = {
  "0": {
    "json": {
      "year": 2026,
      "month": 6
    }
  }
}

response = requests.get(url, json=params)
stats = response.json()['result']['data']['json']

for pathology in stats:
    print(f"{pathology['name']}: {pathology['count']} cas")

Exemple 3: Enregistrer une Consultation

cURL
curl -X POST https://mediconnect4africa.com/api/trpc/consultations.record \
  -H "Content-Type: application/json" \
  -H "Cookie: session=..." \
  -d '{
    "0": {
      "json": {
        "patientId": "patient-123",
        "pathologyName": "Hypertension",
        "consultationDate": "2026-06-08T10:30:00Z"
      }
    }
  }'

⚠️ Gestion des Erreurs

Les erreurs API sont retournées avec un code HTTP approprié et un message d'erreur détaillé.

Codes d'Erreur Courants

Code HTTP Erreur tRPC Description
400 BAD_REQUEST Paramètres invalides ou manquants
401 UNAUTHORIZED Session expirée ou non authentifié
403 FORBIDDEN Permissions insuffisantes
404 NOT_FOUND Ressource non trouvée
500 INTERNAL_SERVER_ERROR Erreur serveur interne

Exemple de Réponse d'Erreur

{
  "error": {
    "json": {
      "code": "UNAUTHORIZED",
      "message": "Please login (10001)"
    }
  }
}

📞 Support et Contact

Pour toute question ou problème avec l'API, veuillez contacter notre équipe de support: