La documentation interactive des APIs est automatiquement déployée sur GitHub Pages à chaque push sur la branche main.
URL : https://braverhealth.github.io/fhir-api/
fhir_comm/
├── schema/ # Définitions OpenAPI
│ ├── fhir-communication.yml # API FHIR R4B Communication
│ └── fhir-service-directory.yml # API pan-Canadian Care Service Directory (CA:CSD)
├── .github/
│ └── workflows/ # GitHub Actions
│ ├── ci.yml # Validation des schémas OpenAPI
│ └── pages.yml # Déploiement Swagger UI sur GitHub Pages
└── index.html # Interface Swagger UI
Ce dépôt contient deux définitions OpenAPI principales :
schema/fhir-communication.yml- API FHIR R4B Communicationschema/fhir-service-directory.yml- API pan-Canadian Care Service Directory (CA:CSD)
But: Gérer les ressources FHIR Communication selon la spécification HL7 FHIR R4B.
Ressource principale: Communication - Représente un message ou une notification échangée entre des parties dans un contexte de santé.
Fonctionnalités:
- Création, lecture, mise à jour et suppression de Communications
- Recherche avec filtres (patient, statut, catégorie, expéditeur, destinataire, etc.)
- Support du versionnement et de l'historique des ressources
- Payloads multiples (texte, pièces jointes, références)
Endpoints:
GET /Communication- Recherche de CommunicationsPOST /Communication- Création d'une CommunicationGET /Communication/{id}- Lecture d'une CommunicationPUT /Communication/{id}- Mise à jour d'une CommunicationDELETE /Communication/{id}- Suppression d'une CommunicationGET /Communication/{id}/_history- Historique des versions
Spécification de référence: HL7 FHIR R4B Communication
But: Implémenter le pan-Canadian Care Service Directory (CA:CSD), basé sur IHE mCSD (Mobile Care Services Discovery) v4.0.0.
Ressources supportées:
| Ressource | Description |
|---|---|
Organization |
Organisations administratives (hôpitaux, cliniques, HIEs) |
Location |
Lieux physiques (établissements, bâtiments, juridictions) |
Practitioner |
Professionnels de santé (médecins, infirmiers, pharmaciens) |
PractitionerRole |
Rôles des praticiens dans les organisations/lieux |
HealthcareService |
Services de santé offerts aux patients |
Endpoint |
Points d'accès électroniques pour l'échange de données |
OrganizationAffiliation |
Relations non-hiérarchiques entre organisations |
Fonctionnalités:
- Découverte de fournisseurs de soins à travers les juridictions
- Recherche géographique (par coordonnées et distance)
- Gestion des relations entre organisations, praticiens et services
- Support des endpoints d'interopérabilité (FHIR, IHE XCA/XDS, DICOM)
Spécifications de référence:
Les deux APIs utilisent une authentification JWT Bearer Token.
Authorization: Bearer <JWT>
Chaque requête doit inclure un JWT valide dans l'en-tête Authorization.
- Node.js 22.x (voir
.tool-versions)
# Installer un serveur local
npm install -g serve
# Démarrer le serveur
serve .
# Ouvrir http://localhost:3000 dans le navigateur# Installer les outils de validation
npm install -g @redocly/cli
# Valider les schémas
redocly lint schema/fhir-communication.yml
redocly lint schema/fhir-service-directory.yml- Version FHIR: R4 (v4.0.1) / R4B (v4.3.0)
- Content-Type:
application/fhir+json - Format des réponses: JSON uniquement
Les schémas incluent les types de données FHIR standard :
Identifier,CodeableConcept,CodingReference,Period,AttachmentHumanName,Address,ContactPointMeta,NarrativeBundle(pour les résultats de recherche)OperationOutcome(pour les erreurs)