FHIR
Fast Healthcare Interoperability Resources
VOTRE AVIS SUR HL7 ?
➡ EXHAUSTIF
➡ COMPLEXE
➡ INNACCESSIBLE
➡ DIFFICILE À ADOPTER
➡ ET POURTANT INDISPENSABLE …
ARCHITECTURE ORIENTÉE
RESSOURCES
๏ 4 CONCEPTS
๏ UNE RESSOURCE = OBJET PHYSIQUE OU
ABSTRAIT
๏ UNE URI = UN NOM
๏ UNE REPRÉSENTATION = UN FORMAT (JSON,
XML)
๏ DES LIENS ENTRE LES RESSOURCES
REST
REPRESENTATIONAL STATE TRANSFER
๏ SANS ÉTATS
๏ BASÉ SUR HTTP
๏ URLS
๏ METHODES : GET, PUT, POST, DELETE, HEAD, OPTIONS
ET POURQUOI PAS UNE ARCHITECTURE
ORIENTÉE SERVICES POUR LA SANTÉ ?
FHIR = REST SANTÉ
OBJECTIFS
๏ SIMPLIFICATION DE HL7
๏ CONSERVATION DES CONCEPTS
๏ AMÉLIORATION DE L’ADOPTION
QU’EST CE QUE FHIR ?
๏ API OUVERTE POUR LA SANTÉ BASÉ SUR DES
STANDARDS MODERNES ET SIMPLES
๏ UN MODÈLE DE DONNÉES POUR DÉCRIRE DONNÉES DE
SANTÉ ET ADMINISTRATIVES
๏ API RESTFUL UTILISANT JSON OU XML
๏ DES SERVEURS FHIR ACCESSIBLES
๏ DES OUTILS POUR IMPLÉMENTER ET TESTER FHIR
MODÈLE DE DONNÉES
๏ FHIR C’EST UNE 100aines DE RESSOURCES - BRIQUES DE BASES DE LA
SPÉCIFICATION
๏ EXEMPLES
๏ Patient (la personne qui reçoit les soins)
๏ Encounter (rendez-vous, séjour à l’hôpital)
๏ Observation (résultats de laboratoire ou d’imagerie)
๏ DiagnosticReport (compte rendu d’hospitalisation)
๏ MedicationOrder (prescription médicale)
๏ ….
MODÈLE DE DONNÉES
CHAQUE RESSOURCE EST DÉCRITE SUR LE SITE WEB
DE MANIÈRE SIMPLE ET LISIBLE
http://hl7-fhir.github.io/patient.html
MODÈLE DE DONNÉES
TYPES
ÉLÉMENTS
OPTION
DESCRIPTIONS ET LIENS
MODÈLE DE DONNÉES
TYPES DE DONNÉES
INTUITIF ET SIMPLE
string Help I’m a Bug!
decimal 1.4836
dateTime 2012-02-11T11:22:94Z
uri http://example.com/foo
boolean true
…
http://hl7-fhir.github.io/datatypes.html
MODÈLE DE DONNÉES
TYPES DE DONNÉES COMPOSÉES AVEC PLUSIEURS CHAMPS
(SIMILAIRES À HL7)
http://hl7-fhir.github.io/datatypes.html
…
MODÈLE DE DONNÉES
IDENTIFIANTS
๏ LES RESSOURCES ONT LA PLUPART DU TEMPS DES
IDENTIFIANTS
๏ Patient : n° de Sécurité Sociale, IPP, NIP
๏ Observation : n° d’examen de biologie ou d’imagerie
๏ LES IDENTIFIANTS UTILISENT UN TYPE DE DONNÉES
๏ system : http://hl7.org/fhir/sid/us-ssn (US social number)
๏ value : 2234567890
MODÈLE DE DONNÉES
TYPES PRÉDÉFINIS
๏ CERTAINS CHAMPS SONT LIMITÉS À UN ENSEMBLE DE
VALEURS POTENTIELLES
๏ CES CHAMPS UTILISENT LE TYPE « CODE » AVEC UNE
LISTE DE VALEURS ASSOCIÉES
๏ ex : Patient.gender > Male | Female | Other
MODÈLE DE DONNÉES
TYPES OUVERTS
๏ CERTAINS CHAMPS UTILISENT UNE VALEUR CODÉE SANS QUE LE CODAGE
SOIT IMPOSÉE PAR FHIR
๏ CODE D’UN RÉSULTAT DE BIOLOGIE
๏ CODE D’UN TYPE DE PRESCRIPTION
๏ CES CHAMPS UTILISENT UNE SÉMANTIQUE ASSOCIÉE À UNE NORME
๏ system : http://loinc.org
๏ code : 21176-3
๏ text : leukocytes
MODÈLE DE DONNÉES
REPRÉSENTATION VISUELLE
๏ CHAQUE RESSOURCES PEUT AVOIR UNE
REPRÉSENTATION VISUELLE
๏ C’EST UNE REPRÉSENTATION HTML QUI PERMET
D’AFFICHER LA RESSOURCE ET LA RENDRE LISIBLE
MODÈLE DE DONNÉES
EXTENSIONS
๏ FHIR EST CONCU SUR LA BASE DU 80/20
๏ LES ÉLÉMENTS DE LA SPEC COUVRENT 80% DES BESOINS
๏ LES IMPLÉMENTEURS DOIVENT COMPLÉTER POUR LES SPÉCIFICITÉS À 20%
๏ LES EXTENSIONS SONT LES BIENVENUS DONC FHIR ESSAYE DE LES RENDRE
FACILES À METTRE EN OEUVRE
๏ CHAQUE EXTENSION EST COMPOSÉE D’UNE CLÉ / VALEUR
๏ CLÉ : UNE URL VERS LA DÉFINITION DE L’EXTENSION
๏ VALEUR : UN TYPE DE DONNÉE OU UNE LISTE DE SOUS-EXTENSIONS
MODÈLE DE DONNÉES
RÉFÉRENCES ENTRE RESSOURCES
(SIMILAIRE À HTML)
meta données
représentation visuelle
données de la ressource
MODÈLE DE DONNÉES
DOCUMENTATION
MODÈLE DE DONNÉES
DOCUMENTATION
API REST
๏ FHIR À UNE API EFFICACE POUR INTÉRAGIR AVEC LES
RESSOURCES
๏ L’API EST ENTIÈREMENT BASÉE SUR REST
๏ LES INTERACTIONS FHIR SONT DÉCRITES SELON 2
ANGLES : CLIENT ET SERVEUR
API REST
๏ CRÉATION D’UNE RESSOURCE
๏ UTILISATION D’UNE REQUÊTE POST DU CLIENT VERS LE
SERVEUR
API REST
๏ RÉCUPÉRATION DE LA RÉFÉRENCE DE LA RESSOURCE
CRÉÉE DANS LE HEADER DE LA RÉPONSE
๏ content-location: http://server/Patient/1234/_history/1
API REST
๏ RÉCUPÉRATION D’UNE RESSOURCE
๏ UTILISATION D’UNE REQUÊTE GET DU CLIENT VERS LE
SERVEUR EN UTILISANT L’ID
๏ http://server/Patient/1234
API REST
๏ MISE À JOUR D’UNE RESSOURCE
๏ UTILISATION D’UNE REQUÊTE PUT DU CLIENT VERS LE SERVEUR EN
UTILISANT L’ID
๏ RÉCUPÉRATION DE LA NOUVELLE RÉFÉRENCE DE LA RESSOURCE DANS
LE HEADER
๏ CRÉATION D’UNE NOUVELLE VERSION
๏ content-location: http://server/Patient/1234/_history/2
API REST
๏ RECHERCHER UNE RESSOURCE
๏ BEAUCOUP DE POSSIBILITÉS DE RECHERCHE
๏ PRINCIPE SIMPLE :
๏ LE CLIENT ENVOI UN REQUETE AVEC DES PARAMÈTRES
๏ LE SERVEUR RENVOI UNE RESOURCE DE TYPE BUNDLE
API REST
๏ URL DE RECHERCHE :
GET http://fhirtest.uhn.ca/baseDstu2/Patient?birthdate=<1950-01-01
URL serveur type de paramètres de
ressource recherche
API REST
๏ LA RÉPONSE EST UN BUNDLE
๏ UN BUNDLE EST UNE RESSOURCE SPÉCIALE QUI CONTIENT :
๏ LE NOMBRE DE RESSOURCES TROUVÉES
๏ LA LISTE DES RESSOURCES TROUVÉES
๏ DES LIENS DE PAGINATION
API REST
๏ PARAMÈTRES DE RECHERCHE
Date Patient ‘birthdate’ <2011-02-03
Token DiagRept ‘code’ urn:mycodes|123
Quantity Observation ‘value’ >10
String Patient ‘name’ SMITH
Reference DiagRept ‘patient’ Patient/123
API REST
TESTEZ LA !
http://fhirtest.uhn.ca
API REST
๏ HISTORIQUE D’UNE RESSOURCE
๏ A PARTIR D’UN ID, TOUT L’HISTORIQUE PEUT ÊTRE
RÉCUPÉRÉ
๏ LA RÉPONSE EST UNE RESSOURCE DE TYPE BUNDLE
CONTENANT CHAQUE VERSION
API REST
๏ POSSIBLE DE S’ABONNER À LA CRÉATION OU
MODIFICATION D’UNE RESSOURCE
๏ POSSIBLE DE S’ABONNER À L’HISTORIQUE
๏ MÉTHODE DE NOTIFICATION : REST-HOOK, WEBSOCKET,
EMAIL/SMS, MESSAGE
SERVEURS
๏ PLUSIEURS SERVEURS DE TEST PUBLICS SONT
DISPONIBLES
๏ CES SERVEURS UTILISENT DES DONNÉES DE TEST !
๏ http://fhir-dev.healthintersections.com.au/open
(HealthIntersections)
๏ http://fhirtest.uhn.ca/baseDstu2 (UHN)
๏ http://spark.furore.com/fhir (Furore)
SERVEURS
๏ PLUSIEURS ÉDITEURS DE LOGICIELS HOSPITALIERS ONT
ANNONCÉ L’IMPLÉMENTATION DE FHIR
๏ EPIC
๏ CERNER
๏ ORION
๏ GE HEALTHCARE
๏ MCKESSON
๏ ….
๏ AUCUN FRANÇAIS POUR L’INSTANT :(
OUTILS
๏ IMPLÉMENTATION JAVA
๏ http://jamesagnew.github.io/hapi-fhir/
๏ IMPLÉMENTATION : C#, SWIFT, JavaScripts, Pascal, XML
๏ http://hl7-fhir.github.io/
๏ https://github.com/FHIR/fhir.js
๏ Ruby, GO
VERSIONS
๏ DSTU Draft Standard for Trial Use
๏ DSTU 2
๏ version 1.0.2
๏ https://www.hl7.org/fhir/history.html
๏ latest http://hl7-fhir.github.io/history.html (1.3.0)
LIENS AVEC LES AUTRES
STANDARDS
๏ LOINC
๏ LISTE DES ANALYSE DE BIOLOGIE
๏ SNOMED CT
๏ LISTE DES CONCEPTS EN SANTÉ
๏ UCUM
๏ UNITÉ DE MESURE
๏ UCD
๏ CODIFICATION DES MÉDICAMENTS
EXERCICES
๏ CREER UNE RESSOURCE Patient
๏ CRÉER UNE RESSOURCE Organization
๏ MODIFIER Patient : AJOUTER Organization
๏ CRÉER UNE RESSOURCE MedicationOrder AVEC LA RÉFÉRENCE AU
Patient
๏ RECHERCHER MedicationOrder AVEC LE CRITÈRE DU PATIENT
๏ SUPPRIMER MedicationOrder, Organization, Patient
๏ git clone https://github.com/sebmade/fhir-requests.git
EXERCICES
๏ CREER VOTRE SERVEUR AVEC HAPI
๏ git clone https://github.com/sebmade/restful-server-
example.git
๏ mvn install
๏ mvn jetty:run