Чтение медполиса на киоске
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Чтение медполиса на киоске
Взялся вот за реализацию инфокиоска, а сам не имел дела ни с сенсорными киосками, ни со считывателями. Не знаю, что выйдет из всей этой затеи...
Вот скажем такой вопрос - как считать полис с ШК ?
Сам то ШК полиса не понял - что это ? Вроде и не одномерный и не QR ?
Взял сканер с поддержкой 2D, начал тренироваться. Для контроля платежку энергосбыта параллельно сканирую. При работе как родное USB устройство, платежка нормально считывается, только кодировка не русская (как это поправить ?) При считывании полиса читается строка кракозябр. Ежели переключаюсь на эмуляцию COM устройства, дело становится хуже: из платежки считывается только начало, а при попытке считать полис вообще происходит хрень какая то - система нервно реагирует, открывая несколько левых окон, включая режим поиска и т.д.
Запросить информацию из страховой копании о структуре ? А что спросить то ?
И еще вопрос - это у меня сейчас ручное устройство, а в киоске как сканер включать в нужный момент ?
Есть еще устройство считывания смарт-карт, но что то он вообще не читает этого полиса... может и не должен ? С чипом он или нет ?
Вот скажем такой вопрос - как считать полис с ШК ?
Сам то ШК полиса не понял - что это ? Вроде и не одномерный и не QR ?
Взял сканер с поддержкой 2D, начал тренироваться. Для контроля платежку энергосбыта параллельно сканирую. При работе как родное USB устройство, платежка нормально считывается, только кодировка не русская (как это поправить ?) При считывании полиса читается строка кракозябр. Ежели переключаюсь на эмуляцию COM устройства, дело становится хуже: из платежки считывается только начало, а при попытке считать полис вообще происходит хрень какая то - система нервно реагирует, открывая несколько левых окон, включая режим поиска и т.д.
Запросить информацию из страховой копании о структуре ? А что спросить то ?
И еще вопрос - это у меня сейчас ручное устройство, а в киоске как сканер включать в нужный момент ?
Есть еще устройство считывания смарт-карт, но что то он вообще не читает этого полиса... может и не должен ? С чипом он или нет ?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Чтение медполиса на киоске
Насколько я вижу по смутному изображению Вашего кода - он в формате PDF-417.
А значит полученная со сканера строка будет в кодировке UTF8, и после считывания её нужно конвертировать в ANSI.
А значит полученная со сканера строка будет в кодировке UTF8, и после считывания её нужно конвертировать в ANSI.
За теми кто отстал - не возвращаться. (С) Кодекс
Чтение медполиса на киоске
Перекодирование, это типа как у Kreator нашел кусок кодаИгорь Столяров писал(а): ↑08 Август 2019, 4:46Насколько я вижу по смутному изображению Вашего кода - он в формате PDF-417.
А значит полученная со сканера строка будет в кодировке UTF8, и после считывания её нужно конвертировать в ANSI.
Код: Выделить всё
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 разр. числа, он то должен без перекодировки виден ?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Чтение медполиса на киоске
1. Наоборот. Указанный пример перекодирует ANSI строку в UTF8 для генерации из неё QRCode.Андрей писал(а): ↑08 Август 2019, 10:29Перекодирование, это типа как у Kreator нашел кусок кода
2. Абсолютно верно, числа и латинские символы должны быть видны в UTF8 и без перекодировки.
Здесь нужно смотреть документацию, что именно и в каком виде закодировано в замыленном Вами коде.
Иногда бывает, например, ещё и кодировка в BASE64 - тогда будет потоковая строка латино-цифровых символов,
или информация в строке может быть упакована в ZIP формат или зашифрована ключом с ЭЦП и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Чтение медполиса на киоске
Я как раз с инфокиосками и считывателями работал. Надо начать с простого. Где-то тут была либа для создания кода в PDF-417. Самому посоздавать и посчитывать. Числа в UTF8 не надо перекодировать. Впрочем как и латиницу. Есть ещё вариант, что сама информация в коде зашифрована. Но это маловероятно.
Вообще, со считывателем (в т.ч. с бесконтактным) я начинал работать так. Подключал его как клавиатуру (обычно в драйвере есть такая опция, некоторые устройства на автомате как клавиатуры встают). В Винворде пытался считывать инфу и смотрел, на что похоже.
Работа "через клавиатуру" проще. Но есть нюансы. Через com вроде тоже проблем нет, непонятно поведение Вашей проги. Надо смотреть Com-класс, или что там у Вас.
Как включать сканер? Не скажу. Имел дело с постоянно работающими. В определённый момент начинаем слушать порт и всё. С "клавиатурным" отдельный разговор. На некоторых устройствах есть такое, в определённый момент начинает мигать считыватель денег, или карточек. Но считыватель штрих-кода работает всегда. Могу ошибаться. В принципе, в com-порт можно писать. И наверняка есть команды, которые приводят эти устройства в рабочее состояние.
Вообще, со считывателем (в т.ч. с бесконтактным) я начинал работать так. Подключал его как клавиатуру (обычно в драйвере есть такая опция, некоторые устройства на автомате как клавиатуры встают). В Винворде пытался считывать инфу и смотрел, на что похоже.
Работа "через клавиатуру" проще. Но есть нюансы. Через com вроде тоже проблем нет, непонятно поведение Вашей проги. Надо смотреть Com-класс, или что там у Вас.
Как включать сканер? Не скажу. Имел дело с постоянно работающими. В определённый момент начинаем слушать порт и всё. С "клавиатурным" отдельный разговор. На некоторых устройствах есть такое, в определённый момент начинает мигать считыватель денег, или карточек. Но считыватель штрих-кода работает всегда. Могу ошибаться. В принципе, в com-порт можно писать. И наверняка есть команды, которые приводят эти устройства в рабочее состояние.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 1707
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Чтение медполиса на киоске
может поможет https://habr.com/ru/company/scanport/blog/351374/
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Чтение медполиса на киоске
Наверняка с оборудованием ТС определился. Мой опыт - Киоск со стационарным сканером штрих-кодов (USB с эмуляцией com-порта) и с нестационарным бесконтактным считывателем магнитных карт (USB с эмуляцией клавиатуры). Так решил заказчик. Почему? ХЗ. Бесконтактный считыватель автоматически встаёт как клавиатура. Боюсь даже изменить в драйвере это нельзя. Решение заказчика. Зато теперь есть опыт работы и с com-портом и с клавой.gopstop2007 писал(а): ↑08 Август 2019, 15:19может поможет https://habr.com/ru/company/scanport/blog/351374/
We are hard at work… for you.
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
Чтение медполиса на киоске
А это, что то не понял...
В хелпе есть функция TOANSI... Она чтоль не работает еще ?
Зачем в хелпе тогда людей путать... хм...
В хелпе есть функция TOANSI... Она чтоль не работает еще ?
Зачем в хелпе тогда людей путать... хм...
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Чтение медполиса на киоске
Работает. Но редко используется УЖЕ.
Потому, что полное название функции CONVERTOEMTOANSI и предназначена она для смены кодировки DOS на Windows(-1251).
Лет, этак 15-20 назад постоянно ею гоняли данные из старых файлов обмена …
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Чтение медполиса на киоске
Нет, Игорь, это не то. Это похоже новые функции. TOANSI и TOUNICODE. Именно для конвертации в Юникод и обратно. Андрей, попробуйте, результат расскажите. Может, действительно, больше не надо заниматься проктостоматологией.
We are hard at work… for you.
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Чтение медполиса на киоске
Отступился пока от сканера, странный какой то ШК - сканер начинает получает какие то управляющие символы что ли - начинают окна новые открываться и прочая самостоятельная жизни при попытке чтения....
Подключился к считывателю, раздобыл пластиковый полис с чипом (то что было у меня оказывается "сервисная карта" - просто аналог бумажки). Прверяю этот полис на таком же считывателе в МИС (мед. инф. система) в регистратуре Advanced Card Systems ACR 38U, думаю весьма популярном. Там все работает, начинает мигать зел. светодиодом, идентификация пациента происходит. У меня что-то не читает - должен ли так же считавать напрямую в текстовом редакторе, ка и сканер ШК ? Драйвер что ли криво встает - в руководстве есть по настройке однако у меня нет никакой закладки "Reader". Как перевести его в режим эмуляции клавиатуры ? Отключил режим цифровой подписи, однако все равно "Не удается проверить цифровую подпись" в драйвере - или это не критично ?
Подключился к считывателю, раздобыл пластиковый полис с чипом (то что было у меня оказывается "сервисная карта" - просто аналог бумажки). Прверяю этот полис на таком же считывателе в МИС (мед. инф. система) в регистратуре Advanced Card Systems ACR 38U, думаю весьма популярном. Там все работает, начинает мигать зел. светодиодом, идентификация пациента происходит. У меня что-то не читает - должен ли так же считавать напрямую в текстовом редакторе, ка и сканер ШК ? Драйвер что ли криво встает - в руководстве есть по настройке однако у меня нет никакой закладки "Reader". Как перевести его в режим эмуляции клавиатуры ? Отключил режим цифровой подписи, однако все равно "Не удается проверить цифровую подпись" в драйвере - или это не критично ?
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Чтение медполиса на киоске
Если не встаёт как клавиатура, читайте через порт. Можно же узнать что считывается? Не важно, сканер ли, считыватель ли.
Мне непонятно, окна в Вашей программе открываются? Или Винда так работает?
Мне непонятно, окна в Вашей программе открываются? Или Винда так работает?
We are hard at work… for you.