Documentation API - mInfoSanté
mInfoSanté

Documentation API

API REST moderne pour l'intégration de services médicaux

Version 2.0 - RESTful API

Vue d'ensemble

L'API mInfoSanté est une interface RESTful sécurisée permettant l'intégration de services médicaux. Toutes les réponses sont au format JSON et utilisent des codes de statut HTTP standards.

Base URL
https://apiminfosante.cous.cloud/api

Authentification

L'API utilise l'authentification par token Bearer. Obtenez d'abord un token, puis incluez-le dans l'en-tête Authorization de chaque requête.

POST /api/auth

Génère un nouveau token d'authentification

Request Body
{
  "username": "your_username",
  "password": "your_password",
  "token_name": "Mon Token API",
  "expires_in": 30
}
Response (Success)
{
  "success": true,
  "message": "Token created successfully",
  "data": {
    "token": "test_abc123def456...",
    "expires": "2025-11-17T12:34:56+00:00",
    "user": {
      "id": 1,
      "username": "your_username",
      "email": "user@example.com"
    }
  }
}
Essayer maintenant

Endpoints Disponibles

Liste complète des endpoints de l'API avec leurs méthodes HTTP et descriptions.

Administration

GET /api/admin/pending-tokens

Liste des tokens en attente de validation

Headers
Authorization: Bearer YOUR_TOKEN
GET /api/admin/all-tokens

Liste de tous les tokens

POST /api/admin/validate-token/:id

Valider un token en attente

POST /api/admin/reject-token/:id

Rejeter un token

GET /api/admin/users

Liste de tous les utilisateurs

Collecte de Données FVR

Endpoints pour la collecte des données de surveillance de la Fièvre de la Vallée du Rift (FVR)

GET /s/nouveau

Collecte des cas humains de FVR via RapidPro

Paramètres de requête
?token=YOUR_API_TOKEN
&date_rapport=2024-01-15
&auteur=Dr. Diallo
®ion=Senegal > Matam Region
&district_sanitaire=Matam
&cas_suspects=5
&cas_confirmes=2
&deces=0
&lat=15.4916
&lon=-13.17627
&gps_accuracy=10
Response (Success)
{
  "success": true,
  "message": "Données enregistrées avec succès",
  "action": "CREATED",
  "data": {
    "id": 123,
    "date_rapport": "2024-01-15",
    "auteur": "Dr. Diallo",
    "region": "Matam",
    "district_sanitaire": "Matam",
    "gps_latitude": "15.4916",
    "gps_longitude": "-13.17627",
    "gps_accuracy": "10"
  }
}
GET /s/animal

Collecte des cas animaux de FVR via RapidPro

Paramètres de requête
?token=YOUR_API_TOKEN
&date_rapport=2024-01-15
&auteur=Dr. Ba
®ion=Senegal > Matam Region
&district_sanitaire=Matam
&nom_site=Elevage Village
&animaux_malades=12
&animaux_morts=3
&lat=15.4916
&lon=-13.17627
&gps_accuracy=10
Response (Success)
{
  "success": true,
  "message": "Données animales enregistrées avec succès",
  "action": "CREATED",
  "data": {
    "id": 124,
    "date_rapport": "2024-01-15",
    "auteur": "Dr. Ba",
    "region": "Matam",
    "district_sanitaire": "Matam",
    "nom_site": "Elevage Village",
    "gps_latitude": "15.4916",
    "gps_longitude": "-13.17627",
    "gps_accuracy": "10"
  }
}
Fonctionnalités des endpoints FVR

Exemples de Code

Exemples d'intégration dans différents langages de programmation.

cURL

Bash / Terminal
curl -X POST https://apiminfosante.cous.cloud/api/auth \
  -H "Content-Type: application/json" \
  -d '{
    "username": "admin",
    "password": "password",
    "token_name": "Mon Token"
  }'

JavaScript (Fetch)

JavaScript
const response = await fetch('https://apiminfosante.cous.cloud/api/auth', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    username: 'admin',
    password: 'password',
    token_name: 'Mon Token'
  })
});

const data = await response.json();
const token = data.data.token;

// Utiliser le token pour d'autres requêtes
fetch('https://apiminfosante.cous.cloud/api/admin/users', {
  headers: { 'Authorization': `Bearer ${token}` }
});

PHP

PHP
<?php
$ch = curl_init('https://apiminfosante.cous.cloud/api/auth');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'username' => 'admin',
    'password' => 'password',
    'token_name' => 'Mon Token PHP'
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
$token = $result['data']['token'];
?>

Python

Python
import requests

url = 'https://apiminfosante.cous.cloud/api/auth'
data = {
    'username': 'admin',
    'password': 'password',
    'token_name': 'Mon Token Python'
}

response = requests.post(url, json=data)
result = response.json()

if result['success']:
    token = result['data']['token']
    
    # Utiliser le token
    headers = {'Authorization': f'Bearer {token}'}
    users = requests.get(
        'https://apiminfosante.cous.cloud/api/admin/users',
        headers=headers
    )

Exemples FVR (Fièvre de la Vallée du Rift)

Collecte de données humaines
cURL
curl -X GET "https://apiminfosante.cous.cloud/s/nouveau?token=YOUR_TOKEN&date_rapport=2024-01-15&auteur=Dr.%20Diallo®ion=Senegal%20%3E%20Matam%20Region&district_sanitaire=Matam&cas_suspects=5&cas_confirmes=2&deces=0&lat=15.4916&lon=-13.17627&gps_accuracy=10"
JavaScript
const fvrHumanData = {
    token: 'YOUR_API_TOKEN',
    date_rapport: '2024-01-15',
    auteur: 'Dr. Diallo',
    region: 'Senegal > Matam Region',
    district_sanitaire: 'Matam',
    cas_suspects: 5,
    cas_confirmes: 2,
    deces: 0,
    lat: 15.4916,
    lon: -13.17627,
    gps_accuracy: 10
};

const queryString = new URLSearchParams(fvrHumanData).toString();
const response = await fetch(`https://apiminfosante.cous.cloud/s/nouveau?${queryString}`);
const result = await response.json();

console.log('FVR Human Data:', result);
Collecte de données animales
PHP
<?php
$fvrAnimalData = [
    'token' => 'YOUR_API_TOKEN',
    'date_rapport' => '2024-01-15',
    'auteur' => 'Dr. Ba',
    'region' => 'Senegal > Matam Region',
    'district_sanitaire' => 'Matam',
    'nom_site' => 'Elevage Village',
    'animaux_malades' => 12,
    'animaux_morts' => 3,
    'lat' => 15.4916,
    'lon' => -13.17627,
    'gps_accuracy' => 10
];

$url = 'https://apiminfosante.cous.cloud/s/animal?' . http_build_query($fvrAnimalData);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo "FVR Animal Data: " . json_encode($result, JSON_PRETTY_PRINT);
?>
Python
import requests
from datetime import datetime

# Données FVR animales
fvr_animal_data = {
    'token': 'YOUR_API_TOKEN',
    'date_rapport': datetime.now().strftime('%Y-%m-%d'),
    'auteur': 'Dr. Ba',
    'region': 'Senegal > Matam Region',
    'district_sanitaire': 'Matam',
    'nom_site': 'Elevage Village',
    'animaux_malades': 12,
    'animaux_morts': 3,
    'lat': 15.4916,
    'lon': -13.17627,
    'gps_accuracy': 10
}

# Envoi de la requête
response = requests.get('https://apiminfosante.cous.cloud/s/animal', params=fvr_animal_data)
result = response.json()

if result['success']:
    print(f"✅ Données enregistrées: {result['message']}")
    print(f"Action: {result['action']}")
    print(f"ID: {result['data']['id']}")
else:
    print(f"❌ Erreur: {result['message']}")