Vue d’ensemble du mappage de destinations FHIR du service MedTech.

Cet article fournit une vue d’ensemble du mappage de destination FHIR® du service MedTech.

Le service MedTech nécessite deux types de mappages JSON ajoutés à votre service MedTech via le portail Azure ou l’API Azure Resource Manager. Le mappage d’appareil est le premier type et contrôle les valeurs de mappage dans les données de l’appareil envoyées au service MedTech à un objet de données interne normalisé. Le mappage d’appareils contient des expressions utilisées par le service MedTech pour extraire les types, les identificateurs d’appareil, l’heure de la date de mesure et les valeurs de mesure. Le mappage de destination FHIR est le deuxième type et contrôle la façon dont les données normalisées sont mappées aux observations FHIR.

Remarque

Les mappages d’appareils et de destination FHIR sont réévalués chaque fois qu’un message d’appareil est traité. Toutes les mises à jour apportées à l’un de ces mappages prennent effet immédiatement.

Bases du mappage de destination FHIR

Le mappage de destination FHIR contrôle la façon dont les données normalisées extraites d’un message d’appareil sont mappées dans une observation FHIR.

  • Une observation doit-elle être créée pour un point dans le temps ou sur une période d’une heure ?
  • Quels codes doivent être ajoutés à l’observation ?
  • La valeur doit-elle être représentée en tant que SampledData ou Quantity ?

Ces types de données sont toutes les options des contrôles de configuration de mappage de destination FHIR.

Une fois les données d’appareils transformées en modèle de données normalisés, les données normalisées sont collectées pour la transformation vers une observation FHIR. Si le type d’observation est SampledData, les données sont regroupées en fonction de l’identificateur de l’appareil, du type de mesure et de la période (la période peut être de 1 heure ou 24 heures). La sortie de ce regroupement est envoyée pour la conversion en une seule observation FHIR, ce qui représente la période pour ce type de données. Pour les autres types d’observation (Quantity, CodeableConcept et String), les données ne sont pas regroupées, mais chaque mesure est transformée en une seule observation représentant un point dans le temps.

Conseil

Pour plus d’informations sur la façon dont le service MedTech traite les données des messages d’appareils dans les observations FHIR pour la persistance sur le service FHIR, consultez Vue d’ensemble des étapes de traitement des messages de l’appareil MedTech.

Ce diagramme fournit une illustration de ce qui se passe pendant la phase de transformation au sein du service MedTech.

Diagram example of the MedTech service device message transformation stage.

Remarque

L’observation FHIR dans ce diagramme n’est pas la ressource complète. Consultez l’exemple de cette vue d’ensemble pour l’ensemble de l’observation FHIR.

CollectionFhir

CollectionFhir est le type de modèle racine utilisé par le mappage de destination FHIR du service MedTech. CollectionFhir est une liste de tous les modèles utilisés pendant l’étape de transformation. Vous pouvez définir un ou plusieurs modèles dans CollectionFhir, avec chaque message normalisé évalué par rapport à tous les modèles.

Diagram showing MedTech service FHIR destination mapping template and code architecture.

CodeValueFhir

CodeValueFhir est actuellement le seul modèle pris en charge dans le mappage de destination FHIR. Il vous permet de définir des codes, la période d’effet et la valeur de l’observation. Plusieurs types valeur sont pris en charge : SampledData, CodeableConcept, Quantity et String. Outre ces valeurs configurables, l’identificateur de la ressource d’observation et la liaison à l’appareil approprié et aux ressources des patients sont gérés automatiquement.

Important

Le Type de résolution spécifie la façon dont le service MedTech associe les données d’appareil aux ressources de type Appareil et de type Patient. Le service MedTech lit les ressources de type Appareil et les ressources de type Patient à partir du service FHIR en utilisant les identificateurs d’appareil et les identificateurs de patient. Si un identificateur de rencontre est spécifié et qu’il extrait de la charge utile des données d’appareil, il est lié à l’observation, s’il existe une rencontre sur le service FHIR avec cet identificateur. Si l’identificateur de rencontre est normalisé avec succès, mais qu’il n’existe aucune rencontre FHIR avec cet identificateur de rencontre, une exception FhirResourceNotFound est levée. Pour plus d’informations sur la configuration du type de résolution du service MedTech, consultez l’onglet Configurer la destination.

Élément Description Obligatoire
typeName Type de mesure auquel ce modèle doit être lié. Note: il doit y avoir au moins un modèle de mappage d’appareil qui génère ce même typeName. L’élément typeName est utilisé pour lier un modèle de mappage de destination FHIR à un ou plusieurs modèles de mappage d’appareils. Les modèles de mappage d’appareils avec le même élément typeName génèrent des données normalisées évaluées avec un modèle de mappage de destination FHIR qui a le même typeName. True
periodInterval Période pendant laquelle l’observation créée doit être représentée. Les valeurs prises en charge sont 0 (une instance), 60 (une heure), 1440 (un jour). True lorsque le type d’observation est SampledData ; ignoré pour d’autres types d’observation.
category N’importe quel nombre de CodeableConcepts pour classifier le type d’observation créé. False
codes Un ou plusieurs Codages à appliquer à l’observation créée. True
codes[].code Le code d’un codage dans l’élément codes. True
codes[].system Le système pour un codage dans l’élément codes. False
codes[].display L’affichage d’un codage dans l’élément codes. False
value Valeur à extraire et à représenter dans l’observation. Pour plus d’informations sur les éléments que l’élément value contient, consultez Type valeur. True lorsque l’élément components n’est pas utilisé (sauf si le type d’observation est CodebleConcept, auquel cas cet élément n’est pas seulement « non requis », mais également ignoré).
appareillage de commutation Un ou plusieurs composants à créer sur l’observation. True lorsque l’élément value n’est pas utilisé à la place.
components[].codes Un ou plusieurs Codages à appliquer au composant. False
components[].value Valeur à extraire et à représenter dans le composant. Pour plus d’informations sur les éléments que l’élément components[].value contient, consultez Type valeur. True lorsque l’élément components est utilisé (sauf si le type d’observation est CodebleConcept, auquel cas cet élément n’est pas seulement « non requis », mais également ignoré).

Types de valeur

Tous les modèles CodeValueFhir l’élément value contient les éléments suivants :

Élément Description Obligatoire
valueType Type de la valeur. Cette valeur pourrait être « SampledData », « Quantity », « CodeableConcept » ou « String » en fonction du type valeur. True
valueName Nom de la valeur. True, sauf si valueType s’agit de CodeableConcept.

Ces types de valeurs sont pris en charge dans le mappage de destination FHIR du service MedTech :

SampledData

Cela représente le type de données FHIR SampledData. Les mesures d’observation sont écrites dans un flux de valeurs à partir d’un point dans le temps et incrémentent vers l’avant à l’aide de la période définie. Si aucune valeur n’est présente, un E est écrit dans le flux de données. Si la période est telle que deux ou plusieurs valeurs supplémentaires occupent la même position dans le flux de données, la valeur la plus récente est utilisée. La même logique est appliquée lorsqu’une observation utilisant SampledData est mise à jour. Pour un modèle CodeValueFhir avec le type de valeur SampledData, le modèle de l’élément value contient les éléments suivants :

Élément Description Obligatoire
defaultPeriod Période par défaut en millisecondes à utiliser. True
unitéé Unité à définir sur l’origine de SampledData. True

Quantity

Représente le type de données Quantity FHIR. Ce type crée une observation unique, limite dans le temps. Si une nouvelle valeur arrive qui contient le même identificateur d’appareil, le type de mesure et l’horodatage, l’observation précédente est mise à jour vers la nouvelle valeur. Pour un modèle CodeValueFhir avec le type de valeur Quantity, le modèle de l’élément value contient les éléments suivants :

Élément Description Obligatoire
unitéé Représentation de l’unité. False
code Forme codée de l’unité. False
d’arroseur à pré-action Système qui définit la forme d’unité codée. False

CodeableConcept

Représente le type de données CodeableConcept FHIR. La valeur du modèle de données normalisé n’est pas utilisée et, au lieu de cela, lorsque ce type de données est reçu, une observation est créée avec un code spécifique représentant qu’une observation a été enregistrée à un moment précis dans le temps. Pour un modèle CodeValueFhir avec le type de valeur CodeableConcept, le modèle de l’élément value contient les éléments suivants :

Élément Description Obligatoire
texte Représentation du texte brut. False
codes Un ou plusieurs Codages à appliquer à l’observation créée. True
codes[].code Le code d’un codage dans l’élément codes. True
codes[].system Le système pour un codage dans l’élément codes. False
codes[].display L’affichage d’un codage dans l’élément codes. False

Chaîne

Cela représente le type de données FHIR String. Ce type crée une observation unique, limite dans le temps. Si une nouvelle valeur arrive qui contient le même identificateur d’appareil, le type de mesure et l’horodatage, l’observation précédente est mise à jour vers la nouvelle valeur. Aucun autre élément n’est défini.

Exemple

Conseil

Vous pouvez utiliser le Débogueur de mappage du service MedTech pour obtenir de l’aide sur la création, la mise à jour et la résolution des problèmes liés aux mappages d’appareils et aux mappages de destinations FHIR du service MedTech. Le Débogueur de mappage vous permet de voir et d’effectuer facilement des ajustements inline en temps réel, sans jamais avoir à quitter le portail Azure. Le Débogueur de mappage peut également être utilisé pour charger des messages d’appareil de test afin de voir à quoi ils ressembleront une fois traités en messages normalisés et transformés en observations FHIR.

Remarque

Cet exemple et ce message normalisé sont une continuation de la vue d’ensemble du mappage des appareils de service MedTech.

Dans cet exemple, nous utilisons un message normalisé qui capture des données heartRate :

[
  {
    "type": "heartrate",
    "occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
    "deviceId": "device01",
    "properties": [
      {
        "name": "hr",
        "value": "78"
      }
    ]
  }
]

Nous utilisons ce mappage de destination FHIR pour l’étape de transformation :

{
  "templateType": "CollectionFhir",
  "template": [
    {
      "templateType": "CodeValueFhir",
      "template": {
        "codes": [
          {
            "code": "8867-4",
            "system": "http://loinc.org",
            "display": "Heart rate"
          }
        ],
        "typeName": "heartrate",
        "value": {
          "system": "http://unitsofmeasure.org",
          "code": "count/min",
          "unit": "count/min",
          "valueName": "hr",
          "valueType": "Quantity"
        }
      }
    }
  ]
}

L’observation FHIR résultante se présente comme suit après l’étape de transformation :

[
  {
    "code": {
      "coding": [
        {
          "system": {
            "value": "http://loinc.org"
          },
          "code": {
            "value": "8867-4"
          },
          "display": {
            "value": "Heart rate"
          }
        }
      ],
      "text": {
        "value": "heartrate"
      }
    },
    "effective": {
      "start": {
        "value": "2023-03-13T22:46:01.8750000Z"
      },
      "end": {
        "value": "2023-03-13T22:46:01.8750000Z"
      }
    },
    "issued": {
      "value": "2023-04-05T21:02:59.1650841+00:00"
    },
    "value": {
      "value": {
        "value": 78
      },
      "unit": {
        "value": "count/min"
      },
      "system": {
        "value": "http://unitsofmeasure.org"
      },
      "code": {
        "value": "count/min"
      }
    }
  }
]

Conseil

Pour obtenir de l’aide sur la résolution des erreurs courantes de déploiement du service MedTech, consultez Résoudre les erreurs de déploiement du service MedTech.

Pour obtenir de l’aide sur la résolution des erreurs du service MedTech, consultez Résoudre les erreurs à l’aide des journaux du service MedTech.

Étapes suivantes

Vue d’ensemble du mappage des appareils du service MedTech

Comment utiliser des modèles CalculatedContent avec le mappage d’appareils du service MedTech

Comment utiliser des modèles IotJsonPathContent avec le mappage d’appareils du service MedTech

Comment utiliser des fonctions personnalisées avec le mappage d’appareils du service MedTech

Vue d’ensemble des exemples de mappages basés sur des scénarios du service MedTech

Remarque

FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.