Documentation des guides d'implémentation de l'ANS
0.1.8 - trial-use
This page is part of the Documentation des guides d'implémentation de l'ANS (v0.1.8: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Prérequis : suivre la documentation pour créer un compte GitHub et l’associer à l’organisation ANS.
Ce nouveau projet doit utiliser le GitHub template ansforge/IG-modele et doit respecter la convention de nommage indiquée dans la documentation de création des répetoires GitHub tout en étant préfixé par “IG-…” (Exemple : IG-fhir-partage-de-documents-de-sante). En cas de doute, l’équipe interopérabilité de l’ANS se tient disponible pour avis.
Une fois l’IG créé, il est nécessaire de le personnaliser pour le projet dédié.
Lors de la création d’un IG, il y a une première phase de paramétrage à effectuer. Il faut remplir:
Il faudra également mettre à jour le fichier readme.md à la racine du repository.
Une des plus importantes parties de l’IG est la documentation narrative, celle-ci est écrite en kramdown. Ces pages sont à ajouter dans input/pagecontent avec l’extension .md. A noter que ces pages doivent être directement contenues dans le dossier pagecontent et ne peuvent pas avoir d’arborescence de dossiers.
Une fois une page créée et rédigée, pour l’ajouter au menu, il faut éditer le fichier sushi-config.yaml. Celui-ci contient deux parties : la partie pages et la partie menu
La partie pages est optionnelle, mais elle permet de donner un titre aux pages (par défaut, c’est le nom du fichier qui est utilisé). A noter, il faut utiliser l’extension .md ici.
La partie pages est de la forme:
pages:
index.md:
title: Accueil
specifications_techniques.md:
construction_des_flux.md:
st_ajout.md:
title: Ajout d'un lot de documents
La partie menu permet de définir le menu de navigation dans le header. A noter, il faut utiliser l’extension .html.
La partie menu est de la forme:
menu:
Accueil: index.html
Spécifications techniques:
Construction des flux: construction_des_flux.html
Flux 01: st_flux1.html
Flux 02: st_flux2.html
Spécifications fonctionnelles:
Le développement de l’IG se fait essentiellement dans le dossier input.
Lien vers quelques exemples : [https://github.com/HL7/US-Core/blob/master/sushi-config.yaml] [https://github.com/ansforge/FIG_ans-ig-PDSm/blob/main/sushi-config.yaml]
Prérequis :
https://code.visualstudio.com/
[https://nodejs.org/en/]
La case “Automatically install the necessary tools” peut être cochée.
npm install -g fsh-sushi
gem install jekyll bundler
Télécharger le repository ansforge/FIG_ans-ig-sample : code > download zip. Décompresser le dossier, et le mettre dans un chemin où il n’y a pas d’espace (exemple : C:\Users\nriss\Documents).
Puis:
_updatePublisher
(lancer _updatePublisher.bat
dans le bon dossier sur l’invite de commande). Attention ! Il ne peut pas y avoir d’espace dans le path du dossier, ce qui peut engendrer des erreurs, notamment avec OneDrive._genonce
(lancer _genonce.bat
dans le bon dossier sur l’invite de commande)Si tout s’est bien passé, le dossier output est apparu, il suffit de lancer index.html
pour visualiser l’IG généré.
Vous pouvez maintenant commencer à développer votre implementation guide ! :)
Pour installer NodeJS, vous pouvez suivre la documentation d’installation officielle.
Sur une distribution Linux basée sur Debian (Debian, Ubuntu…), vous pouvez installer NodeJS directement depuis votre package-manager :
sudo apt install nodejs
Il est aussi possible de l’installer via nvm
(Node Version Manager), qui vous permettra de changer de version de NodeJS en fonction des requis de vos projets.
Pour installer Java, vous pouvez vous tourner vers le JDK officiel sur la page d’Oracle. Vous y trouverez un .deb
ou un .rpm
à installer facilement sur votre distribution.
Vous pouvez aussi utiliser openjdk
pour une implémentation open-source de la plateforme Java.
sudo apt install openjdk-17-jre
Pour installer Ruby sur une distribution Linux basée sur Debian, vous pouvez le faire via votre package-manager :
sudo apt-get install ruby-full
Pour le faire sur Mac :
brew install ruby
Que ce soit sous Linux ou Mac, vous pouvez ensuite installer Jekyll avec la commande suivante :
gem install bundler jekyll
Vous trouverez davantage d’informations sur le confluence d’hl7.
Des difficultés pour installer ruby et jekyll peuvent survenir sur mac M1, M2 : lancer le terminal avec rosetta et suivre cette procédure permet de régler les problèmes.
Sushi permet de convertir la grammaire FSH pour générer des profils, extensions (StructureDefinition) et des exemples / instances FHIR. La prise en main est relativement facile lorsque l’on connaît bien FHIR. Sushi est développé en JavaScript sous forme de module npm.
npm install -g fsh-sushi
Pour information, GoFSH permet de faire la transformation inverse : transformer une StructureDefinition au format FSH.
bash _updatePublisher.sh # Mise à jour du publisher java
bash _genonce.sh # Génère l'IG
Pour publier une nouvelle version (release) d’un guide d’implémentation, il est nécessaire de remplir à la racine du répertoire GitHub un fichier publication-request.json dont la documentation peut être trouvée ici. Ensuite, il suffit de lancer le workflow de release sur GitHub.
Pour publier des guides d’implémentation en dehors de l’ANS, il est nécessaire de :
1/ Créer un template pour votre organisation (exemple de celui de l’ANS) 2/ Créer un répertoire GitHub qui va contenir le contenu des pages web à publier (exemple de celui de l’ANS) 3/ Lancer l’IG publisher avec l’option -go-publish (Documentation) 4/ Publier le contenu sur un serveur web 5/ Faire une Pull Request dans ce repo pour ajouter votre flux rss (dans le fichier package-feeds.json)
Pour rappel, les bonnes pratiques imposent de respecter les modélisations faites au niveau national : FrCore et guides d’implémentation de l’ANS