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.
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.
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 typeName plik . 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 typeName element . |
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.