Guide d'implémentation du médicament
0.1.0 - ci-build
Guide d'implémentation du médicament - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. 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éexistence 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épend 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.referenceMessage/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.referenceMessage/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à:
Practitioner.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.valueet é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_prescripteursont renseignés en plus de Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Identification_prescripteur/Identifiantet é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 les instances de MedicationRequest.dosageInstruction précédemment créées auxquelles il s’applique.
Point d’attention: Les Type_événement_débutvalorisés à 4avec Evénement_débutde type 1ne sont pas forcément applicable à tous les autres Elément_posologie. En particulier, dans le cadre de la PCA (Patient Controled Analgesiae), ils ne s’appliquent qu’au bolus.
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/Nombrecode, 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_posocode, 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éhiculecode, 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éhiculen’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/Nombrecode, 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 15005000pour poche.Les liens entre lignes de prescription peuvent être traduits par une ressource RequestGroup selon le type de relation indiqué dans le message PN13
Lien de type “Complément”
Le lien de type “Complément” en PN13 est purement indicatif. Etant donné qu’il est indicatif et qu’il n’est pas possible de le traduire de façon standard en FHIR, il a été choisi de ne pas proposer une traduction en FHIR de ce type de lien.
Lien de type “Alternance”
Par manque d’exemples d’implémentation de ce type de lien en PN13 et étant donné la complexité de représentation d’un alternance via une ressource RequestGroup, il a été décidé de ne pas proposer de processus de traduction PN13 vers FHIR pour ce type de relation.
Un mapping pourrait être proposé ultérieurement si des exemples d’implémentation de ce type de lien étaient fournis.
Lien de type “Alternative”
Lorsqu’un message PN13 contient au moins un Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_lié avec Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_lié/Type_liaison_élément de valeur 3, une ressource RequestGroup est à créer avec les éléments suivants:
RequestGroup.meta.profileest fixé à https://hl7.fr/ig/fhir/medication/StructureDefinition/fr-requestgroup-for-prescriptionRequestGroup.groupIdentifier.valueetRequestGroup.groupIdentifier.systemprennent les mêmes valeurs que pour les ressources MedicationRequestcréées lors de la traduction du message PN13 (cf. ConceptMap pour les lignes de prescription)RequestGroup.status prend la même valeur que la ligne de prescription portant l’élément lié telle que définie par la ressource ConceptMap pour les lignes de prescriptionRequestGroup.intentprend la valeur orderRequestGroup.priority prend la même valeur que la ligne de prescription portant l’élément lié telle que définie par la ressource ConceptMap pour les lignes de prescriptionRequestGroup.subjectréférence le même patient que les ressources MedicationRequestcréées lors de la traduction du message PN13RequestGroup.actionest créée pour chaque ligne de prescription (Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic) lié à une autre dans le message PN13. Elle est renseigné de la manière suivante:
RequestGroup.action.idprend la valeur de Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Id_élément_prescrRequestGroup.action.description est renseigné avec la condition de prise de l’alternative (ex. en cas d’intolérance au médicament A). En général cette condition est présentée dans un élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Evénement_début ou Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Evénement2_début correspondant à un Type_événement_débutou Type_événement2_débutde valeur 3RequestGroup.action.relatedAction.extension.urlest fixé à https://hl7.fr/ig/fhir/medication/StructureDefinition/fr-additional-action-relationshipRequestGroup.action.relatedAction.extension.valueCodeest fixé à ALTRequestGroup.action.relatedAction.actionIdest renseigné avec la valeur de Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/Elément_lié/Id_élément_liéRequestGroup.action.relatedAction.relationshipest fixé à concurrent(pas de valeur plus adaptée)RequestGroup.action.ressourceréférence la ressource MedicationRequestcréée pour représenter la ligne de prescription portant la relation (i.e. l’élément Message/M_Prescription_médicaments/Prescription/Elément_prescr_médic/ traduit)Point d’attention
Afin de respecter les spécifications FHIR, les ressources MedicationRequestcréées lors de la traduction du message PN13 en FHIR doivent avoir MedicationRequest.intentvalorisé à option. Cette valeur remplace la valeur définie par l’application de la ressource ConceptMap pour les lignes de prescription
Note:
Etant donné la complexité du processus de traduction pour un lien de type “Alternative” (nécessité d’aller retouver la priorité, pas d’emplacement fixe pour la condition d’alternative…), il ne fait pas l’objet d’une ressource de type ConceptMap.
Lien de type “Dispensation DC”
Le lien de type “Dispensation DC” est utilisé dans le cas d’usage de la dispensation, le mapping PN13 FHIR sera réalisé dans une version ultérieure de ce guide
Lien de type “Modification”
Le lien de type “Modification” est utilisé dans le cas d’usage de l’analyse pharmaceutique, le mapping PN13 FHIR sera réalisé dans une version ultérieure de ce guide
Lien de type “Suggestion”
Le lien de type “Suggestion” est utilisé dans le cas d’usage de l’analyse pharmaceutique, le mapping PN13 FHIR sera réalisé dans une version ultérieure de ce guide
Lien de type “Remplacement”
Le lien de type “Remplacement” est utilisé dans le cas d’usage de l’analyse pharmaceutique, le mapping PN13 FHIR sera réalisé dans une version ultérieure de ce guide
Prévu pour une version ultérieure de ce guide.