Guide d'implémentation du médicament
0.1.0 - ci-build
Guide d'implémentation du médicament, published by Interop'Santé. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Interop-Sante/hl7.fhir.fr.medication/ and changes regularly. See the Directory of published versions
La transformation de messages PN13 en ressources FHIR se fait à partir de ConceptMap indiquant la correspondance entre les éléments XML des messages PN13 et les attributs des ressources FHIR. Elle dépend de certains éléments du message PN13 (ex. nombre d’élément Composant_prescrit
, présence d’élément Elément_lié
pour la prescription) et dans le cas du sens PN13 vers FHIR de la préexistance des instances de ressources pour les ressources référencées (ex. Patient, Practitioner, Encounter).
Prévu pour une version ultérieure de ce guide.
La traduction d’un message de prescription PN13 en ressources FHIR résulte en plusieurs ressources FHIR qui peuvent être constituées à l’aide des ressources ConceptMap fournies dans ce guide.
La manière dont les ressources FHIR résultantes sont mises à disposition dépends du serveur FHIR (ex. operation spécifique pour la recherche de prescription par identifiant, mise en oeuvre de _include
et de _revInclude
). Pour des raisons de lisibilité, les exemples présentés en FHIR sont considérés comme le résultat d’une recherche de prescription par identifiant (i.e. élément groupIndentifier
cf. section suivante sur la notion de prescription multiligne) sous forme de Bundle de type searchset
.
Il n’existe pas de ressource FHIR pour représenter l’objet prescription. Beaucoup d’implémentations internationales ne traitent que de prescriptions monolignes pour lesquelles la notion de prescription et la notion de ligne de prescription sont confondues dans la ressource FHIR MedicationRequest. Les groupes de travail FHIR au niveau international, interrogés sur la question des prescriptions multilignes, ont fournis des recommandations d’utiliser l’élément groupIdentifier
comme lien entre les différentes lignes de prescritpion d’une prescription multiligne. Une évolution est en cours pour permettre l’interrogation d’un serveur FHIR de manière indiscriminée sur les éléments identifier
et groupIdentifier
afin d’obtenir tous les composants d’une prescription que celle-ci soit monoligne ou multiligne.
Dans le cas de prescription comportant des liens entre les lignes (ex. exclusivité entre une ligne de prescription et une autre) une ressource RequestGroup en FHIR R4 ou RequestOrchestration en FHIR R5 peut être utilisée pour représenter ces liens. Elle porte également le même ‘groupIdentifier’ que les ressources MedicationRequest qui représentent les lignes de prescription.
Les “ressources de contexte” qui sont à référencer par la prescription FHIR (i.e. Patient, Practitioner, Encounter et éventuellement Observation) peuvent déjà exister dans le serveur FHIR:
identifier
.Dans le message PN13, à partir des sous-éléments de Message/M_Prescription_médicaments/Patient
identifier si une ressource Patient existe déjà:
Patient.id
pour alimenter MedicationRequest.subject.reference
Message/M_Prescription_médicaments/Patient/Ipp
est fourni, l’utiliser pour alimenter MedicationRequest.subject.identifier.value
cf. ressource ConceptMap PN13-FHIR-prescmed-patient-id-seul-conceptmap.Message/M_Prescription_médicaments/Patient/INS
renseigné et élément Message/M_Prescription_médicaments/Patient/Statut_idpat
valorisé à VALI
), créer la ressource Patient suivant le profil FRCorePatientINS (éventuellement directement sur le serveur ou dans la ressource Bundle représentant la prescription comme c’est le cas pour les exemples fournis) en utilisant la ressource ConceptMap PN13-FHIR-prescmed-patient-avec-INS-conceptmap.Dans le message PN13, à partir des sous-éléments de Message/M_Prescription_médicaments/Séjour
identifier si une ressource Encounter existe déjà:
Encounter.id
pour alimenter MedicationRequest.encounter.reference
Message/M_Prescription_médicaments/Séjour/Id_séjour
pour alimenter MedicationRequest.encounter.identifier.value
et éventuellement Message/M_Prescription_médicaments/Séjour/DI_séjour
s’il est fourni pour alimenter MedicationRequest.encounter.identifier.system
cf. ressource ConceptMap PN13-FHIR-prescmed-patient-id-seul-conceptmap.Pour chaque élément Message/M_Prescription_médicaments/Prescription/Rens_compl
avec un sous élément Code_rens_compl_1
, Code_rens_compl_2
, Code_rens_compl_3
ou Code_rens_compl_5
dans le message PN13 créer une ressource Observation correspondante en utilisant la ressource ConceptMap PN13-FHIR-observation-conceptmap.
Note 1: Des ressources Observation correspondantes pourraient déjà exister, mais étant donné le peu d’éléments sur lesquels faire la comparaison, il semble plus simple de créer les ressources Observation à chaque fois quitte à avoir quelques doublons.
Note 2: Les ressources Observation créées pour des sous-éléments Code_rens_compl_1
et Code_rens_compl_2
suivent des profils français nationaux identifiés dans la ressource ConceptMap.
Dans le message PN13, à partir des sous-éléments de Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Id_prescripteur
ou Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur
identifier si une ressource Practioner existe déjà:
Ppractitioner.id
pour alimenter MedicationRequest.requester.reference
.Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Id_prescripteur
est fourni, l’utiliser pour alimenter MedicationRequest.requester.identifier.value
cf. ressource ConceptMap PN13-FHIR-prescmed-practitioner-id-seul-conceptmap.Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Identifiant
est fourni seul ou avec uniquement Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Domaine_identification
, utiliser Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Identifiant
pour alimenter MedicationRequest.requester.identifier.value
et éventuellement Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Domaine_identification
pour alimenter MedicationRequest.requester.identifier.system
en le transformant si nécessaire pour être au format uri accepté par FHIR.Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur
sont renseignés en plus de Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Identifiant
et éventuellement Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Domaine_identification
, créer la ressource Practitioner suivant le profil FrCorePractitioner en utilisant la ressource ConceptMap PN13-FHIR-prescmed-practitioner-identite-conceptmap.Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit
dans le message PN13:
MedicationRequest.medicationCodeableConcept
(dans le cas d’un médicament simple) soit dans Medication.ingredient.itemCodeableConcept
(dans le cas d’un médicament composé cf. item 2) ou de créer une ressource Medication pour ce médicament (cf. item suivant sur la création de la ressource Medication);Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit
créer une ressource Medication suivant le profil [fr-medication-compound] en utilisant la ressource ConceptMap PN13-FHIR-prescmed-medicationcomp-conceptmap :
Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit
via Medication.ingredient.itemReference.reference
;Medication.ingredient.itemCodeableConcept
.Créer une ressource MedicationRequest suivant le profil FrInpatientMedicationRequest en utilisant la ressource ConceptMap PN13-FHIR-prescmed-medicationrequest-conceptmap et en référençant les ressources précédemment créées ou identifiées lors des étapes précédentes.
Pour chaque élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie
ne comportant pas d’élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Type_événement_début
valorisé à 4
, créer une instance de MedicationRequest.dosageInstruction
en utilisant la ressource ConceptMap PN13-FHIR-prescmed-dosageinstruction-conceptmap.
Pour chaque élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie
comportant un élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Type_événement_début
valorisé à 4
ET un autre élément (utilisation de Type_événement_début
et de Type_événement2_début
), créer une instance de MedicationRequest.dosageInstruction
en utilisant la ressource ConceptMap PN13-FHIR-prescmed-dosageinstruction-conceptmap.
Pour chaque élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie
comportant uniquement un (ou deux) élément(s) Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Type_événement_début
valorisé(s) à 4
utiliser la ressource ConceptMap PN13-FHIR-prescmed-dosageinstruction-conceptmap pour mettre à jour toutes les instances de MedicationRequest.dosageInstruction
précédemment créées.
En PN13, il est possible d’exprimer le concept de dose au niveau de Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite
et de faire référence à cette dose dans Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie
. Cette possibilité n’existe pas en FHIR.
Si l’unité référencée en PN13 dans Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Unité
est dose
le processus de transformation suivant est à appliquer par ordre de priorité:
value
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à calculer en multipliant Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Nombre
ou Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Débit/Nombre
par Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite/Nombre
code
, system
et/ou unité
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à déterminer à partir de Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite/Unité
selon la logique décrite pour Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Unité
dans la ressource ConceptMap PN13-FHIR-prescmed-dosageinstruction-conceptmapMessages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Référent_poso
est présent et valorisé à 1
sur un des composants préscrits:
value
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à calculer en multipliant Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Nombre
ou Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Débit/Nombre
par Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite/Nombre
du composant prescrit avec 1
dans Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Référent_poso
code
, system
et/ou unité
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à déterminer à partir de Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite/Unité
du composant prescrit avec 1
dans Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Référent_poso
selon la logique décrite pour Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Unité
dans la ressource ConceptMap PN13-FHIR-prescmed-dosageinstruction-conceptmapMessages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Véhicule
est présent et valorisé à 1
sur un des composants préscrits:
value
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à calculer en multipliant Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Nombre
ou Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Débit/Nombre
par Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite/Nombre
du composant prescrit avec 1
dans Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Véhicule
code
, system
et/ou unité
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à déterminer à partir de Messages/M_prescription_médicaments/Prescription/Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Quantité_composant_prescrite/Unité
du composant prescrit avec 1
dans Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Véhicule
selon la logique décrite pour Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Unité
dans la ressource ConceptMap PN13-FHIR-prescmed-dosageinstruction-conceptmapMessages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Référent_poso
, ni l’élément Messages/M_prescription_médicaments/Prescription/Elément_prescr_médic/Composant_prescrit/Véhicule
n’est présent ou qu’aucun des deux n’est valorisé à 1
sur un des composants préscrits:
value
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est égal à Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Quantité/Nombre
ou Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_posologie/Débit/Nombre
code
, system
et/ou unité
dans la quantité ou dans le numérateur de MedicationRequest.dosageInstruction.doseAndRate
est à déterminer en fonction du médicament composé. Par exemple, pour les perfusions, le code EDQM 15005000
pour poche.Pour chaque élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_lié
dans le message PN13 faire une instance de RequestGroup.action
d’une ressource RequestGroup unique liant les deux ressources MedicationRequest liées
La définition de la ressource ConceptMap correspondante est prévue pour une version ultérieure du guide.
Prévu pour une version ultérieure de ce guide.