
Automatizētajā medicīnas centrā tiek izmantotas daudzas dažādas ierīces, kuru darbība jākontrolē ar medicīniskās informācijas sistēmu (MIS), kā arī ierīces, kas nepieņem komandas, bet jāpārraida sava darba rezultāti uz MIS. Tomēr visām ierīcēm ir dažādas savienojuma iespējas (USB, RS-232, Ethernet utt.) un veidi, kā ar tām mijiedarboties. Tos visus atbalstīt MIS ir gandrīz neiespējami, tāpēc tika izstrādāts DeviceManager (DM) programmatūras slānis, kas nodrošina vienotu interfeisu MIS uzdevumu piešķiršanai ierīcēm un rezultātu iegūšanai.

Lai palielinātu sistēmas kļūdu toleranci, DM tika sadalīts programmu komplektā, kas atrodas medicīnas centra datoros. DM ir sadalīts galvenajā programmā un spraudņu komplektā, kas mijiedarbojas ar konkrētu ierīci un nosūta datus uz MIS. Tālāk esošajā attēlā parādīta vispārēja mijiedarbības struktūra ar DeviceManager, MIS un ierīcēm.

MIS un DeviceManager mijiedarbības struktūra parāda 3 spraudņu iespējas:
- Spraudnis nesaņem nekādus datus no MIS un no ierīces nosūta datus, kas pārveidoti sev saprotamā formātā (atbilst 3. ierīces tipam attēlā iepriekš).
- Spraudnis saņem īsu (izpildes laika ziņā) uzdevumu no MIS, piemēram, drukā uz printera vai skenē attēlu, izpilda to un nosūta rezultātu, atbildot uz pieprasījumu (atbilst 1. ierīces tipam attēlā augstāk ).
- Spraudnis saņem no MIS ilgtermiņa uzdevumu, piemēram, veikt aptauju vai izmērīt rādītājus, un atbildot uz to nosūta uzdevuma pieņemšanas statusu (ja pieprasījumā ir kļūda, uzdevums var tikt atteikts). Pēc uzdevuma izpildes rezultāti tiek pārveidoti MIS saprotamā formātā un augšupielādēti to veidam atbilstošās saskarnēs (atbilst 2. ierīces tipam attēlā augstāk).
Galvenā DM programma tiek startēta, inicializēta, restartēta negaidītas apstāšanās (avārijas) gadījumā un izslēdz visus spraudņus. Spraudņu sastāvs katrā datorā ir atšķirīgs, tiek palaisti tikai nepieciešamie, kas norādīti iestatījumos.
Katrs spraudnis ir neatkarīga programma, kas mijiedarbojas ar galveno programmu. Šī spraudņa definīcija nodrošina stabilāku darbību visu spraudņa gadījumu un galvas neatkarības dēļ kļūdu apstrādes ziņā (ja rodas kritiska kļūda, kas izraisa spraudņa avāriju, tas neietekmēs citus spraudņus un galviņu). . Viens spraudnis ļauj strādāt ar viena veida ierīcēm (bieži viena un tā paša modeļa), savukārt daži spraudņi var mijiedarboties tikai ar vienu ierīci, savukārt citi var mijiedarboties ar vairākām ierīcēm. Lai vienam DM pievienotu vairākas viena veida ierīces, palaidiet vairākus viena spraudņa gadījumus.

DM izstrādei tika izmantots Qt rīkkopa, jo tā vairumā gadījumu ļauj abstrahēties no konkrētas operētājsistēmas. Tas ļāva atbalstīt datorus, kuru pamatā ir Windows, Linux un MacOS, kā arī Raspberry Pi vienas plates ierīces. Vienīgais operētājsistēmas izvēles ierobežojums, izstrādājot spraudņus, ir draiveru un/vai specializētas programmatūras pieejamība konkrētai ierīcei.
Mijiedarbība starp spraudņiem un galviņu notiek, izmantojot pastāvīgi aktīvu QLocalSocket ar konkrēta spraudņa instances nosaukumu saskaņā ar mūsu izveidoto protokolu. Sakaru protokola ieviešana abās pusēs tika veidota kā dinamiska bibliotēka, kas ļāva izstrādāt dažus citu uzņēmumu spraudņus, pilnībā neatklājot mijiedarbību ar galvu. Vietējās kontaktligzdas iekšējā loģika ļauj galvai nekavējoties uzzināt par kritienu, izmantojot savienojuma pārtraukuma signālu. Kad šāds signāls tiek iedarbināts, problemātiskais spraudnis tiek restartēts, kas ļauj nesāpīgāk tikt galā ar kritiskām situācijām.
Tika nolemts veidot mijiedarbību starp MIS un DM, pamatojoties uz HTTP protokolu, jo MIS darbojas, pamatojoties uz Tīmekļa serveri, kas atvieglo pieprasījumu sūtīšanu un saņemšanu, izmantojot šo protokolu. Tas arī ļauj identificēt problēmas, kas varētu būt radušās, iestatot vai izpildot uzdevumus ierīcēs, pamatojoties uz atbildes kodiem.
Turpmākajos rakstos, izmantojot vairāku diagnostikas centru telpu piemēru, tiks apskatīta DM un dažu spraudņu darbība.
Avots: www.habr.com
