
I det automatiserede medicinske center anvendes der mange forskellige apparater, hvis drift skal styres af det medicinske informationssystem (MIS), samt enheder, der ikke modtager kommandoer, men skal videregive resultaterne af deres arbejde til MIS. Imidlertid har alle enheder forskellige tilslutningsmuligheder (USB, RS-232, Ethernet osv.) og måder at interagere med dem på. At understøtte dem alle i MIS er næsten umuligt, derfor blev der udviklet en softwarelag kaldet DeviceManager (DM), der giver MIS et ensartet interface til at give opgaver til enhederne og modtage resultater.

For at øge systemets pålidelighed er DM blevet opdelt i en samling programmer, der er placeret på computere i det medicinske center. DM opdeles i hovedprogrammet og et sæt plugins, der udfører interaktion med den specifikke enhed og sender data til MIS. Nedenfor er en generel struktur for interaktionen med DeviceManager, MIS og apparaterne.

Strukturen for interaktionen mellem MIS og DeviceManager viser 3 arbejdsmåder for plugins:
- Plugin modtager ingen data fra MIS og sender de omformulerede data fra apparatet i et format, som den forstår (svarer til apparat type 3 i figuren ovenfor).
- Plugin får en kort (tidsmæssigt) opgave fra MIS, for eksempel at udskrive på printeren eller scanne et billede, udfører den og sender resultatet i svaret på anmodningen (svarer til apparat type 1 i figuren ovenfor).
- Plugin modtager en langvarig opgave fra MIS, for eksempel at udføre en undersøgelse eller måle værdier; i svaret sender den status for opgaveaccept (opgaven kan blive afvist ved fejl i anmodningen). Efter udførelsen bliver resultaterne konverteret til et format, som MIS forstår, og overføres til de relevante grænseflader for deres type (svarer til apparat type 2 i figuren ovenfor).
Hovedprogrammet DM starter, initialiserer, genstarter ved uventet stop (nedbrud) og afslutter alle plugins, når arbejdet er færdigt. Sættet af plugins på hver computer er unikt; kun de nødvendige plugins, der er angivet i indstillingerne, køres.
Hver plugin fungerer som et selvstændigt program, der interagerer med hovedprogrammet. Denne definition af en plugin sikrer en mere stabil drift, takket være uafhængigheden af alle instanser af plugins og hovedprogrammet i forhold til fejlbehandling (hvis der opstår en kritisk fejl, der får en plugin til at fejle, vil det ikke påvirke de andre plugins og hovedprogrammet). En plugin tillader arbejde med enheder af samme type (ofte af samme model), mens nogle plugins kun kan interagere med én enhed, mens andre kan interagere med flere. For at forbinde flere enheder af samme type til én DM, kræves det at starte flere instanser af én plugin.

Til udviklingen af DM blev værktøjet Qt anvendt, fordi det i de fleste tilfælde muliggør en abstraktion fra den specifikke operativsystem. Dette gjorde det muligt at understøtte computere baseret på Windows, Linux og MacOS, samt enkeltkortcomputerne Raspberry. Den eneste begrænsning ved valget af operativsystem ved udviklingen af plugins er tilstedeværelsen af drivere og/eller speciel software til den specifikke enhed.
Interaktionen mellem plugins og hovedprogrammet foregår gennem en konstant aktiv QLocalSocket med navnet på den specifikke plugin-forekomst, baseret på den protokol, vi har udviklet. Implementeringen af kommunikationsprotokollen fra begge sider er blevet udformet som et dynamisk bibliotek, hvilket gjorde det muligt for andre virksomheder at udvikle nogle plugins uden at afsløre hele interaktionen med hovedprogrammet. Den interne logik for den lokale socket gør det muligt for hovedprogrammet straks at registrere et nedbrud gennem et signal om forbindelsesafbrydelse. Når et sådant signal aktiveres, genstartes den problematiske plugin, hvilket tillader en mere skånsom håndtering af kritiske situationer.
Interaktionen mellem MIS og DM blev besluttet at bygge på HTTP-protokollen, da MIS opererer på basis af Web-servere, hvor det er lettere at sende og modtage forespørgsler via denne protokol. Derudover er der mulighed for at skelne mellem problemer, der kunne opstå ved at sætte op eller udføre opgaver via enheder, baseret på svarkoder.
I de følgende artikler vil arbejdet med DM og nogle plugins blive gennemgået ved eksempler fra flere rum på det diagnostiske center.
Kilde: habr.com
