IHE / HL7 du fun en SIH : LESSON ONE – IHE-SVS !

MERCI !

Tout d’abord je tiens à remercier Patatozor pour la place qu’il nous laisse sur son site !
Merci, enfin une tribune pour le IHE / HL7 amateur/semi-pro !

Pour remonter aux sources, il faut quand même parler du début, IHE / HL7 (pour les puristes ASTM rocks!) ce n’est pas que de la grosse compétition internationale, c’est aussi des passionnés, qui se lance des défis entre eux et essaient de repousser les limites de la folie;

Combien de fois ne nous sommes pas dits “ce mouvement pourrait être mieux transmis par ma GAM… mais qui pour tester les Z99 ?” et … personne pour en parler
La community de pure players pourra remercier Patatozor !

 

LESSON ONE : IHE-SVS YEaaaaahh

Je sais que d’ordinaire on commence avec des basiques, mais c’est aussi ça l’interop, c’est le fait de kiffer la nouveauté et de ne pas hésiter à dire que tout à changer du jour au lendemain… héhé

Aujourd’hui je vous propose un petit bootkit sur la nouveauté du moment aux states, les value set !

Tout part d’une idée : les nomenclatures aux perfs moyennes, les tables à papa, c’est fini.

D’ailleurs en terme d’urbanisation, cet aspects à toujours été problématique, et ce, dès la CIM…

Si la pratique du Webservice se fait sentir dans quelques applis web, il faut dire que dans la plupart des produits pro, on retombe encore sur le bon vieux select oracle… et ça rame copieux
Ne parlons pas des changements de version de CCAM, le casse tête …

Les gars de chez IHE se sont naturellement dit qu’il était temps de normaliser tout ça, et ils réutilisent les bonnes recettes HL7 !!

IHE HL7 Yeaah
en famille c'est bien aussi

 

Alors le value set .. kesako ?
Les value sets, (jeu de valeur en bon Français), ce sont simplement les liste de codes / libellés issues de nomenclatures.

Pourquoi ne pas utiliser les nomenclatures en base directement  ? ( me direz vous si vous n’avez pas encore décroché…)

Exemple : vous souhaitez permettre dans un moteur de formulaire la sélection d’une affection issue d’une nomenclature, par exemple CIM : il faut que l’utilisateur puisse chercher, et trouver partir de votre interface dans la CIM :

(L02) Abcès cutané, furoncle et anthrax

Ok, vous me dites un select

Sauf que parfois et voir souvent, un formulaire se limite à 2-3 codes CIM bien identifiés, si vous ne faites QUE SOIGNER DES FURONCLES TOUTE LA JOURNEE §§§§§§§§§

Imaginons un service oncologie, les codes CIM de telle ou telle RCP sont “limités”. En RCP dermato, on se limite à certains codes CIM liés à la prise en charge.
On va pas refaire une vue oracle avec un autre select pour chaque formulaire… et on va demander aux secrétaires médicales d’apprendre les codes CIM, … et avec la rotation des équipes, c’est pas productif.

La nouveauté : le jeu de valeur…

Les value set vous permettent de définir une sous sélection d’une, ou de plusieurs nomenclatures.

  • Une nomenclature est désignée par un OID.
  • Un value set est aussi désigné par un OID.
  • Un value set peut rassembler des items issus de nomenclatures différentes
  • Dans une nomenclature il y a pour chaque item un code e t un libellé au moins. Le code de l’item se rapporte dans sa nomenclature d’origine

La pratique : le jeu de valeur style WebService

IHE-SVS définit des wsdl pour l’interrogation d’un registre / entrepôt de Value Sets.

Ci-dessous : une requête SVS qui demande le content du Value Set 1.2.840.10008.6.1.308 en anglais SVP monsieur le serveur !

<?xml version=”1.0″ encoding=”UTF-8″?>

 

<s:Envelope xmlns:s=”http://www.w3.org/2003/05/soap-envelope” xmlns:a=”http://www.w3.org/2005/08/addressing”>

 

<s:Header>

 

<a:Action s:mustUnderstand=”1″>urn:ihe:iti:2008:RetrieveValueSet</a:Action>

 

<a:MessageID>urn:uuid:0fbfdced-6c01-4d09-a110-2201afedaa02</a:MessageID>

 

<a:ReplyTo> <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> </a:ReplyTo>

 

<a:To s:mustUnderstand=”1″>http://valuesetrepository/</a:To>

 

</s:Header>

 

<s:Body>

 

<RetrieveValueSetRequest xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”urn:ihe:iti:svs:2008″>

 

<ValueSet id=”1.2.840.10008.6.1.308″ xml:lang=”en-EN”/>

 

</RetrieveValueSetRequest>

 

</s:Body>

 

</s:Envelope>

et la réponse :

<?xml version=”1.0″ encoding=”UTF-8″?>
<s:Envelope xmlns:a=”http://www.w3.org/2005/08/addressing”
xmlns:s=”http://www.w3.org/2003/05/soap-envelope”>
<s:Header>
<a:Action s:mustUnderstand=”1″>urn:ihe:iti:2008:RetrieveValueSetResponse</a:Action>
<a:RelatesTo>urn:uuid:0fbfdced-6c01-4d09-a110-2201afedaa02</a:RelatesTo>
</s:Header>
<s:Body>
<RetrieveValueSetResponse xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns=”urn:ihe:iti:svs:2008″ cacheExpirationHint=”2008-08-15T00:00:00-05:00″>
<ValueSet id=”1.2.840.10008.6.1.308″ displayName=”Common Anatomic Regions Context ID 4031″ version=”20061023″>

 

<ConceptList xml:lang=”en-US”>
<Concept code=”T-D4000″ displayName=”Abdomen” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”R-FAB57″ displayName=”Abdomen and Pelvis” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-15420″ displayName=”Acromioclavicular joint” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-15750″ displayName=”Ankle joint ” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-280A0″ displayName=”Apex of Lung” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-D8200″ displayName=”Arm” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-60610″ displayName=”Bile Duct” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-74000″ displayName=”Bladder” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-04000″ displayName=”Breast” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-26000″ displayName=”Bronchus” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-12770″ displayName=”Calcaneus” codeSystem=”2.16.840.1.113883.6.5″/>
<Concept code=”T-11501″ displayName=”Cervical spine” codeSystem=”2.16.840.1.113883.6.5″/>
</ConceptList>

 

</ValueSet>

 

</RetrieveValueSetResponse>
</s:Body>
</s:Envelope>

Comme vous pouvez le voir, le VS d’OID 1.2.840.10008.6.1.308 , désigne en fait un jeu de valeurs pour les régions anatomiques qui énumèrent des valeurs qui sont compatibles avec la SNOMED ( tous les codes donnés sont issus du Code System 2.16.840.1.113883.6.5).

L’intérêt pour les praticien est certain : il peut grouper ou bénéficier du groupage de certains informations directement en la sélectionnant dans une nomenclature reconnue. Oubliées les tables de transcodage quand on veut juste se concentrer sur une spécialité en réalisant son formulaire.

L’intérêt macro est le partage de document et l’interop : ainsi dans un formulaire CDAR2 Niveau3, l’item choisi est décrit, et seul SNOMED est cité, le value set n’a que peu d’intérêt… les logiciels se comprennent !

L’exemple traite de SNOMED, mais c’est applicable à n’importe quelle nomenclature dès qu’elle est identifiée par un OID, mais c’est souvent le cas !!

MAIS BIEN PLUS §§§§§

Il y a bien d’autres fonction pour les recherches complexes ou pour rechercher dans le registre les valueSets existants, mais je vais pas gâcher le plaisir (si si) de la découverte alors je vous file direct le lien du Trial Implementation de IHE
http://www.ihe.net/Technical_Framework/upload/IHE_ITI_Suppl_SVS_Rev2-1_TI_2010-08-10.pdf

On peut aussi jouer avec le méga serveur PHIN VADS du CDC US, qui est une implémentation de registre/entrepôts de valueSets
https://phinvads.cdc.gov

 

 

GOODIES :

Comme vous avez lu jusqu’ici, je vous félicite, et même si on touche à la fin des fêtes, je vous donne l’URL de motorcycleguy qui vou souhaite un joyeux noël et une bonne année en HL7V3 : http://motorcycleguy.blogspot.com/2011/12/happy-holidays-hl7-v3-style.html

 

have fun ! et à bientôt pour de nouvelles aventures !!!

2 réflexions sur « IHE / HL7 du fun en SIH : LESSON ONE – IHE-SVS ! »

  1. Bravo pour ce 1er article, je ne dirais qu’une chose..c’est pas faux, c’est vraiment pas faux !

  2. En le lisant j’ai eu une phrase qui m’est revenue à l’esprit : “On ne regrette pas sa soirée !” …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.