Omówienie mapowania docelowego usługi MedTech FHIR

Ten artykuł zawiera omówienie mapowania docelowego usługi MedTech FHIR®.

Usługa MedTech wymaga dwóch typów mapowań JSON , które są dodawane do usługi MedTech za pośrednictwem witryny Azure Portal lub interfejsu API usługi Azure Resource Manager. Mapowanie urządzenia jest pierwszym typem i kontroluje wartości mapowania w danych urządzenia wysyłanych do usługi MedTech do wewnętrznego, znormalizowanego obiektu danych. Mapowanie urządzenia zawiera wyrażenia używane przez usługę MedTech do wyodrębniania typów, identyfikatorów urządzeń, daty pomiaru i wartości pomiarów. Mapowanie miejsca docelowego FHIR jest drugim typem i kontroluje sposób mapowania znormalizowanych danych na obserwacje FHIR.

Uwaga

Mapowania docelowe urządzenia i FHIR są ponownie oceniane przy każdym przetworzeniu komunikatu urządzenia. Wszystkie aktualizacje dowolnego mapowania zostaną zastosowane natychmiast.

Podstawy mapowania miejsc docelowych FHIR

Mapowanie miejsca docelowego FHIR steruje sposobem mapowania znormalizowanych danych wyodrębnionych z komunikatu urządzenia na obserwację FHIR.

  • Czy obserwacja powinna zostać utworzona dla punktu w czasie lub w okresie godziny?
  • Jakie kody należy dodać do obserwacji?
  • Czy wartość powinna być reprezentowana jako SampledData lub Quantity?

Te typy danych to wszystkie opcje kontrolek konfiguracji mapowania docelowego FHIR.

Po przekształceniu danych urządzenia w znormalizowany model danych znormalizowane dane są zbierane do przekształcania do obserwacji FHIR. Jeśli typ obserwacji to SampledData, dane są pogrupowane według identyfikatora urządzenia, typu miary i okresu (okres może wynosić 1 godzinę lub 24 godziny). Dane wyjściowe tego grupowania są wysyłane do konwersji na pojedynczą obserwację FHIR, która reprezentuje okres dla tego typu danych. W przypadku innych typów obserwacji (Quantity, CodeableConcept i String) dane nie są grupowane, ale zamiast tego każda miara jest przekształcana w pojedynczą obserwację reprezentującą punkt w czasie.

Napiwek

Aby uzyskać więcej informacji na temat sposobu przetwarzania danych komunikatów urządzenia przez usługę MedTech w obserwacjach FHIR w celu utrzymania w usłudze FHIR, zobacz Omówienie etapów przetwarzania komunikatów urządzenia usługi MedTech.

Ten diagram zawiera ilustrację tego, co dzieje się na etapie transformacji w usłudze MedTech.

Diagram example of the MedTech service device message transformation stage.

Uwaga

Obserwacja FHIR na tym diagramie nie jest kompletnym zasobem. Zobacz Przykład w tym omówieniu dla całej obserwacji FHIR.

KolekcjaFhir

CollectionFhir to typ szablonu głównego używany przez mapowanie lokalizacji docelowej FHIR usługi MedTech. CollectionFhir to lista wszystkich szablonów używanych podczas etapu transformacji. Można zdefiniować jeden lub więcej szablonów w kolekcjiFhir, przy użyciu każdego znormalizowanego komunikatu ocenianego względem wszystkich szablonów.

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

CodeValueFhir

CodeValueFhir jest obecnie jedynym szablonem obsługiwanym w mapowaniu docelowym FHIR. Umożliwia ona definiowanie kodów, obowiązujących okresów i wartości obserwacji. Obsługiwane są wiele typów wartości: SampledData, CodeableConcept, Quantity i String. Wraz z tymi konfigurowalnymi wartościami identyfikator zasobu obserwacji i łączenie z odpowiednimi zasobami urządzenia i pacjenta są obsługiwane automatycznie.

Ważne

Typ rozwiązania określa sposób, w jaki usługa MedTech kojarzy dane urządzenia z zasobami urządzenia i zasobami pacjenta. Usługa MedTech odczytuje zasoby urządzenia i pacjenta z usługi FHIR przy użyciu identyfikatorów urządzeń i identyfikatorów pacjentów. Jeśli identyfikator napotkania jest określony i wyodrębniony z ładunku danych urządzenia, jest on połączony z obserwacją, jeśli w usłudze FHIR istnieje spotkanie z tym identyfikatorem. Jeśli identyfikator napotkania został pomyślnie znormalizowany, ale nie istnieje błąd FHIR Encounter z tym identyfikatorem napotkania, zgłaszany jest wyjątek FhirResourceNotFound. Aby uzyskać więcej informacji na temat konfigurowania typu rozpoznawania usługi MedTech, zobacz Konfigurowanie karty Miejsce docelowe.

Element opis Wymagania
Typename Typ miary, z jaką powinien być powiązany ten szablon. Uwaga: powinien istnieć co najmniej jeden szablon mapowania urządzenia, który ma ten sam typeNameplik . Element typeName służy do łączenia szablonu mapowania docelowego FHIR z co najmniej jednym szablonem mapowania urządzeń. Szablony mapowania urządzeń z tym samym typeName elementem generują znormalizowane dane, które są oceniane przy użyciu szablonu mapowania docelowego FHIR, który ma ten sam typeNameelement . Prawda
periodInterval Okres czasu, przez który utworzona obserwacja powinna reprezentować. Obsługiwane wartości to 0 (wystąpienie), 60 (godzina), 1440 (dzień). Prawda, gdy typ obserwacji to SampledData; Ignorowane dla innych typów obserwacji.
Kategorii Dowolna liczba obiektów CodeableConcepts do klasyfikowania typu utworzonej obserwacji. Fałsz
Kody Co najmniej jeden kod do zastosowania do utworzonej obserwacji. Prawda
codes[].code Kod kodowania w elemecie codes . Prawda
codes[].system System kodowania w elemecie codes . Fałsz
codes[].display Wyświetlanie kodu w elemecie codes . Fałsz
wartość Wartość do wyodrębnienia i reprezentowania w obserwacji. Aby uzyskać więcej informacji na temat elementów, które value zawiera element, zobacz Typy wartości. Wartość True, jeśli components element nie jest używany (chyba że typ obserwacji to CodebleConcept, w takim przypadku ten element nie jest tylko "wymagany", ale także ignorowany).
systemu sygnalizacji pożaru Co najmniej jeden składnik do utworzenia na obserwacji. Wartość True, jeśli value element nie jest używany.
components[].codes Co najmniej jeden kodowanie, które mają być stosowane do składnika. Fałsz
components[].value Wartość do wyodrębnienia i reprezentowania w składniku. Aby uzyskać więcej informacji na temat elementów, które components[].value zawiera element, zobacz Typy wartości. Prawda, gdy components element jest używany (chyba że typ obserwacji to CodebleConcept, w takim przypadku ten element nie jest tylko "nie wymagany", ale także ignorowany).

Typy wartości

Wszystkie elementy szablonów value CodeValueFhir zawierają następujące elementy:

Element opis Wymagania
Valuetype Typ wartości. Ta wartość to "SampledData", "Quantity", "CodeableConcept" lub "String" w zależności od typu wartości. Prawda
Valuename Nazwa wartości. Prawda, chyba że valueType jest CodeableConcept.

Te typy wartości są obsługiwane w mapowaniu lokalizacji docelowej FHIR usługi MedTech:

SampledData

Reprezentuje typ danych SampledData FHIR. Pomiary obserwacji są zapisywane w strumieniu wartości rozpoczynającym się od punktu w czasie i zwiększane do przodu przy użyciu zdefiniowanego okresu. Jeśli żadna wartość nie jest obecna, element E jest zapisywany w strumieniu danych. Jeśli okres jest taki, że co najmniej dwie wartości zajmują tę samą pozycję w strumieniu danych, zostanie użyta najnowsza wartość. Ta sama logika jest stosowana podczas aktualizowania obserwacji przy użyciu sampledData. W przypadku szablonu CodeValueFhir z typem wartości SampledData element szablonu value zawiera następujące elementy:

Element opis Wymagania
defaultPeriod Domyślny okres w milisekundach do użycia. Prawda
Jednostki Jednostka, która ma być ustawiona na początku sampledData. Prawda

Ilość

Reprezentuje typ danych Quantity FHIR. Ten typ tworzy pojedynczy, punkt w czasie, Obserwacja. Jeśli pojawi się nowa wartość zawierająca ten sam identyfikator urządzenia, typ miary i znacznik czasu, poprzednia obserwacja zostanie zaktualizowana do nowej wartości. W przypadku szablonu CodeValueFhir z typem wartości Quantity element szablonu value zawiera następujące elementy:

Element opis Wymagania
Jednostki Reprezentacja jednostki. Fałsz
kod Zakodowana forma jednostki. Fałsz
sterowana System definiujący kodowany formularz jednostki. Fałsz

CodeableConcept

Reprezentuje typ danych CodeableConcept FHIR. Wartość w znormalizowanym modelu danych nie jest używana, a zamiast tego po odebraniu tego typu danych obserwacja jest tworzona przy użyciu określonego kodu reprezentującego, że obserwacja została zarejestrowana w określonym punkcie w czasie. W przypadku szablonu CodeValueFhir z typem wartości CodeableConcept element szablonu value zawiera następujące elementy:

Element opis Wymagania
text Reprezentacja zwykłego tekstu. Fałsz
Kody Co najmniej jeden kod do zastosowania do utworzonej obserwacji. Prawda
codes[].code Kod kodowania w elemecie codes . Prawda
codes[].system System kodowania w elemecie codes . Fałsz
codes[].display Wyświetlanie kodu w elemecie codes . Fałsz

Ciąg

Reprezentuje typ danych String FHIR. Ten typ tworzy pojedynczy, punkt w czasie, Obserwacja. Jeśli pojawi się nowa wartość zawierająca ten sam identyfikator urządzenia, typ miary i znacznik czasu, poprzednia obserwacja zostanie zaktualizowana do nowej wartości. Nie zdefiniowano żadnych innych elementów.

Przykład

Napiwek

Debuger mapowania usługi MedTech umożliwia tworzenie, aktualizowanie i rozwiązywanie problemów z mapowaniami docelowymi urządzeń usługi MedTech i FHIR. Debuger mapowania umożliwia łatwe wyświetlanie i wprowadzanie wbudowanych korekt w czasie rzeczywistym bez konieczności opuszczania witryny Azure Portal. Debuger mapowania może również służyć do przekazywania komunikatów urządzenia testowego, aby zobaczyć, jak będą one wyglądać po przetworzeniu w znormalizowane komunikaty i przekształcone w obserwacje FHIR.

Uwaga

Ten przykład i znormalizowany komunikat jest kontynuacją mapowania urządzeń usługi MedTech.

W tym przykładzie używamy znormalizowanego komunikatu przechwytujące heartRate dane:

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

Używamy tego mapowania docelowego FHIR dla etapu transformacji:

{
  "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"
        }
      }
    }
  ]
}

Wynikowa obserwacja FHIR będzie wyglądać następująco po etapie transformacji:

[
  {
    "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"
      }
    }
  }
]

Napiwek

Aby uzyskać pomoc dotyczącą naprawiania typowych błędów wdrażania usługi MedTech, zobacz Rozwiązywanie problemów z błędami wdrażania usługi MedTech.

Aby uzyskać pomoc dotyczącą naprawiania błędów usługi MedTech, zobacz Rozwiązywanie problemów z błędami przy użyciu dzienników usługi MedTech.

Następne kroki

Omówienie mapowania urządzeń usługi MedTech

Jak używać szablonów CalculatedContent z mapowaniem urządzeń usługi MedTech

Jak używać szablonów IotJsonPathContent z mapowaniem urządzeń usługi MedTech

Jak używać funkcji niestandardowych z mapowaniem urządzeń usługi MedTech

Omówienie przykładów mapowań opartych na scenariuszach usługi MedTech

Uwaga

FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.