Synthèse automatique
Fournit des conseils d’implémentation pour les serveurs et clients API RESTful HL7 FHIR, couvrant les schémas d’URL, les opérations de base, la négociation de contenu, les en-têtes, le versionnage et les opérations conditionnelles.
Points forts
- Tableau concret des opérations FHIR avec méthodes HTTP, motifs d’URL et codes de succès.
- Détaille les types MIME application/fhir+json/xml et le paramètre fhirVersion pour R2 à R5.
- Couvre les en-têtes requis, les ETag faibles et le verrouillage optimiste via If-Match.
- Renvoie à une référence dédiée pour les spécifications détaillées des opérations.
Limites
- Le contenu fourni est tronqué à la section sur le versionnage et CapabilityStatement.
- Se concentre sur la couche REST, pas sur la modélisation des ressources ni la validation clinique.
- Suppose une connaissance préalable de la spécification FHIR et des ressources concernées.
Utilisez cette compétence lorsque vous devez concevoir ou implémenter des points de terminaison RESTful FHIR, un serveur FHIR ou un client FHIR conforme à HL7.
Ne l’utilisez pas pour définir des modèles de données cliniques, valider sémantiquement des ressources FHIR ou concevoir des API non FHIR.
Analyse de sécurité
SûrThe skill is purely instructional documentation for implementing FHIR REST APIs. It contains no executable commands, network calls, credential handling, destructive operations, or attempts to disable safety controls. It only describes standard HTTP/FHIR patterns and therefore presents no meaningful execution risk.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Implement FHIR R4 read and search endpoints for Patient in my Express server, including application/fhir+json content negotiation and ETag version headers.Add conditional create and batch transaction support to our FHIR API using the If-None-Exist header and a Bundle request body.Write a FHIR client method that updates an Observation using If-Match with the current weak ETag and handles a 412 Precondition Failed response.name: fhir-api description: Expert guidance for implementing FHIR RESTful API servers and clients following the HL7 FHIR specification. Use this skill when implementing a FHIR server with REST endpoints, building a FHIR client, designing FHIR API routes and handlers, implementing FHIR operations (read, create, update, delete, search, history), working with FHIR bundles, batch requests, or transactions, handling FHIR content negotiation, headers, and versioning, or implementing conditional operations. Trigger keywords include "FHIR REST", "FHIR API", "FHIR server", "FHIR client", "FHIR endpoint", "FHIR operations", "RESTful FHIR", "implement FHIR".
FHIR REST API implementation
This skill provides guidance for implementing FHIR RESTful APIs according to the HL7 FHIR specification (R4/R5).
URL structure
All FHIR REST URLs follow the pattern:
[base]/[type]/[id]
[base]: Service base URL (e.g.,https://fhir.example.org/r4)[type]: Resource type (e.g.,Patient,Observation)[id]: Logical resource ID
URLs are case-sensitive and use UTF-8 encoding.
Core operations
| Operation | HTTP | URL Pattern | Success |
| ----------------- | -------- | ----------------------------------- | ------- |
| Read | GET | [base]/[type]/[id] | 200 |
| VRead | GET | [base]/[type]/[id]/_history/[vid] | 200 |
| Create | POST | [base]/[type] | 201 |
| Update | PUT | [base]/[type]/[id] | 200/201 |
| Patch | PATCH | [base]/[type]/[id] | 200 |
| Delete | DELETE | [base]/[type]/[id] | 200/204 |
| Search | GET/POST | [base]/[type]?params | 200 |
| History | GET | [base]/[type]/[id]/_history | 200 |
| Capabilities | GET | [base]/metadata | 200 |
| Batch/Transaction | POST | [base] | 200 |
For detailed specifications of each operation, see references/operations.md.
Content negotiation
MIME types
| Format | MIME Type |
| ------ | ------------------------- |
| JSON | application/fhir+json |
| XML | application/fhir+xml |
| RDF | application/fhir+turtle |
Use the Accept header for response format and Content-Type for request body format.
The _format query parameter overrides Accept when clients cannot set headers.
FHIR version
Specify version via MIME type parameter:
Accept: application/fhir+json; fhirVersion=4.0
Version mappings: 1.0 (R2), 3.0 (R3), 4.0 (R4), 4.3 (R4B), 5.0 (R5).
Required headers
Request headers
| Header | Purpose | Example |
| ------------- | ------------------- | ----------------------- |
| Accept | Response format | application/fhir+json |
| Content-Type | Request body format | application/fhir+json |
| If-Match | Optimistic locking | W/"123" |
| If-None-Exist | Conditional create | identifier=123 |
| Prefer | Return preference | return=representation |
Response headers
| Header | Purpose | Example |
| ------------- | ------------------ | ------------------------------- |
| ETag | Version identifier | W/"123" |
| Location | New resource URL | [base]/Patient/123/_history/1 |
| Last-Modified | Modification time | RFC 7231 date |
Versioning and optimistic locking
FHIR uses weak ETags for version tracking:
- Server returns
ETag: W/"[versionId]"with responses - Client sends
If-Match: W/"[versionId]"with updates - Server returns
412 Precondition Failedif version mismatch
Implement version-aware updates when CapabilityStatement.rest.resource.versioning is versioned-update.
Error handling
Return OperationOutcome resources for all errors:
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "invalid",
"diagnostics": "Patient.birthDate: Invalid date format"
}
]
}
Status codes
| Code | Meaning | | ---- | -------------------------------------- | | 400 | Invalid syntax or validation failure | | 404 | Resource not found | | 409 | Version conflict | | 410 | Resource deleted | | 412 | Precondition failed (version mismatch) | | 422 | Business rule violation |
Prefer header
Control response content with Prefer:
| Value | Response body |
| ------------------------- | -------------------- |
| return=minimal | Empty (headers only) |
| return=representation | Full resource |
| return=OperationOutcome | Validation outcome |
For async operations, use Prefer: respond-async to get 202 Accepted with status polling URL.
Implementation checklist
Server implementations should:
- Implement CapabilityStatement at
/metadata - Support content negotiation (JSON at minimum)
- Return proper ETags for versioned resources
- Include
Locationheader on create/update - Return
OperationOutcomefor all errors - Support
_formatparameter fallback - Honour
Preferheader for response content
References
- operations.md: Detailed operation specifications
- search.md: Search parameter and result handling
- batch-transaction.md: Batch and transaction processing
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/fhir-rest-api-implementation-mm5t89ov' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fhir-rest-api-implementation-mm5t89ov/download' --output '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md.part' && mv '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md.part' '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md' && test -s '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/fhir-api' && cp -R '.skill-downloads/fhir-rest-api-implementation-mm5t89ov' '.claude/skills/fhir-api'Cursor
test -f '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md' && test -s '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/fhir-api' && cp -R '.skill-downloads/fhir-rest-api-implementation-mm5t89ov' '.cursor/skills/fhir-api'Codex
test -f '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md' && test -s '.skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/fhir-api' && cp -R '.skill-downloads/fhir-rest-api-implementation-mm5t89ov' '.agents/skills/fhir-api'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/fhir-rest-api-implementation-mm5t89ov'openskills read 'fhir-rest-api-implementation-mm5t89ov'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/fhir-rest-api-implementation-mm5t89ov/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.