Загрузка данных из медицинского оборудования на примере гематологического анализатора MicroCC-20Plus

27.07.23

Интеграция - Периферийные устройства

В статье описан пример загрузки данных из гематологического анализатора MicroCC-20Plus с использованием драйвера '1С:Сканеры штрихкода (Native Api)'.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Загрузка данных из медицинского оборудования на примере гематологического анализатора MicroCC-20Plus:
.epf 10,03Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.

Заказчиком была поставлена задача загрузки данных из гематологического анализатора MicroCC-20Plus в БИТ.Управление медицинским центром КОРП 2.1.24.25, платформа 8.3.22.1709.

У прибора имеется внешний интерфейс RS-232 для выгрузки данных об исследованиях.

Разработку начал с поиска подходящей внешней компоненты для работы с последовательным портом и, к сожалению, не нашел подходящей.

Было решено использовать драйвер 1C: Сканер штрихкода (NativeApi), т.к. передача данных происходит в одну сторону.

Добавляем сканер в оборудовании:


 

Выполняем настройку для нужного порта:

 


Нажимаем тест подключения.

На приборе заходим в результаты, выбираем необходимый анализ и нажимаем Отправить:



Нажимаем Отправить:


 

В результате мы получаем данные с прибора:



Видим, что данные программа получает частями.

Теперь создадим обработку для парсинга полученных данных.

Создадим обработку, добавим реквизиты:

Ответ - тип Строка неограниченной длины - для получения данных от прибора;

Число - тип Число - для хранения номера исследования;

Дата - тип Дата, состав даты Дата и время - для хранения даты и времени измерения.

Остальные реквизиты соответствуют названиям измеряемых данных, "%" меняем в названии реквизита в "P", "#" не используем, "-" меняем на "_".



Код модуля формы:

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	Если ИмяСобытия = "ScanData" Тогда
		Если ВводДоступен() Тогда
			ТипШК = Неопределено;
			Объект.Ответ = Объект.Ответ + Параметр[0];
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Если Истина // ИспользоватьПодключаемоеОборудование Проверка на включенную ФО "Использовать ВО".
	   И МенеджерОборудованияКлиент.ОбновитьРабочееМестоКлиента() Тогда // Проверка на определенность рабочего места ВО.

		ОписаниеОшибки = "";
		
		ПоддерживаемыеТипыВО = Новый Массив();
		ПоддерживаемыеТипыВО.Добавить("СканерШтрихкода");
		
		ОповещенияПриПодключении = Новый ОписаниеОповещения("ПодключитьОборудованиеЗавершение", ЭтотОбъект);    
		МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПоТипу(ОповещенияПриПодключении, УникальныйИдентификатор, ПоддерживаемыеТипыВО);
	
	КонецЕсли;
КонецПроцедуры


&НаКлиенте
// Процедура ПодключитьОборудованиеЗавершение.
//
// Параметры:
//  РезультатВыполнения - Структура - описание результата.
//  Параметры - Произвольный - не используется
//
Процедура ПодключитьОборудованиеЗавершение(РезультатВыполнения, Параметры) Экспорт
	
	Если Не РезультатВыполнения.Результат Тогда
		ТекстСообщения = НСтр( "ru = 'При подключении оборудования произошла ошибка:
				|""%ОписаниеОшибки%"".'" );
		ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ОписаниеОшибки%" , РезультатВыполнения.ОписаниеОшибки);
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПарситьНаСервере()
	МассивПодстрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Объект.Ответ, ",", Ложь);
	
	Дата = МассивПодстрок[2];
    Год = Лев(Дата,4);
	Месяц = Сред(Дата, 6, 2);
	День = Прав(Дата, 2);
	Время = МассивПодстрок[3];
	ВремяРазложенное = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Время, ":", Ложь);
	Часы = ВремяРазложенное[0];
	Минуты = ВремяРазложенное[1]; 
	Секунды = ВремяРазложенное[2]; 
	
	Объект.Дата = Дата(Число(Год),Число(Месяц),Число(День), Число(Часы), Число(Минуты), Число(Секунды));
	Объект.Номер = Число(МассивПодстрок[1]);
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	Для Сч = 4 По МассивПодстрок.ВГраница() Цикл
		Параметр = СтрЗаменить(МассивПодстрок[Сч], "%", "P");
		Параметр = СтрЗаменить(Параметр, "#", "");
		Параметр = СтрЗаменить(Параметр, "-", "_");
		Если РеквизитФормыВЗначение("Объект").Метаданные().Реквизиты.Найти(Параметр) <> Неопределено Тогда
			Сч = Сч + 1;
			Объект[Параметр] = Число(МассивПодстрок[Сч]);	
		КонецЕсли
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Парсить(Команда)
	ПарситьНаСервере();
КонецПроцедуры

 

Запускаем обработку, нажимаем Отправить на приборе, после получения данных нажимаем Парсить.


 

Следующим этапом будет создание Шаблона приема и заполнение данных в конфигурации БИТ.Управление медицинским центром КОРП.

MicroCC-20Plus MicroCC Native Api RS-232 RS232 Медицина гематологический анализатор БИТ Управление медицинским центром КОРП

См. также

Периферийные устройства Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

Пример работы для разработчика с оборудованием принтер чеков в рамках новейшей библиотеки подключаемого оборудования.

10 стартмани

14.11.2024    511    1    aximo    0    

3

Периферийные устройства Системный администратор Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Простая в использовании обработка https://infostart.ru/1c/tools/1001819/ в целом решает поставленную задачу, но имеет явный недостаток - взаимодействует только с принтерами, подключенными к серверу. Доработанная версия позволяет работать как с принтерами на клиенте, так и на сервере

1 стартмани

30.08.2024    385    3    Sergey1CSpb    0    

4

Периферийные устройства Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Расширение для вывода информации для покупателя из РМК на второй монитор. Также реализован вывод картинок из каталога в левую часть экрана покупателя. Разработано для УТ 11.5, УНФ 3.0.6 и 3.0.9.

1 стартмани

12.08.2024    1059    21    Rastopchinss    15    

3

Периферийные устройства Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Вывод для клиента на второй монитор (информационное табло) номера заказа в браузер (по умолчанию, например, Яндекс). Внешняя обработка может быть легко переделана под другие конфигурации (нужды) даже начинающим программистом.

1 стартмани

02.08.2024    686    0    AlOkt    0    

5

Периферийные устройства Программист Пользователь Платформа 1С v8.3 1С:Розница 3.0 Абонемент ($m)

Пример работы с эмулятором дисплея покупателя через библиотеку БПО.

6 стартмани

10.07.2024    704    5    aximo    0    

3

Периферийные устройства Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Речь пойдет не о сканерах штрихкодов 2D/3D/RF/распознавании лиц и прочего, а о старом добром аппарате, позволяющем считать страницу и отправить ее образ в ПК через COM/USB порт. Рассмотрим, как можно подключить и использовать сканер в типовых 1С-конфигурациях. И что делать, если никак не найти команду настройки сканера.

1 стартмани

28.05.2024    1026    Sergey1CSpb    2    

6

Периферийные устройства Пользователь Платформа 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

Расширение для 1С: Розница 2.3 версий 2.3.15.ХХХ и выше. Удобный способ изменения принтера по умолчанию во встроенной обработке печати ценников и этикеток. Только для операционной системы Windows.

1 стартмани

13.05.2024    1006    5    independ    0    

5

Периферийные устройства Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время я активно пользовался различными хоткеерами, шаблонами текста, специальными раскладками клавиатуры. Я из тех, кто очень долго верил в Снегопат... Так сложилось, что на моем текущем месте работы довольно строгая политика информационной безопасности, а потому со всем привычным софтом, который делал жизнь проще, мне пришлось расстаться. И даже шаблоны кода при каждом терминальном подключении требуется настраивать в конфигураторе заново. Как известно, если какую-то задачу нельзя решить на стороне софта, то стоит поискать железное решение.

1 стартмани

15.04.2024    8310    madonov    60    

38
Оставьте свое сообщение