
I det automatiserade medicinska centret anvÀnds mÄnga olika enheter vars arbete mÄste styras av det medicinska informationssystemet (MIS), samt enheter som inte tar emot kommandon men mÄste överföra resultaten av sitt arbete till MIS. Emellertid har alla enheter olika anslutningsalternativ (USB, RS-232, Ethernet etc.) och sÀtt att interagera med dem. Att stödja dem alla i MIS Àr praktiskt taget omöjligt, dÀrför har en programvarulager, DeviceManager (DM), utvecklats som erbjuder ett enhetligt grÀnssnitt för MIS för att stÀlla upp uppgifter för enheterna och fÄ resultat.

För att öka systemets driftsÀkerhet har DM delats upp i en uppsÀttning program som placeras pÄ datorer i det medicinska centret. DM delas upp i ett huvudprogram och en uppsÀttning plugins som utför interaktionen med den specifika enheten och skickar data till MIS. Nedan visas en sammanfattande struktur för interaktionen med DeviceManager, MIS och enheterna.

I strukturen för interaktionen mellan MIS och DeviceManager visas 3 alternativ för pluginernas arbete:
- Pluginet tar emot inga data frÄn MIS och skickar de omformaterade data frÄn enheten i ett format som den förstÄr (motsvarar en enhet av typ 3 i bilden ovan).
- Pluginet fÄr en kort (tidsmÀssig) uppgift frÄn MIS, till exempel att skriva ut pÄ skrivaren eller skanna en bild, utför den och skickar resultatet som svar pÄ begÀran (motsvarar en enhet av typ 1 i bilden ovan).
- Pluginet fÄr en lÄngvarig uppgift frÄn MIS, till exempel att genomföra en undersökning eller mÀta indikatorer, och skickar status för uppdragets mottagande som svar (en begÀran kan avvisas vid fel i begÀran). Efter att uppgiften slutförts omvandlas resultaten till ett format som MIS förstÄr och laddas upp till motsvarande grÀnssnitt av sin typ (motsvarar en enhet av typ 2 i bilden ovan).
Huvudprogrammet DM startar, initierar, omstartar vid ovÀntad nedstÀngning (krasch) och avslutar alla plugins vid avslutning. SammanstÀllningen av plugins pÄ varje dator Àr unik; endast de nödvÀndiga plugins som anges i instÀllningarna startas.
Varje plugin Àr ett sjÀlvstÀndigt program som interagerar med huvudprogrammet. Denna definition av plugin möjliggör en mer stabil drift, tack vare oberoendet mellan alla plugin-instÀllningar och huvudprogrammet nÀr det gÀller felhantering (om ett kritiskt fel uppstÄr som orsakar att pluginet kraschar, pÄverkar det inte andra plugins eller huvudprogrammet). Ett plugin tillÄter att arbeta med enhetstyper (ofta med en och samma modell); vissa plugins kan interagera med endast en enhet, medan andra kan hantera flera. För att ansluta flera enheter av samma typ till en DM anvÀnds flera instanser av samma plugin.

För utvecklingen av DM anvÀndes Qt-verktyg, eftersom det i de flesta fall möjliggör en abstraktion frÄn det specifika operativsystemet. Detta gjorde att man kunde stödja drift med datorer baserade pÄ Windows, Linux och MacOS, samt enkortsdatorer som Raspberry. Den enda begrÀnsningen i valet av operativsystem vid utveckling av plugins Àr tillgÄngen pÄ drivrutiner och/eller speciell mjukvara för specifika enheter.
Interaktionen mellan plugins och huvudprogrammet sker via en stÀndigt aktiv QLocalSocket med namnet pÄ den specifika instansen av pluginet, enligt det protokoll vi har utvecklat. Implementeringen av kommunikationsprotokollet frÄn bÄda sidor har utformats som ett dynamiskt bibliotek, vilket tillÄter andra företag att utveckla vissa plugins utan att helt avslöja interaktionen med huvudprogrammet. Den interna logiken för den lokala socketen gör att huvudprogrammet snabbt kan upptÀcka krascher genom en signal om avbruten anslutning. NÀr en sÄdan signal aktiveras, omstartas den problematiska pluginen, vilket gör det möjligt att hantera kritiska situationer smidigare.
Interaktionen mellan MIS och DM beslutades att bygga pÄ HTTP-protokollet, eftersom MIS fungerar pÄ en bas av Webbserver, vilket gör det enklare att skicka och ta emot förfrÄgningar enligt detta protokoll. Det finns ocksÄ möjlighet att sÀrskilja problem som kan ha uppstÄtt vid utförandet eller fullföljandet av uppgifter av enheterna baserat pÄ svarskoder.
I följande artiklar kommer arbetet med DM och vissa plugins att granskas utifrÄn nÄgra exempel frÄn diagnostiska center.
KĂ€lla: habr.com
