Pusat medis otomatis menggunakan banyak perangkat yang berbeda, yang pekerjaannya harus dikontrol oleh sistem informasi medis (SIM), serta perangkat yang tidak menerima perintah, tetapi harus mengirimkan hasil pekerjaan mereka ke SIM. Namun, semua perangkat memiliki opsi koneksi yang berbeda (USB, RS-232, Ethernet, dll.) Dan cara untuk berinteraksi dengannya. Hampir tidak mungkin untuk mendukung semuanya dalam MIS, oleh karena itu, lapisan perangkat lunak DeviceManager (DM) dikembangkan, yang menyediakan MIS dengan antarmuka tunggal untuk mengatur tugas untuk perangkat dan mendapatkan hasil.
Untuk meningkatkan toleransi kesalahan sistem, DM dibagi menjadi satu set program yang di-host pada komputer di pusat medis. DM dibagi ke dalam program host dan satu set plug-in yang berinteraksi dengan perangkat tertentu dan mengirim data ke MIS. Gambar di bawah ini menunjukkan struktur interaksi umum dengan DeviceManager, MIS dan perangkat.
Struktur interaksi MIS dengan DeviceManager menunjukkan 3 opsi untuk bekerja dengan plugin:
- Plugin tidak menerima data apa pun dari MIS dan mengirimkan data yang dikonversi ke dalam format yang dapat dimengerti dari perangkat (sesuai dengan perangkat tipe 3 pada gambar di atas).
- Plugin menerima tugas pendek (dalam hal waktu eksekusi) dari MIS, misalnya, mencetak pada printer atau memindai gambar, menjalankannya dan mengirimkan hasilnya sebagai respons terhadap permintaan (sesuai dengan perangkat tipe 1 pada gambar di atas).
- Plugin menerima tugas yang panjang dari IIA, misalnya, untuk melakukan survei atau mengukur indikator, sebagai tanggapan mengirimkan status penerimaan tugas (pernyataan masalah dapat ditolak jika permintaan salah). Setelah tugas selesai, hasilnya dikonversi ke format ramah-SIM dan diunggah ke jenis antarmuka yang sesuai (sesuai dengan perangkat tipe 2 pada gambar di atas).
Program kepala DM memulai, menginisialisasi, memulai kembali jika terjadi penghentian (crash) yang tidak terduga, dan mengakhiri semua plugin setelah pekerjaan selesai. Komposisi plug-in pada setiap komputer berbeda, hanya yang diperlukan yang ditentukan dalam pengaturan diluncurkan.
Setiap plug-in adalah program independen yang berinteraksi dengan program host. Definisi plug-in yang demikian memungkinkan operasi yang lebih stabil, karena independensi semua instans plug-in dan head dalam hal penanganan kesalahan (jika kesalahan kritis terjadi karena plug-in crash, ini tidak akan mempengaruhi plug-in lainnya). Satu plug-in memungkinkan Anda untuk bekerja dengan perangkat dengan tipe yang sama (seringkali dengan model yang sama), sementara beberapa plug-in dapat berinteraksi dengan hanya satu perangkat, dan lainnya dengan beberapa. Untuk menghubungkan beberapa perangkat dari jenis yang sama ke satu DM, peluncuran beberapa contoh dari plugin yang sama digunakan.

Toolkit Qt digunakan untuk mengembangkan DM, karena memungkinkan dalam kebanyakan kasus untuk abstrak dari sistem operasi tertentu. Ini memungkinkan untuk mendukung pekerjaan dengan komputer berbasis Windows, Linux dan MacOS, serta komputer papan tunggal Raspberry. Satu-satunya batasan dalam memilih sistem operasi ketika mengembangkan plugin adalah keberadaan driver dan / atau perangkat lunak khusus untuk perangkat tertentu.
Interaksi antara plugins dan head terjadi melalui QLocalSocket yang aktif secara konstan dengan nama instance plugin yang spesifik, sesuai dengan protokol yang kami buat. Implementasi protokol komunikasi di kedua sisi dibingkai dalam bentuk perpustakaan yang dinamis, yang memungkinkan pengembangan beberapa plugin oleh perusahaan lain, tanpa sepenuhnya mengungkapkan interaksi dengan kepala. Logika internal soket lokal memungkinkan kepala untuk segera mengetahui tentang jatuh menggunakan sinyal istirahat koneksi. Ketika sinyal seperti itu dipicu, plug-in masalah dihidupkan ulang, yang memungkinkan untuk menangani situasi kritis dengan lebih mudah.
Diputuskan untuk membangun interaksi antara SIM dan DM berdasarkan protokol HTTP, karena SIM bekerja berdasarkan server Web, di mana lebih mudah untuk mengirim dan menerima permintaan menggunakan protokol ini. Dimungkinkan juga untuk membedakan antara masalah yang dapat muncul saat mengatur atau melakukan tugas dengan perangkat berdasarkan kode respons.
Dalam artikel berikut, sebagai contoh beberapa ruang pusat diagnostik, operasi DM dan beberapa plug-in akan dipertimbangkan.