Krótka odpowiedź: silnik integracyjny (engine integracyjny) to oprogramowanie pośredniczące stworzone do obsługi komunikatów medycznych. Nasłuchuje na wielu protokołach (MLLP dla HL7 v2, HTTP dla FHIR i SOAP, pliki, bazy danych, kolejki), transformuje komunikaty (mapowanie pól, tłumaczenie kodów, konwersja formatów, np. z HL7 v2 na FHIR), kieruje je do jednego lub wielu miejsc docelowych z użyciem filtrów, a także zapewnia kolejki, ponawianie prób, logi i pulpity nawigacyjne, dzięki czemu żaden komunikat nie ginie, a każdy błąd jest widoczny. Szpitale używają go, aby każde system połączyć z silnikiem tylko raz, zamiast z każdym innym systemem. Znane produkty to Mirth Connect (NextGen Connect, historycznie open source), Rhapsody, InterSystems HealthShare / IRIS for Health, Infor Cloverleaf, Qvera QIE, Orion i wiele innych; dostawcy chmurowi oferują zarządzane odpowiedniki.
Podstawowe elementy
Podstawowe elementy silnika integracyjnego to kanały (jedna ścieżka przepływu od źródła do jego miejsc docelowych), konektory źródłowe lub nasłuchujące, takie jak MLLP i HTTP, filtry decydujące o tym, czy wiadomość jest dalej przetwarzana, transformatory mapujące pola i kody, konektory docelowe, kolejki z opcją ponawiania, monitorowanie z alertami oraz ścieżka audytu zmian w kanałach i historii wiadomości.
Każdy silnik, niezależnie od używanego słownictwa, składa się z tych samych części:
- Kanał (interfejs): jeden przepływ od źródła do jednego lub więcej miejsc docelowych, z własnymi ustawieniami i statystykami.
- Konektor źródłowy / nasłuchujący: MLLP (TCP z ramkowaniem dla HL7 v2), punkty końcowe HTTP(S), SFTP i odpytywanie plików, zapytania do bazy danych, kolejki JMS lub inne, DICOM w niektórych produktach.
- Filtr: reguła decydująca, czy komunikat ma być dalej przetwarzany (np. tylko ADT^A01 dla tej klasy pacjenta).
- Transformator: skrypty lub mapowania, które modyfikują komunikat: zmiana nazw pól, mapowanie lokalnych kodów na LOINC za pomocą tabeli wyszukiwania, tworzenie obserwacji FHIR z segmentu OBX, dodawanie segmentu Z, którego oczekuje starszy system.
- Konektor docelowy: miejsce, do którego trafia wynik, z własnym protokołem i obsługą błędów.
- Kolejka i ponawianie prób: komunikaty są przechowywane do momentu potwierdzenia; błędy są ponawiane z opóźnieniem; "zatrute" komunikaty trafiają do kolejki błędów dla ludzi.
- Monitorowanie i alerty: liczniki dla każdego kanału, opóźnienia, wskaźniki błędów, alerty, gdy kanał przestaje działać (najbardziej przydatny alert w integracji medycznej).
- Audyt: kto zmienił który kanał i historia komunikatów do rozwiązywania problemów, z kontrolą retencji i dostępu, ponieważ są to dane pacjenta.
Typowe zadania
Typowe zadania silnika integracyjnego w ochronie zdrowia to dystrybucja komunikatów ADT z systemu HIS do poszczególnych działów, kierowanie wyników badań laboratoryjnych do wielu odbiorców, tłumaczenie lokalnych kodów na LOINC, ATC i UCUM, obsługa formatów HL7 v2, FHIR, CDA i CSV, udostępnianie fasady FHIR dla starszych baz danych, normalizacja danych z urządzeń oraz dostosowanie protokołu MLLP wewnątrz do HTTPS na zewnątrz.
- Rozsyłanie ADT: odbieranie informacji o przyjęciach z systemu szpitalnego (HIS), filtrowanie i tłumaczenie dla poszczególnych działów, dostarczanie do laboratorium, radiologii, apteki, zarządzania łóżkami i portalu pacjenta.
- Kierowanie wyników: ORU z systemu laboratoryjnego (LIS) do systemu EHR, do systemu lekarza zamawiającego, do regionalnego rejestru, do rekordu FHIR pacjenta, każdy z innym podzbiorem i formatem.
- Tłumaczenie kodów: lokalne kody badań na LOINC, lokalne kody leków na ATC, jednostki tekstowe na UCUM, za pomocą utrzymywanych tabel wyszukiwania (mapowanie kodów laboratoryjnych na LOINC).
- Przechodzenie między formatami: HL7 v2 na FHIR i z powrotem, CDA na FHIR, CSV ze starego systemu na dowolny inny.
- Fasada FHIR: silnik udostępnia punkty końcowe FHIR i odpowiada na nie, odpytując starszą bazę danych lub wysyłając zapytania v2, dzięki czemu aplikacje widzą serwer FHIR tam, gdzie go nie ma.
- Integracja urządzeń: własne protokoły monitorów normalizowane do obserwacji IHE PCD.
- Adaptacja protokołów: MLLP wewnątrz budynku, HTTPS z OAuth na zewnątrz.
Wybór silnika
Wybór silnika integracyjnego zależy od sześciu kryteriów: wolumenu wiadomości i tego, jak krytyczne są opóźnienia i awarie, obsługiwanych natywnie protokołów i standardów (HL7 v2, FHIR R4, DICOM, formaty krajowe), doświadczenia programistów, aspektów operacyjnych, takich jak klastrowanie i przełączanie awaryjne, warunków licencyjnych, które w przypadku niektórych produktów zmieniły się w 2025 roku, oraz dostępnych umiejętności do utrzymania kanałów.
- Wolumen i krytyczność: liczba komunikatów dziennie, dopuszczalne opóźnienia i czy dwuminutowa awaria ma znaczenie (ma dla ADT i wyników).
- Protokoły i standardy "out of the box": wersje i parsery HL7 v2, obsługa FHIR R4 z walidacją, DICOM, X12 w USA, formaty krajowe.
- Doświadczenie deweloperskie: język skryptowy (JavaScript w Mirth, własny w innych), kontrola wersji definicji kanałów, narzędzia testowe, wdrażanie w wielu środowiskach.
- Operacje: klastrowanie, przełączanie awaryjne, integracje monitorowania, ścieżka aktualizacji, model wsparcia.
- Licencjonowanie: wersje open source lub społecznościowe, subskrypcja za kanał lub za rdzeń, zarządzane oferty chmurowe; licencjonowanie niektórych historycznie otwartych produktów zmieniło się w 2025 r., więc sprawdź aktualne warunki.
- Dostępne umiejętności: silnik jest tylko tak dobry, jak ludzie, którzy utrzymują kanały.
Bezpieczne uruchamianie
Bezpieczne uruchamianie silnika integracyjnego oznacza traktowanie definicji kanałów jako kodu pod kontrolą wersji, testowanie z syntetycznymi wiadomościami przed wdrożeniem produkcyjnym, zarządzanie tabelami kodów za pomocą przypisanych właścicieli, alertowanie, gdy kanał przestaje działać, ograniczanie i usuwanie historii wiadomości, ponieważ są to dane pacjenta, dokumentowanie celu każdego kanału i nigdy niepozwalanie, aby silnik stał się systemem rejestrującym.
Traktuj definicje kanałów jak kod: w kontroli wersji, recenzowane, wdrażane przez testy i staging z użyciem komunikatów syntetycznych. Utrzymuj tabele wyszukiwania (mapowania kodów) pod zarządem właścicieli. Ustaw alerty na ciszę, nie tylko na błędy. Ogranicz dostęp do historii komunikatów, która jest danymi pacjenta, i usuwaj ją zgodnie z harmonogramem. Dokumentuj cel i właściciela każdego kanału; niedokumentowany kanał to ten, który przestaje działać w dziale, gdy odchodzi jego autor. I nigdy nie pozwól, aby silnik stał się systemem rejestrującym: przesuwa i transformuje dane, nie jest ich właścicielem.
Kiedy nie potrzebujesz silnika
Silnik integracyjny nie jest potrzebny, gdy wszyscy partnerzy nowego systemu komunikują się w standardzie FHIR, w takim przypadku serwer FHIR z funkcją Subscriptions i bramka API zapewniają routing i uwierzytelnianie, lub gdy pojedynczy interfejs HL7 v2 można obsłużyć za pomocą biblioteki, takiej jak HAPI HL7v2 lub hl7apy. Silnik uzasadnia swoją obecność przy wielu systemach i formatach.
System "greenfield", którego partnerzy wszyscy mówią w FHIR, może używać serwera FHIR z Subskrypcjami i bramki API do uwierzytelniania, ograniczania liczby żądań i routingu, z transformacjami w zwykłych usługach. Pojedynczy interfejs HL7 v2 można obsłużyć za pomocą małej biblioteki (HAPI HL7v2 w Javie, hl7apy lub python-hl7 w Pythonie) wewnątrz aplikacji. Silnik zarabia na siebie, gdy istnieje wiele systemów, wiele formatów i potrzeba konsoli operacyjnej, którą mogą obserwować osoby niebędące deweloperami.
W Anpheros
Platforma Anpheros znajduje się po stronie silnika FHIR: szpitale kierują przepływy, które chcą udostępniać (wyniki, dokumenty, wizyty), za pośrednictwem swojego silnika lub konektora laboratorium, i odczytują dane z powrotem za pomocą API FHIR i webhooków. Witryna dla deweloperów pokazuje mapowanie HL7 v2 na FHIR, które stosuje konektor.
Powiązane strony
- Integracja systemów szpitalnych wyjaśniona
- Jak zintegrować system laboratoryjny z EHR
- Komunikaty HL7 v2 wyjaśnione: ADT i ORU
- Jak mapować lokalne kody laboratoryjne na LOINC
- Subskrypcje FHIR wyjaśnione
- Mapowanie HL7 v2 na FHIR (witryna dla deweloperów)
Źródła
- NextGen Connect (Mirth Connect)
- Rhapsody Integration Engine
- InterSystems IRIS for Health
- Infor Cloverleaf
- Biblioteka HAPI HL7v2
- Przewodnik implementacji HL7 v2-to-FHIR
Najczęstsze pytania
Czy silnik integracyjny to to samo co ESB lub iPaaS?
Ta sama rodzina, ale wyspecjalizowana: silnik integracyjny zawiera obsługę HL7 v2, DICOM, CDA i FHIR, MLLP, monitorowanie specyficzne dla branży medycznej i słownictwo używane przez zespoły integracyjne. Ogólne produkty ESB i iPaaS mogą wykonać zadanie przy większym nakładzie pracy.
Czy silnik może automatycznie konwertować HL7 v2 na FHIR?
Kilka silników zawiera mapowania oparte na przewodniku HL7 v2-to-FHIR i obsługuje typowe segmenty. Lokalne konwencje, segmenty Z i mapowanie kodów zawsze wymagają pracy projektowej.
Czy silnik przechowuje dane pacjenta?
Przechowuje komunikaty w tranzycie i historię komunikatów do celów rozwiązywania problemów, co są danymi pacjenta i muszą być chronione oraz usuwane. Nie powinien być używany jako długoterminowy magazyn ani system rejestrujący.
Open source czy komercyjny?
Oba są używane w dużych szpitalach. Decyzja zazwyczaj zależy od wsparcia, umiejętności, potrzeb klastrowania i aktualnych warunków licencyjnych, które zmieniły się dla niektórych produktów; sprawdź przed podjęciem decyzji.
Wypróbuj za darmo w sandboksie
Pierwsze wywołanie FHIR w 5 minut. API HL7 FHIR R4 z wbudowaną zgodą pacjenta: wypróbuj w piaskownicy, a następnie połącz własną aplikację lub system kliniczny.
Za darmo · 30 syntetycznych pacjentów · bez karty

