Чтение медполиса на киоске

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

Чтение медполиса на киоске

Сообщение Андрей »

Взялся вот за реализацию инфокиоска, а сам не имел дела ни с сенсорными киосками, ни со считывателями. Не знаю, что выйдет из всей этой затеи...
Вот скажем такой вопрос - как считать полис с ШК ?
Сам то ШК полиса не понял - что это ? Вроде и не одномерный и не QR ?
Polis.jpg

Взял сканер с поддержкой 2D, начал тренироваться. Для контроля платежку энергосбыта параллельно сканирую. При работе как родное USB устройство, платежка нормально считывается, только кодировка не русская (как это поправить ?) При считывании полиса читается строка кракозябр. Ежели переключаюсь на эмуляцию COM устройства, дело становится хуже: из платежки считывается только начало, а при попытке считать полис вообще происходит хрень какая то - система нервно реагирует, открывая несколько левых окон, включая режим поиска и т.д.

Запросить информацию из страховой копании о структуре ? А что спросить то ?

И еще вопрос - это у меня сейчас ручное устройство, а в киоске как сканер включать в нужный момент ?
Есть еще устройство считывания смарт-карт, но что то он вообще не читает этого полиса... может и не должен ? С чипом он или нет ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Чтение медполиса на киоске

Сообщение Игорь Столяров »

Насколько я вижу по смутному изображению Вашего кода - он в формате PDF-417.
А значит полученная со сканера строка будет в кодировке UTF8, и после считывания её нужно конвертировать в ANSI.
За теми кто отстал - не возвращаться. (С) Кодекс
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

Чтение медполиса на киоске

Сообщение Андрей »

Игорь Столяров писал(а): 08 Август 2019, 4:46Насколько я вижу по смутному изображению Вашего кода - он в формате PDF-417.
А значит полученная со сканера строка будет в кодировке UTF8, и после считывания её нужно конвертировать в ANSI.
Перекодирование, это типа как у Kreator нашел кусок кода

Код: Выделить всё

LOC:TempString = 'Кларион велик' 
len# = len(clip(LOC:TempString))
LOC:String1 &= new(cstring(len# * 2))
LOC:String2 &= new(cstring(len# * 2))
i# = MultiByteToWideChar(CP_ACP, 0, address(LOC:TempString), len#, address(LOC:String2), len#*2)
if i#
  i# = WideCharToMultiByte(CP_UTF8, 0, address(LOC:String2), i#, address(LOC:String1), len#*2, 0, 0)
  LOC:QRCode = GetQRCode(LOC:String1)
end  
?
Смущает, что в этой получееной строке кракозябр не вижу главного - так называемого ЕНП (единого номера полиса) - 16 разр. числа, он то должен без перекодировки виден ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Чтение медполиса на киоске

Сообщение Игорь Столяров »

Андрей писал(а): 08 Август 2019, 10:29Перекодирование, это типа как у Kreator нашел кусок кода
1. Наоборот. Указанный пример перекодирует ANSI строку в UTF8 для генерации из неё QRCode. :)

2. Абсолютно верно, числа и латинские символы должны быть видны в UTF8 и без перекодировки.
Здесь нужно смотреть документацию, что именно и в каком виде закодировано в замыленном Вами коде.
Иногда бывает, например, ещё и кодировка в BASE64 - тогда будет потоковая строка латино-цифровых символов,
или информация в строке может быть упакована в ZIP формат или зашифрована ключом с ЭЦП и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Чтение медполиса на киоске

Сообщение kreator »

Я как раз с инфокиосками и считывателями работал. Надо начать с простого. Где-то тут была либа для создания кода в PDF-417. Самому посоздавать и посчитывать. Числа в UTF8 не надо перекодировать. Впрочем как и латиницу. Есть ещё вариант, что сама информация в коде зашифрована. Но это маловероятно.
Вообще, со считывателем (в т.ч. с бесконтактным) я начинал работать так. Подключал его как клавиатуру (обычно в драйвере есть такая опция, некоторые устройства на автомате как клавиатуры встают). В Винворде пытался считывать инфу и смотрел, на что похоже.
Работа "через клавиатуру" проще. Но есть нюансы. Через com вроде тоже проблем нет, непонятно поведение Вашей проги. Надо смотреть Com-класс, или что там у Вас.
Как включать сканер? Не скажу. Имел дело с постоянно работающими. В определённый момент начинаем слушать порт и всё. С "клавиатурным" отдельный разговор. На некоторых устройствах есть такое, в определённый момент начинает мигать считыватель денег, или карточек. Но считыватель штрих-кода работает всегда. Могу ошибаться. В принципе, в com-порт можно писать. И наверняка есть команды, которые приводят эти устройства в рабочее состояние.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Чтение медполиса на киоске

Сообщение gopstop2007 »

kreator писал(а): 08 Август 2019, 11:26 Подключал его как клавиатуру
может поможет https://habr.com/ru/company/scanport/blog/351374/
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Чтение медполиса на киоске

Сообщение kreator »

gopstop2007 писал(а): 08 Август 2019, 15:19
kreator писал(а): 08 Август 2019, 11:26 Подключал его как клавиатуру
может поможет https://habr.com/ru/company/scanport/blog/351374/
Наверняка с оборудованием ТС определился. Мой опыт - Киоск со стационарным сканером штрих-кодов (USB с эмуляцией com-порта) и с нестационарным бесконтактным считывателем магнитных карт (USB с эмуляцией клавиатуры). Так решил заказчик. Почему? ХЗ. Бесконтактный считыватель автоматически встаёт как клавиатура. Боюсь даже изменить в драйвере это нельзя. Решение заказчика. Зато теперь есть опыт работы и с com-портом и с клавой.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Чтение медполиса на киоске

Сообщение Дед Пахом »

kreator писал(а): 08 Август 2019, 18:02Зато теперь есть опыт работы и с com-портом и с клавой.
И для резюме сгодится: "имею опыт работы с клавиатурой".
С уважением, ДП
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

Чтение медполиса на киоске

Сообщение Андрей »

А это, что то не понял...
В хелпе есть функция TOANSI... Она чтоль не работает еще ?
Зачем в хелпе тогда людей путать... хм...
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Чтение медполиса на киоске

Сообщение Игорь Столяров »

Андрей писал(а): 09 Август 2019, 1:43В хелпе есть функция TOANSI... Она чтоль не работает еще ?
Работает. Но редко используется УЖЕ.
Потому, что полное название функции CONVERTOEMTOANSI и предназначена она для смены кодировки DOS на Windows(-1251).
Лет, этак 15-20 назад постоянно ею гоняли данные из старых файлов обмена … :)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Чтение медполиса на киоске

Сообщение kreator »

Нет, Игорь, это не то. Это похоже новые функции. TOANSI и TOUNICODE. Именно для конвертации в Юникод и обратно. Андрей, попробуйте, результат расскажите. Может, действительно, больше не надо заниматься проктостоматологией.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Чтение медполиса на киоске

Сообщение Дед Пахом »

kreator писал(а): 09 Август 2019, 10:54Это похоже новые функции. TOANSI и TOUNICODE.
Пока они есть только в хелпе.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Чтение медполиса на киоске

Сообщение kreator »

В десятке их нет.
Дед Пахом писал(а): 09 Август 2019, 11:02 Пока они есть только в хелпе.
Следовало ожидать!
We are hard at work… for you. :)
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

Чтение медполиса на киоске

Сообщение Андрей »

Отступился пока от сканера, странный какой то ШК - сканер начинает получает какие то управляющие символы что ли - начинают окна новые открываться и прочая самостоятельная жизни при попытке чтения....
Подключился к считывателю, раздобыл пластиковый полис с чипом (то что было у меня оказывается "сервисная карта" - просто аналог бумажки). Прверяю этот полис на таком же считывателе в МИС (мед. инф. система) в регистратуре Advanced Card Systems ACR 38U, думаю весьма популярном. Там все работает, начинает мигать зел. светодиодом, идентификация пациента происходит. У меня что-то не читает - должен ли так же считавать напрямую в текстовом редакторе, ка и сканер ШК ? Драйвер что ли криво встает - в руководстве есть по настройке
ACR38.jpg
однако у меня нет никакой закладки "Reader". Как перевести его в режим эмуляции клавиатуры ? Отключил режим цифровой подписи, однако все равно "Не удается проверить цифровую подпись" в драйвере - или это не критично ?
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Чтение медполиса на киоске

Сообщение kreator »

Если не встаёт как клавиатура, читайте через порт. Можно же узнать что считывается? Не важно, сканер ли, считыватель ли.
Мне непонятно, окна в Вашей программе открываются? Или Винда так работает?
We are hard at work… for you. :)
Ответить