Documentation des guides d'implémentation de l'ANS
0.1.7 - trial-use
This page is part of the Documentation des guides d'implémentation de l'ANS (v0.1.7: Release) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 0.1.8. 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.
Tâche:
L’IG est créé! Il faut maintenant le personnaliser
Lors de la création d’un IG, il y a une première phase de paramétrage à effectuer. Il faut remplir:
Une des plus importantes parties de l’IG est la document narrative, celle-ci est écrite en markdown. 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 fichiers.
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
Pour rédiger les pages, suivre la syntaxe kramdown
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