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

27.07.23

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

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

Скачать исходный код

Наименование Файл Версия Размер
Загрузка данных из медицинского оборудования на примере гематологического анализатора MicroCC-20Plus:
.epf 10,03Kb
2
.epf 10,03Kb 2 Скачать

Заказчиком была поставлена задача загрузки данных из гематологического анализатора 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 Медицина гематологический анализатор БИТ Управление медицинским центром КОРП

См. также

Распознавание номеров автомашин с ip - камер, видео, фото

Распознавание документов и образов Периферийные устройства Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20400 руб.

31.05.2023    4024    3    2    

5

Тернистый путь к физической клавиатуре для программиста 1С

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

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

1 стартмани

15.04.2024    6090    madonov    54    

33

[История разработки] Управляем промышленным принтером EBS-1500 из 1С

Периферийные устройства Платформа 1С v8.3 Бесплатно (free)

«У нас было два контроллера Huidu, семьдесят две китайские монохромные панели на светоизлучающих диодах, они же LED, четыре мегабайта flash памяти, 1С и целое море поддерживаемых форматов вывода информации - текстов, картинок, анимаций, а так же литр промывочной жидкости, литр разбавителя, ящик черных чернил, и 12 патч-кордов и различных удлинителей. Не то, чтобы всё это было категорически необходимо в маркировке, но если уж начал собирать маркиратор на 1С, то к делу надо подходить серьёзно.» - Страх и ненависть в Маркировке, 2019 г.

01.04.2024    1622    Interrupted    14    

34

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

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

Внешняя обработка получения изображения с веб-камеры с возможностью его кадрирования по произвольно выделенной области. Использует собственную внешнюю компоненту на основе библиотеки AForge. Содержит примеры интерактивного взаимодействия с полем HTML.

20.03.2024    459    2    AndSem    2    

4

Прямая печать на принтерах TSC из 1С

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

Прямая печать на принтерах TSC из 1С при вызове с сервера позволяет печатать из тонкого клиента, мобильного клиента и веб-клиента. Потребуется установка драйвера и библиотеки для отправки команд на этот драйвер.

1 стартмани

19.02.2024    735    6    realslavyan    2    

5

HotKeys на Python для 1С

Периферийные устройства Конфигурации 1cv8 Бесплатно (free)

Недавно прочитал статью на Инфостарте о KeyPad и вначале захотел себе такой, но через какое-то время я понял, что дополнительная даже маленькая клавиатура занимает место, и нужно все время держать ее под рукой. Это все создает дополнительные неудобства.

20.12.2023    5636    John_d    27    

76

Очистка очереди печати конкретного принтера

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

Очистка очереди печати выбранного принтера, перезапуск службы печати, вывод списка системных принтеров, открытие свойств принтера из 1С.

1 стартмани

07.11.2023    1341    2    vsnazarov    1    

26

Печать этикеток на DYMO LabelManager 280 через DYMO Connect Web Service

Периферийные устройства WEB-интеграция Этикетки, ценники Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

На сайте производителя принтера DYMO LabelManager 280 вместе с драйвером поставляется пакет DYMO Connect, который предлагает функционал вёрстки этикеток в фирменном формате и отправки их напрямую на принтер. Так же в этом пакете есть веб-сервис для взаимодействия с принтером через HTTP-запросы, о котором и пойдет речь в этой статье.

29.08.2023    1583    GeraltSnow    0    

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