Egy automatizált orvosi központ sokféle eszközt használ, amelyek működését orvosi információs rendszerrel (MIS) kell vezérelni, valamint olyan eszközöket, amelyek nem fogadnak el parancsokat, de munkájuk eredményét továbbítaniuk kell a MIS-nek. Azonban minden eszköznek más-más csatlakozási lehetősége (USB, RS-232, Ethernet stb.) és a velük való interakció módjai vannak. Szinte lehetetlen mindegyiket támogatni az MIS-ben, ezért kidolgozásra került a DeviceManager (DM) szoftverréteg, amely egyetlen interfészt biztosít az MIS-nek az eszközökhöz való feladatok hozzárendeléséhez és az eredmények megszerzéséhez.
A rendszer hibatűrésének növelése érdekében a DM-et az orvosi központ számítógépein található programokra osztották. A DM fő programra és beépülő modulokra oszlik, amelyek kölcsönhatásba lépnek egy adott eszközzel, és adatokat küldenek az MIS-nek. Az alábbi ábra a DeviceManager, az MIS és az eszközök közötti interakció általános szerkezetét mutatja.
Az MIS és a DeviceManager közötti interakció szerkezete 3 lehetőséget mutat be a beépülő modulokhoz:
- A beépülő modul nem kap adatokat az MIS-től, és a számára érthető formátumba konvertált adatokat küld az eszközről (a fenti ábra 3-as eszköztípusának felel meg).
- A beépülő modul egy rövid (végrehajtási időt tekintve) feladatot kap az MIS-től, például nyomtatóra nyomtat, vagy képet szkennel, végrehajtja és a kérésre válaszul elküldi az eredményt (a fenti ábra 1-es eszköztípusának felel meg ).
- A bővítmény egy hosszú távú feladatot kap az MIS-től, például felmérés elvégzésére vagy mutatók mérésére, és válaszul küldi a feladat elfogadási állapotát (a kérésben hiba esetén a feladat elutasítható). A feladat elvégzése után az eredményeket az MIS számára érthető formátumba konvertálják és a típusuknak megfelelő interfészekre töltik fel (a fenti ábra 2-es eszköztípusának felel meg).
A fő DM program elindul, inicializálódik, váratlan leállás (összeomlás) esetén újraindul, és leállításakor leállítja az összes plugint. A bővítmények összetétele minden számítógépen eltérő, csak a szükségesek indulnak el, amelyek a beállításokban vannak megadva.
Minden plugin egy független program, amely kölcsönhatásba lép a fő programmal. A beépülő modulnak ez a definíciója stabilabb működést tesz lehetővé az összes beépülő modul és a fej hibakezelési függetlensége miatt (ha olyan kritikus hiba történik, amely a bővítmény összeomlását okozza, akkor ez nem lesz hatással a többi beépülő modulra és a fejre) . Egy beépülő modul lehetővé teszi, hogy egy típusú (gyakran ugyanazzal a modellel) rendelkező eszközökkel dolgozzon, míg egyes bővítmények csak egy eszközzel, míg mások több eszközzel is együttműködhetnek. Ha több azonos típusú eszközt szeretne csatlakoztatni egy DM-hez, indítsa el ugyanannak a beépülő modulnak több példányát.
A Qt eszközkészletet a DM fejlesztésére használták, mert a legtöbb esetben lehetővé teszi számunkra, hogy elvonatkoztassunk egy adott operációs rendszertől. Ez lehetővé tette a Windows, Linux és MacOS alapú számítógépekkel, valamint Raspberry egykártyás eszközökkel való munkavégzés támogatását. A bővítmények fejlesztése során az operációs rendszer kiválasztásának egyetlen korlátja az illesztőprogramok és/vagy speciális szoftverek elérhetősége egy adott eszközhöz.
A beépülő modulok és a fej közötti interakció egy folyamatosan aktív QLocalSocket-en keresztül történik, egy adott plugin példány nevével, az általunk létrehozott protokollnak megfelelően. A kommunikációs protokoll mindkét oldali megvalósítását dinamikus könyvtárként tervezték, amely lehetővé tette néhány plugin fejlesztését más cégek által anélkül, hogy teljesen felfedné a fejjel való interakciót. A helyi aljzat belső logikája lehetővé teszi, hogy a fej azonnal tájékozódjon az esésről egy kapcsolatszakadási jel segítségével. Amikor egy ilyen jel kivált, a problémás beépülő modul újraindul, ami lehetővé teszi a kritikus helyzetek fájdalommentes kezelését.
Úgy döntöttek, hogy az MIS és a DM közötti interakciót HTTP protokollra építik, mivel a MIS webszerveren működik, ami megkönnyíti a kérések küldését és fogadását ezzel a protokollal. A válaszkódok alapján meg lehet különböztetni azokat a problémákat is, amelyek az eszközökkel végzett feladatok beállításakor vagy végrehajtásakor merülhetnek fel.
A következő cikkekben több diagnosztikai központ helyiség példáján keresztül a DM és néhány beépülő modul működését vizsgáljuk meg.
Forrás: will.com